一、基本命令语法
1.快捷键:
2.同行多命令的排列:
3.设置别名
alias [别名]=[需要定义别名的命令]
如: alias ll='ls -al'
注意:
4.输出重定向
> 、>>
如:ls > my.txt
浏览当前目录的信息,但是结果不再输出到终端显示,而是保存到了my.txt文件中
> 和>>的区别:
>会覆盖文件原内容,>>则是在原内容后追加
可利用重定向快速建立文件:
echo "hello" >testfile
屏蔽命令的任何输出
cp /etc/my.conf >/dev/null 2>&1
这是一个没有实际意义的错误命令,只演示一个没有任何信息或错误提示输出的命令执行。
5.管道符 “|”
前一个的结果作为后一个命令的输入:
如: ls | head -5
浏览当前目录下的文件信息,但只显示前五条
二、Shell命令分类及常用命令:
Shell命令格式:
命令 -[选项] -[参数]
如 tar -zxvf a.gz
-z 说明是解压.gz类型文件
-x 说明是解压操作
-v 显示详细信息
-f 必须,表示使用归档文件
帮助及其他命令:
1.常用命令:
(1)文件管理:
目录操作: ls浏览目录,mkdir创建目录,rmdir删除目录,pwd显示当前目录,cd进入目录
文件操作:cp复制文件,mv移动文件或重命名文件,rm删除文件
touch新建文件,ln建文件链接
cat查看文件内容,more向后翻页,less前后翻页
部分输出文件内容:cut、head
查找文件:find、locate
grep:按文件内容与指定的字符串匹配查找文件,涉及正则表达式
chmod设置文件权限
(2)进程管理:
查看进程状态:ps、top
进程控制: kill、bg:将一个在后台暂停的命令,变成继续执行
fg:将后台中的命令调至前台继续运行
(3)用户管理:
passwd设置密码、who查询当前登录用户
useradd添加用户、usermod修改用户、userdel删除用户
groupadd添加组、groupmod修改组、groupdel删除组
su +用户名 切换身份,sudo切换root身份
(4)磁盘管理:
fdisk、mount挂载磁盘
df、du查看磁盘空间
(5)网络管理:
ifconfig查看配置信息
ping、traceroute(路由跟踪)、netstat(列出连接状态)、arp、ftp
文件名有空格的情况如何应对:
1)用引号: cp "1 file" file2
2)用转义符:cp 1\ file file3
ls命令参数:
1)ls -l :以长格式列出文件,包括文件大小,日期,属性等
2)ls -a :显示目录中的所有文件,包括隐藏文件
3)ls -A:显示所有文件,但不现实.和..
4)ls -d:列出目录的信息而不是目录的内容,常是-ld一起用
wc命令:
-c:字节
-w:word
-l:line
统计当前目录下的文件数和目录数:
ls -l | grep "^-"|wc -l
ls -l | grep "^d"|wc -l
2.文件链接——ln
ln有两种类型
硬链接(默认):原文件和连接文件的FCB记录了相同的incode地址
注意: 建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接
符号链接:相当于Windows下的快捷方式,包含所链接文件的路径,可链接不同文件系统的文件,甚至可以链接不存在的文件, 网络文件
一个目录至少有2个硬链接:目录本身的相对目录“.”,以及作为其子目录的父目录“..”都指向它。所以,如果目录下新建一个子目录,硬链接数为3。
3.流输出
1)cat 常用来显示文件的内容,如:cat /etc/passwd
2)more 显示文件内容,每次显示一屏,常与其他命令结合使用:如 ls --help |more 按回车向后移动一行,按空格向后移动一页
3)less 与more相似,但浏览文本时允许翻页来回看。
4)cut 截断显示文件中的内容
如:(1)显示每行从开头算起n1到n2的文字
cut -c n1-n2 file(文件名)
(2)以空格为分隔符,显示第二个字段
cut -f 2 -d " " file(文件名)
5)echo
将单行文本输出到标准输出设备,常用于shell脚本查看变量的值
export a=5
echo $a 或者 echo ${a}
6)sort
对文件内容进行排序显示:
如 :cat /etc/passwd sort -t ':' -k3 -nr /etc/passwd
参数说明:
7)uniq
删除相邻重复的行从而只显示一个,一般与sort配合使用
8)head
参数说明:
-c N 指定输出的字节个数
-n N 制定输出的行数
9)diff
比较两个文件并输出比较结果,比较目录时,将目录包含的文件名作为目录的内容进行比较
diff [选项参数] 文件1 文件2
mv :移动文件或者重命名文件 (-i 执行前先询问用户)
rm命令:删除文件
参数:
-i:删除前先询问用户
-f:强制删除
-r:递归处理,将指定目录下的所有文件及其子目录一并处理
-v:删除时显示详细信息
文件搜索find:
find -参数 【目录列表】 【匹配标准】
-name 文件名:指定要查找的文件
-user 用户名:指定用户
-size +(-) 大于或小于指定大小的文件,缺省单位为b
-type x(x=d,l,f) 类型的文件
-exec :对find的结果执行命令,末尾一定要加转义字符\和分号,代表结束
如:查找/etc目录下小于2500字节的文件
find /etc -size -2500c
查找/home目录下zls用户的文件名是CP字母开头的文件
find /home -user zls -name "CP*"
查找文件名字里包含bashrc的配置文件
find / -name "*bashrc" -type f 2>err
查找以CP开头的文件,将其和其子目录一起删除
find . -name "CP*" -exec rm -rf {} \;
文件内容搜索——grep
如:
搜索在/etc/passwd 中 "/sbin/nologin"出现的行,找出系统中不允许登陆的用户
grep /sbin/nologin /etc/passwd 注意:条件写在文件名前面
搜索在文件/root/initial-setup-ks.cfg中查找到所有包含字符串boot的行,并将其顺序拷贝到/root/lines文件中
grep "boot" /root/initial-setup-ks.cfg >root/lines
与cat结合使用
查看my.txt中包含hello的内容
cat my.txt |grep hello
总结:grep的匹配条件若是精确查找则不加“”,若是模糊查找则加“”
压缩包管理:
压缩:tar -cvzf var.gz /var
解压:tar -xvzf var.gz