命令1~11详情见上文:【Linux】-基本指令(上)
命令12:重定向
12.1 echo指令
- 语法:
echo 输出信息
。- 功能:将信息打印到指定文件,默认为显示器。
12.2 输出重定向
我们可以使用输出重定向将echo输出的语句重定向到指定文件中,比如echo "hello bit" > tmp.txt 就能将字符串hello bit 重定向进tmp.txt文件中,如果该文件不存在则会自动创建。
我们除了使用输出重定向文件输入外,我们还可以利用>清空文件,因为文件一般打开都会默认清空其中的数据。
12.3 追加重定向
我们知道文件打开一般默认会清空其中的数据,为了不让打开的文件数据被清空,我们可以使用追加重定向。追加重定向与输出重定向的使用方式类似,只不过将>改为了>>
12.4 输入重定向
上面我们学了cat指令,一般我们后面会跟一个文件,就可以显示文件的内容,那如果cat之后不跟文件名呢:
这时我们输入什么,按回车后,显示器就回显什么,一直输入,就一直回显,按ctrl + c就可以结束。这就证明cat一直在默认从键盘读取数据,如果我们不想让其从键盘读取数据,就可以使用输入重定向>。
这个输出重定向虽然与我们的cat直接输出类似,但是这两者是有区别的,这个我们后面会单独来谈。
命令13:tac指令
- 语法:tac 文件
- 功能: 反向查看目标文件的内容。
命令14:more指令与less指令
14.1 基本语法
- 语法:more 选项 文件
- 功能: 查看目标文件的内容。
之前我们谈到,cat 指令只适用于查看内容较少的文件,如果一个文件的数据量过多,我们就可以使用more指令查看。首先我们可以通过以下脚本命令(不用知道什么意思)得到一个大文本bit.txt。
cnt=1; while [ $cnt -le 1000 ]; do echo “hello $cnt”; let cnt++; done > bit.txt
然后我们使用more令打开该文件可以看见全屏的数据,按下回车可以查看下面的数据。
并且值得注意的是,more指令无法进行上翻操作,并且more指令在查看之前会先加载整个文件。
14.2 选项
-n:对输出的所有行编号
-q:退出more
14.3 less指令
- 语法:less 选项 文件
- 功能: 查看目标文件的内容。
与more指令不同的是,less指令可以进行上翻操作,并且less指令在查看之前不会先加载整个文件。
命令15:head指令和tail指令
15.1 head指令
- 语法:head 选项 文件
- 功能: 用于显示文件的开头至标准输出中,默认 head 指令打印其相应文件的开头10行。
如果没有选项则默认为前10行
也可以通过指令 -n 来指定行数:
15.2 tail指令
- 语法:tail 选项 文件
- 功能: 用于显示文件的末尾至标准输出中,默认 tail 指令打印其相应文件的末尾10行。
与head类似,也可以通过指令 -n 来指定行数
命令16:命令行管道
如果现在有一个文件 bit.txt ,里面有1000行数据,该如何获取第501~510行的数据呢?我们可以通过两行指令来获取:
首先将文件的前510行数据重定向进一个临时文件 tmp
head -510 bit.txt > tmp.txt
然后使用tail指令来获取最后10行。
tail tmp.txt
但是这样操作就显得繁琐了,为了简化该操作,我们就可以使用 Linux 中的管道。管道是用于传输某种资源的,而计算机上面最重要的资源就是数据。在指令中管道用 | 来表示,管道左边接收产生的数据,右边读取数据。所以我们就可以将上述操作简化为:
head -510 bit.txt | tail -10
命令17:时间相关指令
17.1 显示时间
- 语法:date 选项 格式
- 功能: 用于显示时间、设置时间、完成时间与时间戳之间的相互转换等。
然后我们可以通过选项指定格式:
%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d
date +%Y-%m-%d_%H:%M:%S
17.2 时间戳
时间戳,是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数(不考虑闰秒),用于表示一个时间点。然而,这种格式对于人类阅读并不友好,因此需要转换成可读的日期和时间格式。
我们通过 date +%s 指令获取当前的时间戳。
然后我们可以通过 date -d@时间戳 转换为正常时间。
17.3 设定时间
- date -s 设置当前时间,只有root用户才能设置,普通用户只能查看。date -s 20210725 将时间设置为20210725,这样会将具体时间设置为空(00:00:00)。
- date -s 01:01:01 设置具体时间,不会对日期做更改。
- date -s “01:01:01 2021-07-25" 同时设置日期和具体时间。
- date -s “01:01:01 20210725” 同时设置日期和具体时间。
- date -s “2021-07-25 01:01:01” 同时设置日期和具体时间。
- date -s “2021072501:01:01” 同时设置日期和具体时间。
命令18:cal指令
18.1 基本语法
- 语法:cal 选项 月份 年份。
- 功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。
18.2 选项
- -3 显示系统前一个月,当前月,下一个月的月历。
- -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)。
- -y 显示当前年份的日历。
命令19:find指令
语法:find 路径 选项 …
功能:用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。
命令20 :grep 指令
20.1 基本语法
- 语法:grep 选项 搜寻字符串 文件
- 功能: 在文件中搜索字符串,将找到的行打印出来。
20.2 选项
-i
:忽略大小写进行查找。-n
:输出行号。-v
:反向选择,显示出没有待搜索字符串的行。
命令21:zip 和 unzip指令
21.1 基本语法
如果系统内没有该指令,需要手动安装:
yum -y install zip
yum -y install unzip
zip指令和unzip指令的使用方式:
- 语法:
zip 选项 压缩文件.zip 待打包目录或文件
。- 功能: 将目录或文件打包压缩成
zip
格式。
-r 选项递归处理,将指定目录下的所有文件和子目录一并处理,否则只会打包压缩一个空文件。
- 语法:
unzip 压缩文件.zip 选项 目录
。- 功能: 将压缩文件解压到指定目录当中。
-d 选项将压缩包解压到指定目录里
21.2 linux和windows系统互传
将linux中文件上传到本地windows系统:
sz 压缩包
系统自动弹出Windows系统的文件目录,选择合适的位置点击Choose
将windows系统的压缩包上传到linux系统上:
注:不要使用中文名文件!
命令22:tar指令
22.1 基本语法
tar 指令也可以用来打包压缩和解压文件,并且可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。
注:tar指令生成的是后缀为 .tgz 的压缩文件
语法:
tar 选项 压缩文件.tgz …
功能: 打包/解包,不解开压缩包,直接查看里面内容。
22.2 选项
- -c:建立一个压缩文件的参数指令。
- -x:解开一个压缩文件的参数指令。
- -t:查看tarfile里面的文件。
- -z:是否同时具有gzip属性?即是否需要用gzip压缩?
- -j:是否同时具有bzip2属性?即是否需要用bzip2压缩?
- -v:压缩的过程中显示文件(常用)。
- -f:使用档名,请留意,在f之后要立即接文档名,不要再加参数。
- -C:解压到指定目录。
- 压缩:tar czf xxx.tgz xxx
- 解压:tar xzf xxx.tgz 或者 tar xzf xxx.tgz -C 指定目录
可根据需要加入其他选项(-C选项是加在后面的,其他的加在前面,如 cvzf )
22.3 linux之间互传
scp xxx.tgc 用户名@ip4地址:目标机器指定路径
命令23:bc指令
- 语法:
bc
- 功能: 打开计算器,进行运算。
常见用法:通过管道快速计算字符串组成的算术
命令23:uname指令
- 语法:
uname 选项
。- 功能: 用于获取电脑和操作系统的相关信息。
选项:
-r
:输出电脑和操作系统相关信息。-a
详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。
命令24:shutdown指令
- 语法:
shutdown 选项
。- 功能:关闭计算机,并且所有关机指令只能由
root
用户执行。
选项:
-h
:将系统的服务停掉后,立即关机。-r
:将系统的服务停掉之后就重新启动。-t s
:经过s
秒后关机。
几个常用快捷键
Tab
:命令补全和档案补齐。Ctrl+C
:让当前程序停掉(终止失控程序)。Ctrl+D
:退出当前命令行。- Ctrl+R:搜索历史命令。
- 上下键:查看历史命令
tab键: