【Linux】Linux操作系统下的(常用)基本指令

  在Linux操作系统下,有很多操作指令。
  首先,关于目录与文件有以下常用指令:
  1.“当前在哪”­­­­—pwd命令(Print Working Directory)
功能:将当前目录的全路径名称(从根目录)写入标准输出。
这里写图片描述
  2.“当前目录下有什么东西”—ls指令(List)
功能:对于目录,该命令列出指定目录下的所有子目录与文件;对于文件,该命令列出指定文件的文件名及其他信息。
语法:ls [选项] [目录或文件]
【注意】如果不指定文件或目录参数,ls将显示当前目录下的内容。
这里写图片描述
常用选项
(1)“-l” :列出文件的详细信息:
这里写图片描述
ls -l 可以简写为:ll,如下:
这里写图片描述
(2)“-a”: 列出目录下的所有文件,包括以.开头的隐含文件:
这里写图片描述
可见:该目录下包含两个子目录.和..
(其实,每一个目录中都有一个.和..),.代表当前目录,..代表当前目录的上一级目录。
(3)“-d”: 将目录像文件一样显示,而不是显示该目录下的内容:
这里写图片描述
(4)“-R”: (递归地)列出所有子目录下的文件:
这里写图片描述
(5)“-1”: 一行只输出一个文件:
这里写图片描述
  3.cd指令(Change Directory)
语法:cd 目录名
功能:改变当前工作目录(到指定的目录下)。
(1)进入根目录:cd /
这里写图片描述
这里写图片描述
(2)进入用户家目录(“回家”):cd ~
这里写图片描述
(3)绝对路径:指目录下的绝对位置,直接到达目标位置。
这里写图片描述
(4)相对路径:指由这个文件所在的路径引起的跟其他文件(或文件夹)的路径关系。
这里写图片描述
(5)返回上级目录:cd ..
这里写图片描述
(6)返回最近访问的目录(当前目录之前的目录):cd -
这里写图片描述
  4.“创建文件”—touch指令
语法:touch [选项] 文件名
功能:创建一个不存在的文件或者更新已存在文件的日期时间(存取时间和更改时间)。
这里写图片描述
  5.“删除文件”—rm指令(Remove)
语法:rm [-f-i-r] [文件或目录]
功能:删除文件或目录
这里写图片描述
(1)rm -i 文件名
这里写图片描述
(2)rm -r 目录名,删除目录及其下所有文件(递归删除)
这里写图片描述
(3)rm -f 目录名,即使文件的属性为只读的,也直接删除(不需确认y/n)。
  6.“创建目录”—mkdir指令(Make Directory)
语法:mkdir [选项] 目录名
功能:在当前目录下创建一个新目录
这里写图片描述
常用选项:“-p”,其后可跟一个路径名称,若该路径中的某些目录尚不存在,便会创建它们,即可以一次创建多个目录(递归创建)
这里写图片描述
  7.“删除目录”—rmdir指令(Remove Directory)
语法:rmdir [选项] 目录名
功能:(只能)删除空目录,而且只能由具有当前目录操作权限的用户进行删除。
这里写图片描述
上面的目录code非空,故不能直接用rmdir删除。
常用选项:“-p”,当子目录被删除后如果父目录也变成空目录的话,就连带父目录一同删除。
这里写图片描述
下面,再次递归创建目录,在不加-p选项时,只能删除dir1里面的dir2,而不能删除dir1。如下:
这里写图片描述
  8.“查看文件内容”
(1)cat/tac指令
新建一个文件,在其中编辑一些内容:
这里写图片描述
查看文件内容:
这里写图片描述
①-b选项:输出文件内容并对非空行编号:
这里写图片描述
②-n选项:输出文件内容并对所有行编号:
这里写图片描述
③-s选项:输出文件内容但不输出多行空行:
这里写图片描述
④tac指令:倒着输出文件内容:
这里写图片描述
(2)more指令:当目标文件内容过多时,会分页显示,一次只显示一部分,按空格键可进行向下翻页,按“b”键可进行向上翻页。

(3)less指令:对文件内容进行分页显示,与more不同的是,当翻页至文件末尾时并不会自动退出,因为less具有更强大的功能,即搜索字符串。
以下选项均在进入文件之后使用:
①“/字符串”:向下搜索字符串,并进行高亮显示;
②“?字符串”:向上搜索字符串,并进行高亮显示;
③n:重复上一个搜索(以/或?有关);
④按“f”,下一页;按“b”,上一页 ;

