Linux&Shell基础
linux基础命令
用户与身份
1、用户
(1) Root 是管理员,光标前为#
(2) 其他名称为普通用户,光标前为 $
2、切换用户
(1) su - root 表示切换到管理员权限,需要输入密码,也可以直接用su -
(2) u - 其他用户名,表示切换到其他用户
目录的基本操作
ls 列出当前目录的内容(list)
cd 改变工作目录
pwd 显示当前共工作目录的绝对路径
mkdir创建一个空目录
rmdir 只能删除空目录
通配符
1、* 代表任意一个(1个或多个)
2、?代表1位,且必须为1位
3、[ ]表示括号中的每一个
ls test[ab]结果是testa testbls test[0-6]结果是 从最后一位是0-6取匹配ls test[a-Z]结果是 从最后一位是所有字母去匹配[^a-c]表示取反,即非a-c的字符
4、{ } 字符串,字符串之间用,间隔 ({sta,atb,stc})
文件的基本操作
touch 新建文本文件
rm 删除文件
cp 文件复制
mv 文件移动
查看文件
vim 文件编辑
1、进入编辑模式
-
i表示在光标当前位置编辑。 -
a表示在光标当前位置的下一个字符开始编辑。 -
o表示在光标下一行开始编辑。O光标上一行开始编辑。
2、命令行模式
-
0(零)跳到行首(不能跳到行首前的空格处) -
^跳到行首(包括空格) -
$跳到行尾 -
gg跳到第一行的行首 -
GG跳到最后一行的行首 -
yy复制单行,5yy或y5y复制5行 -
p粘贴,如果复制是1行,则p到下一行,如果复制的是10行,则p粘贴10行 -
dd删除一行,5dd删除5行 -
cc删除一行,并进入删除模式 -
x删除字符 -
dw删除单词 -
查找
/,n向下翻,N向上翻 -
w按单词走 -
u撤销
3、底行模式
:wq保存并退出:q!强制退出/查找set ic忽略大小写set noic取消忽略大小写set nu内容编号set nonu取消内容编号%s/spool/linux/g表示将所有的spool替换为linux,g是固定用法。
文件压缩和解压缩
1、gzip
-
压缩单个文件,以
.gz结尾,压缩后源文件不在了 -
解压
-
gunzip同gzip -d
2、bzip2
-
压缩单个文件,以.bz2结尾
-
解压
-
bunzip2同bzip2 -d
3、xz
-
压缩单个文件,以.xz结尾
-
解压
4、zip
-
压缩
-
解压
-
源文件还在
5、tar (打包)
-
压缩
-
gz解压
-
z表示gzip,j表示bzip2,J表示xz -
bz2解压 -
xz 解压
路径
1、绝对路径:是以/开头,从根目录开始一级一级往下写(/root/tmp/test)
2、相对路径:不以/开头,从当前路劲开始(tmp/test)
文件访问权限
1、权限分4部分:
- 第 1 位是文件类型;
- 第 2-4 位是
u(user)用户权限; - 第 5-7 位是
g(group)组权限; - 第 8-10 位是
o(other)其他用户权限; - 第 2-10 位为
a(all);
2、文件类型:
-普通文件;d目录;l软链接;
3、u g o 分别有 r w x(读、写、执行)权限。
4、文件增加权限
5、文件赋权
6、给目录加权限,要给目录下所有的文件加权限,才有意义
7、改变拥有者
8、改变组
9、改变拥有者和组
用户管理和组管理
1、新增用户:
2、删除用户
3、添加组
4、查看组
5、添加组成员:
6、删除组成员
find 文件查找
帮助命令
1、man 命令
查外部命令,查内部命令时会把所有的命令列出
2、help 命令
查找内部命令
进程管理
1、ps -ef
进程快照
top 命令:实时进程
free 命令:查看系统内存情况
2、grep 按行过滤,语法:grep 选项 参数
3、剪切
4、查看端口号
5、kill 结束进程
(1)kill filename或kill -15 filename 是建议结束进程。
(2)kill -9 filename 表示强制结束进程。
磁盘管理
1、系统服务
① uname -a 查看操作系统名称及环境
② hostname 查看服务器名称
③ cat /etc/redhat-release 查看系统的具体版本
2、系统磁盘
① df -h 查看磁盘分布信息
② du -h 查看文件占用磁盘情况
3、系统启动
① 关机
② 重启
软件安装
1、二进制安装
(1) rpm包(redhat package management)
-
安装:rpm -ivh 程序包
-
卸载:rpm -e
-
查看是否安装: rpm -qa
-
统计多少个安装程序:rpm -qa | wc -l
-
查看安装信息: rpm -qi
-
列出安装目录文件:rpm -ql
-
列出配置文件: rpm -qc
-
安装前查看包信息:rpm -qpi
(2) yum
-
安装:yum install -y 安装包
-
卸载:yum remove 或 yum erase
2、源代码安装
(1) 安装步骤
-
① 解压后找到configure
-
② 执行:./configure --prefix=/usr/local/目录名
-
③ make
-
④ make install
(2) 安装后需要指明路径(配置环境变量)
(3) 卸载:rm -rf
shell程序设计
输入输出
1、管道 |
(1)表示将前面命令的结果,作为后面命令的参数
(2)cat -n test | head -12 | tail -2 表示取第11 和12行
(3)-v 显示控制字符,-n 对输出行进行编号,-b 和 -n 一样,但空白行不编号。
2、echo
(1)echo $PATH | tr “:” “\n” 表示输出以:分割换行的格式
(2)echo –n “hello world” 不换行
(3)echo “${PATH}abc“ 表示输出变量PATH的值,后面跟abc
(4)echo “now is $(date)” 命令替换
(5)echo ‘now is ${PATH}’ 单引号可以去掉$的功能,直接输出单引号内的字符
(6)echo –e “hello\nworld” –e 使引号内转义符生效
(7)\ 转义符,使后面一个字符失效
3、read 定义一个变量
(1)read username age
(2)read –p “please input your name :” name 表示在输入变量时给出相应的提示。
4、tee
tee -a file 表示将文件追加到末尾
5.重定向
ls > file表示重定向到文件中,会覆盖原有内容;ls >>file表示追加到文件末尾;ls 2>file表示标准错误重定向到文件中,会覆盖原有内容;ls &>file表示标准输出和标准错误一起重定向到文件中;ls 1>file1 2>file2表示标准输出重定向file1,标准错误输出重定向到file2;
shell后台执行命令
1、cron 定时任务
管理员在 /etc/crontab 里面可以编辑定时任务
- 第一列表示 min;
- 第二列表示 hou;
- 第三列表示 day;
- 第四列表示 mon;
- 第五列表示 week;
- 第六列表示要运行的命令;
比如:5,25 15 * * *,表示每天的15时的5分和25分运行脚本。
普通用户创建为,执行命令 crontab * * * * * 加选项 -e 编辑 ,-l 查看任务;
3、&
(1)将某个运行的命令,放到后台执行。
(2)nohup 命令 & 比如:nohup sleep 500 &
shell变量和参数
1、系统变量
-
系统变量都是大写;
-
设置环境变量:export 将普通变量变成系统变量;
-
变量命令要求:只能以字母、下划线、数字组成,且不能以数字开头;
-
env查看所有的系统环境变量; -
unset var_name清除系统环境变量;
2、用户变量
-
设置用户变量:
-
清除变量:
set var_name -
set显示用户所有变量 -
source /etc/profile让profile生效 -
eho ${name:=peter}表示如果name存在就显示name的值,如果不存在就显示peter
3、位置变量
-
向shell脚本传递参数
$0 表示脚本名称本身(包含前面的路径),$1表示第一个参数,以此类推。
4、特定变量
返回值为0即成功,返回非0即失败。
shell程序设计流程控制
test测试命令
1.文件测试
[ -f file.txt ]判断file是否为普通文件[ -d file ]判断file是否为目录[ -s file ]判断file文件长度大于0
2.逻辑操作符
-
-a[ -f file –a –d file1 ]表示判断两个条件是否同时满足。(与运算) -
-o[ -f file –o –d file1 ]表示判断两个条件是否有一个满足。(或运算) -
!表示取非,比如
[ ! –f file ]
3.数值测试
-eq数值相等 ,比如[ “$num” –eq “100” ]-ne数值不等-gt第一个数大于第二个数-lt第一个数小于第二个数-le小于等于-gt大于等于
expr 简单计算
-
expr 10 + 10 运算符两边要右空格
if条件判断
-
格式:
-
if条件判断有真假,真则写在then后面,假则写在else后面,其中真假都可以继续嵌套if语句。
for循环
-
格式
-
举例
while和until 循环
-
格式
-
while 是判断条件为真时执行命令,until是判断条件为假时执行命令,语法格式都一样。
-
举例
break 和 continue
-
break 是跳出离它最近的一个循环
-
continue 是结束这一次循环,继续下次循环
-
举例
case条件选择
-
格式
