Linux常见指令
- 引言
- Linux常见指令
- 查指令——man
- 文件管理相关指令
- ls
- pwd
- cd
- touch
- mkdir
- rmdir与rm
- rmdir
- rm
- cp
- mv
- find
- 文件查看类
- cat
- more
- less
- head 与 tail
- head
- tail
- 使用管道显示某段内容
- grep
- 打包压缩相关指令
- zip/unzip
- tar
- 总结
引言
Linux与我们熟悉的Window都是操作系统,我们经常在Window操作系统的图形化界面中进行操作。其中基本的比如创建一个文件夹、在文件夹中放置文件、修改文件名、向文件中写数据、移动文件的位置、查看文件的信息、删除文件等,我们也可以打包压缩文件、解压缩文件。只是在Linux的命令行中,我们需要通过指令来实现这些操作。
在本篇文章中就来介绍这些基本指令:
【在学习Liunx之前,我们需要有一个Linux环境,具体的环境搭建在这里就不说明了。我所使用的环境是centos 7.6
的云服务器】
Linux常见指令
指令的本质就是放在系统的特定路径下的,编写好的程序或脚本。
我们输入指令其实就是输入字符串,我们输入的字符串会被命令行解释器翻译给核心处理,同时将核心的处理结果翻译给使用者。对于我们的非法输入或请求,命令行解释器会直接拦截以保护操作系统。
查指令——man
man是访问Linux首页册的指令,它可以查找Linux的命令以及其所有的参数。(查看完毕后,按q退出)
手册分为8章:
1是普通的命令;
2是系统调用,如open,write之类;
3是库函数,如printf,fread;
4是特殊文件,也就是/dev下的各种设备文件;
5是指文件的格式,比如passwd,就会说明这个文中各个字段的含义;
6是给游戏留的,由各个游戏自己定义;
7是附件还有一些变量,比如向environ这种全局变量在这里就有说明;
8是系统管理用的命令,这些命令只能由root使用,如ifconfig;
man指令也有自己的参数:
-k
根据关键词搜索联机帮助
num
只在num章中搜索
-a
显示在所有章节中的搜索结果(否则找到后就会停止)
加上-a
后,当按下q后,会继续向后搜索,而不是退出。
文件管理相关指令
ls
ls [选项] [文件或目录]
对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
(这里ls后的.
表示当前目录。如果不加,默认为当前目录)
常用选项
-a
表示列出改目录下所有文件,包括隐藏文件(文件名前有.
或..
为隐藏文件):
-d
将目录像文件一样显示,而不是显示其下的文件:
-i
输出文件的 i 节点的索引信息:
-l
列出文件的详细信息(可以简写为ll
指令):
-n
用数字的 UID,GID 代替名称(UID与GID即用户ID与组ID):
-F
在每个文件名后附上一个字符以说明该文件的类型(*
表示可执行的普通文件,/
表示目录,@
表示符号链接,|
表示FIFOs,=
表示套接字(sockets)):
-r
对目录反向排序:
-t
以时间排序:
-s
在文件名前输出该文件的大小:
-R
列出所有子目录下的文件(递归):
-1
一行只输出一个文件:
当然,指令的选项可以叠加使用,例如ls -als .
:
pwd
pwd
用于显示用户当前工作目录:
当进入另一个目录后,当前目录就会变化:
cd
cd [目录]
用于改变工作目录,将当前工作目录改变到指定的目录下。
(..
也是表示目录路径的符号,表示上级目录)
在系统中,磁盘上的文件和目录可以组成一颗树,我们可以通过tree指令来以树的形式显示当前目录下的文件与目录(tree指令需要下载,可以在root用户下执行yum install tree
来下载)
touch
touch [选项] 文件名
可更改文档或目录的日期时间,包括存取时间和更改时间(更改为当前时间),或者新建一个不存在的文件
常用选项
-
-a
或--time=atime
或--time=access
或--time=use
只更改存取时间:
(Access
:最后一次访问时间;Modify
:最后一次修改文件内容时间;Change
:最后一次修改文件属性时间) -
-c
或--no-create
不建立任何文档:
-
-d
或--date=STRING
使用指定的日期时间,而非现在的时间:
-
-f
此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题:
-
-m
或--time=mtime
或--time=modify
只更改变动时间:
-
-r
或--reference=FILE
将文档或目录的日期时间,设成与参考文档或目录的日期时间相同的时间:
-
-t
使用指定的日期时间,而非现在的时间(格式为[[CC]YY]MMDDhhmm[.ss]
):
mkdir
mkdir [选项] [dirname]...
用于在当前目录下创建一个名为dirname的目录
当然,默认是在当前目录下创建,输入多个文件名时也是都创建在当前目录中:
使用-p
或--parents
选项,可以递归地创建多个目录(多个目录用/
隔开):
rmdir与rm
rmdir
rmdir [选项] [dirname]
用于删除空目录
使用-p
选项可以递归的删除空目录,即当子目录删除后若父目录为空,则一并删除:
rm
rm [选项] 文件名
文件或目录 用于删除文件或目录,但是默认不会删除目录
常用选项
-f
直接删除,从不提示(即使要删除的目录或文件不存在)
-i
删除前逐一询问确认
-r
删除目录及其下所有文件
cp
cp [选项] [源头文件或目录] [目标文件或目录]
用于将文件或目录拷贝(复制粘贴)到目标目录中。
若目标目录或文件不存在,将创建一个新文件并将内容拷贝。拷贝时会拷贝文件内容,但不会默认拷贝目录。若为目标文件,则会用源头文件的内容覆盖目标文件的内容。
(echo
加重定向>
可以在文件中写内容;cat
可以在屏幕上打印文件内容)
常用选项
-i
或--interactive
覆盖文件之前先询问用户:
-r
或-R
或--recursive
递归处理,将指定目录下的文件与子目录一并处理:
mv
mv [选项] [源头文件或目录]... [目标文件或目录]
用于将源头文件或目录移动(不是复制粘贴)位置或文件改名
当最后一个参数的类型是文件时(不存在的名称默认为文件),mv命令完成文件重命名。 此时,源头文件只能有一个(也可以是源头目录名),它将所给的源头文件或目录重命名为给定的目标文件名;
当最后一个参数是已存在的目录名称时,源文件或目录参数可以有多个。mv命令将各参数指定的源文件均移至目标目录中。
常用选项
-
-f
或--force
如果目标文件已经存在,不会询问而直接覆盖(其实不加-f
也不会询问)
-
-i
若目标文件 (destination) 已经存在时,就会询问是否覆盖
find
find [选项] [文件或目录名]
用于在目录结构下查找文件
使用-name
选项可以只查找目录或文件名(否则如上是查找带此字符的路径):
文件查看类
cat
cat [选项] [文件名]
用于查看文件内容 ,这一点在前面的内容中想必大家已经了解了:
常用选项
-n
对输出的所有行编号(我们可以通过vim输入一些数据来测试)
-b
对输出的非空行编号
-s
不输出多行空行(多行空行只输出一行)
但是,这样的查看在面对很大的文件时,查看起来就会很不方便,所以就有了如下的各种查看文件的指令
more
more [选项] [文件名]
用于查看文件内容
按回车向下展开,按q
退出more。
但是这个指令还不是非常方便
less
less [选项] [文件]
用于查看文件,功能机极其强大!
可以使用pageup与pagedown上下翻;支持向上或向下搜索,而且less在浏览之前不会加载整个文件。
常用选项与用法
-
-N
显示每行的行号(可以作为选项,也可以在进入less界面后输入N)
-
-i
忽略搜索时的大小写 -
/
字符串:向下搜索“字符串”的功能
-
?
字符串:向上搜索“字符串”的功能
-
n
重复前一个搜索(与 / 或 ? 有关) -
N
反向重复前一个搜索(与 / 或 ? 有关)
head 与 tail
head
head [选项] [文件]
用于从头查看文件
使用-n<num>
可以查看前num行的内容(默认打印前10行):
tail
tail [选项] [文件]
用于从尾查看文件
- 使用
-n<num>
可以打印末尾num行的内容(默认打印后10行):
- 使用
-f
可以在屏幕上持续更新后10行的内容。
使用管道显示某段内容
如果我们需要显示一个文件中第35行到50行的内容,除了使用临时文件外,还可以使用管道|
。
管道是linux中很重要的一种通信方式,它把前一条指令的输出连接到后一条指令的输入。
使用管道打印第35行到50行的内容,即先执行head前50行内容,再将结果链接给tail取后15行内容:
grep
grep [选项] [要搜索的字符串] [文件]
用于在文件中搜索字符串,并将找到的行打印出来
常用选项
-i
忽略大小写的不同
-n
顺便输出行号
-v
反向选择,即显示出没有字符串内容的那一行
另外,可以通过管道与wc
指令来统计有某字符串的行数(wc指令可以统计文件的行数):
打包压缩相关指令
zip/unzip
(这两条指令可能需要使用root用户安装:yum install zip unzip
)
zip [选项] [生成的压缩文件] [文件或目录]
用于文件或目录的打包压缩
生成的压缩文件的后缀应为.zip
:
默认压缩目录时,只会对目录文件打包压缩,使用-r
可以递归打包压缩目录及其中的文件:
unzip [压缩包]
用于解包解压一个.zip
的压缩包
默认解包解压到当前路径,解压到指定路径需要unzip [压缩包] -d [目标路径]
tar
tar [选项(] [文件或目录]
用于打包或解包;不打开只查看等操作
选项:
-c
建立一个压缩文件的参数指令(create 的意思);-x
解开一个压缩文件的参数指令!-t
查看 tarfile 里面的文件!-z
是否同时具有 gzip 的属性?即是否需要用 gzip 压缩?-j
是否同时具有 bzip2 的属性?即是否需要用 bzip2 压缩?-v
压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!-f
使用档名,请留意,在 f 之后要立即接档名,不要再加参数!-C
解压到指定目录
例如:
总结
到此,关于Linux的一些基本的指令就介绍完了
在这个专栏中将持续更新Linux的知识,欢迎大家持续关注哦
如果大家认为我对某一部分没有介绍清楚或者某一部分出了问题,欢迎大家在评论区提出
如果本文对你有帮助,希望一键三连哦
希望与大家共同进步哦