一些liunx基础命令,包括快捷键、find管道符、grep、tar查找解压等
echo $? //查看上一个命令的正确
shutdown -h now //立刻关机
ls //列出目录内容
-l //长格式
-h //做单位转换
-a //显示以.开头的隐藏文件
. //表示当前目录
.. //表示父目录
-d //显示目录自身属性
-i //显示文件的inode(index node)
-r //逆序显示
-R //递归(recursive)显示
cd //切换目录
pwd //查看当前所在目录路径
tree //查看目录树
-d //只显示目录
-L level //指定显示的层级数目
-P 字符串 //显示指定字符串匹配到的文件
mkdir //创建目录
-p //创建目录时若父目录不存在则自动创建
-v //显示目录创建过程
rmdir //删除目录,只能删除空目录
touch //创建一个空文件,touch还有一个作用是修改文件的时间戮
stat //显示文件或文件系统的状态
rm -rf //强制删除并且不出现递归
cp //复制文件,一个文件到一个文件,多个文件到一个目录
-a //归档复制,常用于备份
-p //拷贝时保留原权限
-r //递归拷贝,拷贝目录时必须使用此选项
mv //移动文件
install //复制文件并且设置属性
-m MODE //复制时修改权限
-o OWNER //复制时修改文件属主
-g GROUP //复制时修改属组
hostname //查看或临时修改主机名,重开终端有效,重启失效
hostnamectl //查看或永久修改主机名,重开终端生效,重启依然有效
w //显示当前在线用户并显示其在运行的命令
which //显示指定命令的绝对路径
date //显示或设置日期与时间
//不带参数的date用于显示当前系统日期与时间
//格式化输出时间:“+”
%Y //年
%m //月
%d //日
%H //时
%M //分
%S //秒
-s //以字符串方式设置时间
`` //反引号,键盘左上角Esc下面的键,用于命令替换 =$()
"” //双引号,弱引用,可以实现变量替换
'' //单引号,强引用,不完成变量替换
快捷键
Ctrl+a //跳到命令行首
Ctrl+e //跳到命令行尾
Ctrl+w //剪切前面的字符至上一个空格处
Ctrl+l //清屏
{} //列表
* //匹配任意长度的任意字符
? //匹配任意单个字符
[] //匹配指定范围内的任意单个字符
history //查看命令历史
esc. //按下esc松开后按.,引用前一个命令的最后一个参数
cat
//将文件内容输出至标准输出〔屏幕)
-n //显示行号
注意:使用cat查看文件内容时会将文件的所有内容加载至内存,
所以应避免使用cat打开巨大文件
tac
//倒序打印文件内容至标准输出
more
//全屏查看文本文件内容,只能从前往后,不能从后往前。
//文件内容显示完后自动退出
less
//全屏查看文本文件内容,可从前往后亦可从后往前。推荐使用
head
//从头部开始打印文件内容,默认打印1o行
-n //指定要打印的行数,-n可以是15也可以是-15
tail
//查看文本文件尾部内容
-n //指定要打印的行数,可以是-n 15也可以是-15
-f //实时监测文件末尾内容
sort
//默认升序排序,不是按数值大小排序的
-n //根据数值大小进行排序
-r //逆序排序
-t //指定分隔符
-k //以哪个字段为关键字进行排序
-u //去重,排序后相同的行只显示一次
-f //排序时忽略字符大小写
uniq
//将重复的行只显示一遍(连续且完全相同方为重复)
-c //显示文件中行重复的次数
-d //只显示重复的行
-u //只显示未重复的行
wc ( word count)
//大小统计
-l //显示行数
-w //显示单词数
-c //显示字节数
du
//查看文件或目录占用的磁盘空间大小
-h //以人类友好的方式显示大小
-s //显示总的占用空间大小
df
//报告文件系统磁盘空间使用情况
-h //以人类友好的方式显示大小(单位转换)
-i //显示inode信息
cut
//截取文本内容
cut OPTION.. . [FILE]...
-d '' //指定字段分隔符,默认是空格
-f //指定要显示的字段
-f 1,3显示第1个字段和第3个字段
-f 1-3显示第1个字段到第3个字段
awk
//基于列的文本报告工具
-F'' //选择分隔符;分隔符用单引号引起来
'/root/ ' //匹配关键字root的行
'iprint$#}’ //选择打印第#列
'NR==#{print $#}' //选择打印第几行第几列
sed
//基于行的过滤和转换文本的流编辑器
-i //修改文件内容
示例:
sed -i 's/原字符串/新字符串/’file //字符串替换原字符串,只替换每行第一个匹配到的字符(一个)
sed -i 's/原字符串/新字符串/g'file //字符串替换原字符串,替换正行所有匹配到的字符串(全部)
find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
grep
//搜索文本内容,并将匹配的内容所在一整行都显示出来。
//grep是可以使用正则表达式来过滤文本的命令。
-i //忽略大小写
--color //匹配到的内容高亮显示
-w //强制模式,完全匹配字词(精确匹配)
-n //显示匹配到的内容的行号
-v //显示没有被模式匹配到的行(取反)
-o //只显示被模式匹配到的字符串
-E //使用扩展正则表达式。grep -E相当于使用egrep (铆钉行首^ 结尾$ 或者| )
-q //静默模式,不向屏幕输出任何信息
-A 1 //被模式匹配到的内容以及其后面一行的内容都显示出来,
//如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来
-B 1 //被模式匹配到的内容以及其前面一行的内容都显示出来,
//如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来
-C 1 //被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2//就表示被模式匹配到的内容以及其前后的行各显示2行。
egrep
//基于正则表达式查找文件内容
fgrep
//不支持正则表达式,执行速度快
find
//实时查找,精确性强,遍历指定目录中所有文件完成查找,
//查找速度慢,支持众多查找标准。
语法:
find查找路径[OPTION...][查找标准][查找到以后的处理动作]
查找路径,默认为当前目录
查找标准,默认为指定路径下的所有文件
-name 'filename ' //对文件名作精确匹配.支持glob通配符机制(查找文件名)
-iname 'filename ' //文件名匹配时不区分大小写
-user 'username ' //根据属主来查找(查找文件)
-group 'groupname' //根据属组来查找
-uid //根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID
-gid //根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID
-nouser //查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主
-nogroup //查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组
-type //根据文件类型来查找(f,d,c,b,l,p,s)
- //普通文件(f)
d //目录文件
b //块设备文件 ( block)
c //字符设备文件( character)
l //符号链接文件( symbolic link file)
p //命令管道( pipe)
s //套接字文件( socket)
-size //根据文件大小进行查找。如1k、1M,+10k、+1OM, -1k、-1M,+表示大于,-表示小于
-mtime //修改时间(天)
-ctime //改变时间
-atime //访问时间
+5 //5天前
-5 //5天以内
-mmin //多少分钟修改过(分)
-cmin //多少分钟改变过
-amin //多少分钟访问过
+5 //5分钟前
-5 //5分钟以内
-perm mode //根据权限精确查找
-perm -mode //文件权限能完全包含此mode时才符合条件
-perm /mode //9位权限中有任何一位权限匹配都视为符合查找条件
//组合条件:
-a //并且
-o //或者
-not //取反
! //!和-not含义一样
//处理动作: 默认为显示到屏幕上
-print //显示
-ls //类似ls -l的形式显详细信息
-delete //删除查找到的文件
-fls /path/to/ somefile //查找到后另存为(文件)
-ok COMMAND {} \; //对查找到的每个文件执行COMMAND,每次操作都需要用
-exec COMIMAND {} \; //对查找到的每个文件执行COMMAND,操作不需要确认 (/ 是后面的一位没有任何意义)
重定向
>:覆盖输出
>>:追加输出(到原有内容的后面)
2> //重定向错误输出
2>> //追加重定向错误输出
&> //覆盖重定向标准输出或错误输出至同一个文件
&>> //追加重定向标准输出或错误输出至同一个文件
< //输入重定向
<< //Here Document,退出条件
tee(默认覆盖重定向)
//从标准输入读取数据,输出一份到屏幕上,一份保存到文件示例:
eg:
[root@localhost ~]# tee /tmp/hello.out
hello world
hello world
[root@localhost ~]# cat /tmp/hello.out
hello world
管道符
//前一个命令的输出,作为后一个命令的输入。最后一个命令会在当前shell进程的:
使用格式:命令1 |命令2│命令3 l ...
eg:
[root@hzz ~]# echo "hello hzz" | cut -d ‘ ’ -f 2
hzz
xargs(文本内容转换为参数)
//和管道符连用,将前面的命令执行的结果作为参数交给后面的命令执行
使用格式:命令1 | xargs命令2
选项:
-n 设置一次性传递的参数的数量,默认是所有
-i 将数据拆分为一个一个的存储在中
示例:
[root@hzz ~]# find / -name "ifcfg-ens33" | xargs -i cp {} /root/
[root@hzz ~]# ls
ifcfg-ens33
compress
//用此命令压缩的文件其文件名为FILENAME.Z,解压用uncompress
gzip
//压缩后的文件以.gz结尾﹔只能压缩文件不能压缩目录
gzip /path/to/ somefile/压缩完成后会不保留原文件
-d //解压缩,解压完成后不保留原文件
-c //将结果输出至标准输出,保留原文件
-# //#用1-9代替,-1压缩等级最低;-9压缩比最高。默认压缩比是-6
-1 //查看压缩文件内的内容;从左至右依次显示为:
压缩文件的大小;未压缩文件的大小;压缩比﹔未压缩文件的名称
gunzip //解压完成后不保留原文件
zcat //不解压的情况下查看文本文件的内容
bzip2
//压缩后的文件以.bz2结尾; bzip2是一款比gzip有着更大压缩比的压缩工具,使用
bzip2 /path/to/ somefile//压缩完成后不保留原文件
-d //解压缩,解压完成后不保留原文件
-# //#用1-9代替,指定压缩比,默认为6
-k //压缩时保留原文件(keep)
bunzip2 //解压
bunzip2 /path/to/some_compress_file.bz2 //解压完成后不保留原文件
bzcat /path/to/ somefile.bz2 //不解压的情况下查看文本文件的内容
xz
//压缩后的文件以.xz结尾﹔比bzip2有着更大压缩比的压缩工具,使用格式近似
xz / path/to/ somefile //压缩完成后不保留原文件
-d //解压缩,解压完成后不保留原文件
-# //#用1-9代替,指定压缩比,默认为6-kl / keep,压缩时保留原文件
unxz //解压
unxz /path/to/some_compress_file.xz //解压完成后不保留原文件
xzcat /path/to/somefile.xz //不解压的情况下查看文本文件的内容
zip (可压缩目录)
//既归档又压缩的工具。zip可以压缩目录
//gz、bz2、xz都只能压缩文件,zip压缩后保留原文件
zip filename.zip file1 file2 ...
zip filename.zip DIR/*
unzip //解压
unzip filename.zip
file //查看文件后缀(类型)
tar 归档,归档本身并不意味着压缩
tar //归档工具,只归档不压缩
-c //创建归档文件
-f file.tar //操作的归档文件
-x //还原归档
-v //显示归档过程
-c //将展开的归档文件保存至指定目录下
-tf /path/to/file.tar //不展开归档,直接查看归档了哪些文件
--delete //从归档文件中删除文件
-p //归档时保留权限信息。只有管理员才有权限用此选项
--xattrs //在归档时保留文件的扩展属性信息
-zcf //归档并调用gzip压缩
-zxf //调用gzip解压缩并展开归档
-jcf //归档并调用bzip2压缩
-jxf //调用bzip2解压缩并展开归档
-Jcf //归档并调用xz压缩
-Jxf //调用xz解压缩并展开归档