(4)head指令
语法:head [参数] 文件
功能:显示档案的开头至标准输出中,默认打印其相应文件的开头10行
这里写图片描述
当加上“-n”选项及其参数,会打印指定行数的内容:
这里写图片描述
(5)tail指令
语法:tail [必要参数] [选择参数] 文件
功能:显示指定文件的末尾内容,默认打印其相应文件的末尾10行
这里写图片描述
常用选项:
(1)“-f”:查阅正在改变的日志文件,它会把指定文件中最尾部的内容显示在屏幕上,并且不断刷新,使用户看到最新的文件内容。
这里写图片描述
(2)“-n”:其后加上参数,会显示文件末尾指定行数的内容
这里写图片描述
  上面对head和tail指令的语法已经进行了简单的讲解,下面思考一个问题:
  对于已有文件dstfile,已知其中共有26行内容。想要打印出该文件的第18行内容,应该怎么解决呢?
方法一:我们可以首先将文件dstfile的前18行装入临时文件tmp,然后再取出文件tmp的最后一行,即可达到目的。
这里写图片描述
输出重定向:定向输出到文件,若文件不存在就创建文件,若文件存在,就将其清空。两种方式:(1)“>”覆盖原文件内容;(2)“>>”追加写,不覆盖原文件内容。
方法二:利用管道(本质为内核中的一块缓存)来实现。关于管道,我们后面会做详细讲解。
这里写图片描述
  9.“复制文件或目录”—cp指令(Copy)
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录。若同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则把前面指定的所有文件或目录都复制到该目录中,若最后的目的地并非一个已经存在的目录,则会出现错误信息。
常用选项
(1)“-i”:覆盖目标文件前先询问用户
这里写图片描述
(2)“-f”:强行复制文件或目录,不管文件或目录是否已经存在
这里写图片描述
(3)“-r”:递归处理,将指定目录下的文件与子目录一并处理
这里写图片描述
这里写图片描述
  10.“移动(备份)文件或目录”—mv指令(Move)
语法:mv [选项] 源文件或目录 目标文件或目录
功能:移动文件或将文件改名,常用来备份文件或目录
(1)当第二个参数类型为文件时,mv命令将所给的源文件或目录重命名为给定的目标文件名。此时,源文件或源目录只能有一个。
这里写图片描述
(2)当第二个参数为已存在的目录名称时,源文件(或目录)参数可以有多个,mv命令会将各参数指定的源文件均移至目标目录中。
这里写图片描述
  和cp指令一样,mv指令也有两个选项“-f”(如果目标文件已经存在,不会询问而直接覆盖)和“-i”(如果目标文件已经存在时,就会询问是否覆盖 )。
  11.“查找指令”—whereis指令
这里写图片描述
如上:“whereis 指令”是查找指定指令的位置。
  12.“查找文件”—find指令
语法:find 路径 选项 参数
功能:在文件树中查找文件
常用选项
(1)“-name”:按文件名查找文件(区分大小写)
这里写图片描述
(2)“-iname”:按文件名查找文件(不区分大小写)
(3)文件名通配符:
①“*”:可以通配任意字符(串)
这里写图片描述
②“?”:可通配任意一个字符
这里写图片描述
③“[]”:可以通配括号中的任意一个字符,[]中的内容会被解析成单个字符
这里写图片描述
(4)以时间戳信息—“分钟”(min)为单位
①“-amin”:最后一次访问文件的时间
find 路径名 -amin +n //表示n分钟前访问过的文件;
find 路径名 -amin -n //表示n分钟内访问过的文件;

②“-cmin”:最后一次状态改变的时间
find 路径名 -cmin +n //表示n分钟前更改过状态的文件;
find 路径名 -cmin -n //表示n分钟内更改过状态的文件;

③“-mmin”:最后一次修改的时间
find 路径名 -mmin +n //表示n分钟前被修改过的文件;
find 路径名 -mmin -n //表示n分钟内被修改过的文件;

(5)以时间戳信息—“天”(time)为单位
①“-atime”:最后一次访问文件的时间
find 路径名 -atime +n //表示n天前访问过的文件;
find 路径名 -atime -n //表示n天内访问过的文件;

