目录
基本指令
14 head指令
15 tail指令
管道
16 find指令
17 grep指令
18 zip&unzip指令
19 tar指令
20 su指令
总结
基本指令
14 head指令
功能:在屏幕上显示文件的内容,默认显示前10行,如果加上选项-n,则可以显示n行。
语法:head -n 文件名
创建一个大文件:
i=0; while [ $i -le 1000 ]; do echo $i; let i++ ; done > i.txt
进行head指令操作:
15 tail指令
功能:在屏幕上显示文件的内容,默认显示后10行,如果加上选项-n,则可以显示n行。
语法:tail -n 文件名
问:如何获取一个大文件的中间部分?
比如我想获取i.txt的第501行-510行,那就是在屏幕上显示500-509。
我可以先用head指令获取510行,存到一个新文件tmp.txt中,然后用tail指令访问tmp.txt的后10行:
head -510 i.txt > tmp.txt
tail tmp.txt
有没有更好的方法,不需要创建临时文件呢?有的,这里介绍一下管道:
管道
Linux下一切皆文件,管道也是文件。在使用管道符 "|" 时, "|" 左边的进程以写的方式打开管道文件,将标准输出重定向到管道之中, "|" 右边的进程以读的方式打开管道文件,将标准输入重定向到管道之中。
因此,我们可以这么做:
head -510 i.txt | tail
16 find指令
功能:遍历Linux多叉树的文件结构,根据文件名、文件属性(大小、权限)等等查找文件,并作出相应的处理。
语法:find pathname -options
目前我们只需要会按文件名查找文件,同时重温一下路径的概念:
find [路径] -name [文件名]
①我先在当前目录/home/lhl下访问里面的文件i.txt:
②然后我cd进入CSDN3目录,去find上级目录下的i.txt:
这里再拓展一些内容,/usr/bin路径下存储的是一系列指令文件,比如说我们想按名字查找一下head、tail和find指令:
17 grep指令
功能:在文件中搜索字符串,将找到的行打印出来。
语法:grep [选项] [搜寻字符串] [文件]
常用选项:
-i :忽略大小写的不同,所以大小写视为相同-n :顺便输出行号-v :显示出没有 ' 搜寻字符串 ' 内容的那一行
①先nano一个新文件,在里面写一些东西:
nano grep.txt
然后ctrl+X退出,yes,回车就可以
②进行查找操作
查找字符串a:
查找字符串aaa:
查找字符串23:
③ 常用选项的效果
-i:忽略大小写
-n:顺便输出行号
-v:显示出没有 '搜寻字符串' 内容的那一行
注:选项之间可以自由组合!
以上只是介绍grep的用法,grep指令的过滤行文本功能决定了它可以筛选信息,比如我们可以查看日志是否有报错:
cat /var/log/messages | grep -i 'error'
还可以将grep、find和管道|一起用,查找路径/usr/include中的C头文件stdio.h:
当然以上信息我们目前看不懂是正常的,我们只需要知道grep的功能非常强大,而且它有高亮的效果。
18 zip&unzip指令
功能:即压缩和解压
语法:zip [选项] [zip文件] [要压缩的文件]
unzip [要解压的zip文件]常用选项:
-r 递归压缩目录下的所有文件
-d 解压到指定目录下要带的选项
如果虚拟机下不能使用zip或者unzip指令,得先用管理员root用户下载一下:
su//切换到root
//输root的密码
yum install -y zip
yum install -y unzip
为什么要进行文件压缩?
①多个文件合并成1个文件,防止丢失
②节省磁盘空间
③进行网络传输的时候更节省时间
注:进行目录压缩时候,必须带-r选项,否则压缩包内只有空目录!
当出现红色的.zip文件时候,说明压缩完毕。
此时我把它解压到zip目录下:
unzip lhl.zip -d zip
此时再查看zip目录的树状结构,发现解压成功了:
19 tar指令
功能:既可以压缩,也可以解压,功能随选项的增加而增加
常用选项:
-c :建立一个压缩文件的参数指令 (create 的意思 )-x :解开一个压缩文件的参数指令-t :查看 tarfile 里面的文件-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?-v :压缩的过程中显示文件-f :指定名称
常用的选项组合及语法:
①新建当前目录下的CSDN3目录压缩包并命名为CSDN3.tar
tar -czf CSDN3.tar CSDN3
②将CSDN3.tar解压到当前目录
tar -xzf CSDN3.tar
注:不存在两个同名文件,同名文件解压会覆盖!
③将CSDN3.tar解压到tar_dir目录
tar -xzf CSDN3.tar -C tar_dir
④加-v选项,可以显示压缩/解压过程
tar -cvzf CSND3.tar CSDN3
tar -xvzf CSND3.tar -C tar_dir
⑤请注意:选项的组合是有顺序的,-cf、-xf、-czf、-xzf、-cvzf、-xvzf等等顺序组合,不能乱序,比如必须先新建一个压缩文件-c,才能命名它-f!
总结:tar指令相当于是zip和unzip指令的结合,其功能可以通过选项的增加而增加,非常方便!
20 su指令
功能:切换用户
语法:
su 切换为root
su [普通用户名] 切换为普通用户
①普通用户切换至root用户,需要输入root的密码
这时,输入root用户的密码,而且屏幕上是不会显示的!
博主这边输错了2次密码,输错密码就会提示:Authentication failure。
②从root用户切换至普通用户,是可以直接切换不需要输入密码的
③普通用户切换至普通用户,需要输入要切换用户的密码
博主想玩一下多用户切换,怎么给自己添加用户呢?
adduser [用户名] //添加新的用户名
passwd [用户名] //添加或更改密码
这个操作必须在root用户下。(或者普通用户在sudoer列表内,这个后面会出文章教大家将普通用户添加入sudoer列表内,目前就在root下操作即可)
切记一定要改密码!
Linux基本指令系列总结
Linux基础阶段的常用指令就这么多:
pwd
mkdir
touch
ls
cd
rm
cp
mv
nano
cat
echo
重定向
more
less
head
tail
| 管道
find
grep
zip & unzip
tar
su
接下来博主会陆续更新有关权限的博客,感谢大家支持!