【Linux】基本指令(三)

本文介绍了Linux中的基本指令,如head/tail用于文件内容查看,管道用于数据流处理,find用于文件查找,grep用于字符串搜索,以及zip/unzip和tar的压缩与解压功能。还涉及了su指令用于用户切换和权限管理。
摘要由CSDN通过智能技术生成

目录

基本指令

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

接下来博主会陆续更新有关权限的博客,感谢大家支持!

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值