②“-ctime”:最后一次状态改变的时间
find 路径名 -ctime +n //表示n天前更改过状态的文件;
find 路径名 -ctime -n //表示n天内更改过状态的文件;

③“-mtime”:最后一次修改的时间
find 路径名 -mtime +n //表示n天前被修改过的文件;
find 路径名 -mtime -n //表示n天内被修改过的文件;

(6)“-size”:根据文件大小(默认以字节为单位)查找文件
①find 路径名 -size +n //表示大于n字节的文件;
②find 路径名 -size -n //表示小于n字节的文件;
③find 路径名 -size n //表示等于n字节的文件;

  13.“搜索文件内容”—grep指令
语法:grep [选项] 目标字符串 文件
功能:在文件中搜索字符串,将找到的行打印出来。
这里写图片描述
常用选项
(1)“-n”:打印找到的行内容的同时输出行号
这里写图片描述
(2)“-i”:忽略目标字符串中字符的大小写
这里写图片描述
(3)“-v”:反向选择,即打印出不含目标字符串的行
这里写图片描述
  14.“压缩/解压文件”
(1)zip/unzip
语法:zip 压缩包名称.zip 目录或文件
功能:将目录或文件压缩成zip格式
这里写图片描述
压缩成功后,先删除文件a.txt和b.txt,再对test.zip进行解压缩(unzip),如下:
这里写图片描述
(2)gzip:其后直接跟目标文件,会生成一个.gzip格式的压缩文件。
这里写图片描述
但是这种压缩文件是不能用unzip进行解压缩的,必须使用gunzip:
这里写图片描述
(3)bzip2:其后直接跟目标文件,会生成一个.bz2格式的压缩文件。解压缩使用bunzip。
【注】gzip和bzip2是不能对目录进行压缩的。
(4)tar
语法:tar [-cvzjfxt] 文件或目录… 参数
功能:对目录或文件进行打包/解包操作。
常用选项
①“-c”:对一个文件或目录进行打包操作;
②“-v”:显示打包过程中都对哪些文件进行了操作,显示详细信息;
③“-z”:在打包的同时对数据进行.gz格式的压缩;
④“-j”:在打包的同时对数据进行.bz2格式的压缩;
⑤“-f”:必须位于各个选项的最后,因为-f之后要立即跟上包的名称;
⑥“-x”:对一个压缩文件进行解包;
⑦“-t”:仅仅显示包里的文件,不解包;
⑧“-C”:解压到指定目录。

  下面介绍一些与时间相关的指令。
  1.“查看当前日期及时间”—date指令
这里写图片描述
从上面的显示结果来看,虽然给出了我们想要的结果,但是格式上并不顺眼,想要它按照我们的意愿来显示,需给date设定其显示的格式:
格式(1)date +%Y%m%d
“%Y”表示年份;
“m”表示月份;
“d”表示一个月中的第几天;
这里写图片描述
【注】“+”后面的格式随意,最好加上引号。
格式(2)date +%F
这里写图片描述
可见:date +“%Y%m%d” 等价于 date +%F
  想要看现在的时间呢?
格式(1)date +%H%M%S
“%H”表示小时;
“%M”表示分钟;
“%S”表示秒;
这里写图片描述
格式(2)date +%X(或者%T)
这里写图片描述
可见:date +“%H%M%S” 等价于 date +%X
综上:同时显示日期和时间如下:
这里写图片描述
【思考】若要创建一个日志文件,要求该文件应以其被创建的日期为名,应如何来写?
这里写图片描述
此处的touch `date +%Y%m%d`.log的执行过程如下:
1.执行date +%Y%m%d,将结果放入反单引号中;
2.执行touch。
时间戳(Unix时间戳)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
来看时间和时间戳之间的相互转换:
这里写图片描述
  2.“显示日历”—cal指令(Calendar)
这里写图片描述
常用选项:
(1)“-3”:显示系统上一个月,当前月和下一个月的日历
这里写图片描述
(2)“-j”:显示今天是当前年份中的第几天(一年日期按天算,从1月1日算起,默认显示当前月在一年中的天数)
这里写图片描述
(3)“-y”:显示指定年份的日历(若无参数,则默认显示当前年份的日历)。

猜你喜欢

转载自blog.csdn.net/Sunshine_R9H15Chen/article/details/81434646