【Linux】Linux基本命令(二)
1、文件管理
1.1 file
file命令用于辨识文件类型,通过file指令,我们得以辨识该文件的类型
语法:
file [-bcLvz][-f <名称文件>]
参数:
- -b 列出辨识结果时,不显示文件名称
- -c 详细显示指令执行过程,便于排错或分析程序执行的情形
- -f <名称文件> 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
- -L 直接显示符号连接所指向的文件的类别
- -v 显示版本信息
- -z 尝试去解读压缩文件的内容
实例:
file install.log//显示文件名
install.log: UTF-8 Unicode text
file -b install.log//不显示文件名
UTF-8 Unicode text
1.2 which
which命令用于查找文件
which指令会在环境变量$PATH设置的目录里查找符合条件的文件
语法:
which [文件...]
参数:
- -n <文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
- -p <文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
- -w 指定输出时栏位的宽度。
- -V 显示版本信息。
实例:
//使用指令which查看指令bash的路径
which bash
1.3 whereis
whereis
命令用于查找文件。该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。
该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令
语法:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
参数:
- -b 只查找二进制文件。
- -B 只在设置的目录下查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -M 只在设置的目录下查找说明文件。
- -s 只查找原始代码文件。
- -S 只在设置的目录下查找原始代码文件。
- -u 查找不包含指定类型的文件。
实例:
//使用指令whereis查看指令bash的位置
whereis bash
//显示bash 命令的二进制程序
whereis -b bash
bash: /bin/bash /etc/bash.bashrc /usr/share/bash //bash命令的二进制程序的地址
//显示bash 命令的帮助文件
whereis -m bash
bash: /usr/share/man/man1/bash.1.gz //bash命令的帮助文件地址
1.4 cp
cp(英文全拼:copy file)命令主要用于复制文件或目录
语法:
cp [options] source dest
参数:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
实例:
//使用指令 cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下
cp –r test/ newtest
//注意:用户使用该指令复制目录时,必须使用参数 -r 或者 -R
2、文档编辑
2.1 grep
grep 命令用于查找文件里符合条件的字符串
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出
来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据
语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参数:
- -a 或 --text : 不要忽略二进制的数据。
- **-A<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
- -b : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
- -B<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
- **-c : 计算符合样式的列数。
- -C<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
- -d <动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
- -e<范本样式> : 指定字符串做为查找文件内容的样式。
- -E : 将样式为延伸的正则表达式来使用。
- -f<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
- -F : 将样式视为固定字符串的列表。
- **-G : 将样式视为普通的表示法来使用。
- -h : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
- **-H : 在显示符合样式的那一行之前,表示该行所属的文件名称。
- -i : 忽略字符大小写的差别。
- **-l : 列出文件内容符合指定的样式的文件名称。
- -L : 列出文件内容不符合指定的样式的文件名称。
- -n : 在显示符合样式的那一行之前,标示出该行的列数编号。
- **-o : 只显示匹配PATTERN 部分。
- -q : 不显示任何信息。
- **-r : 此参数的效果和指定"-d recurse"参数相同。
- -s : 不显示错误信息。
- **-v : 显示不包含匹配文本的所有行。
- -V : 显示版本信息。
- **-w : 只显示全字符合的列。
- **-x : 只显示全列符合的列。
- -y : 此参数的效果和指定"-i"参数相同。
2.2 sort
sort 命令用于将文本文件内容加以排序
sort 可针对文本文件的内容,以行为单位来排序
语法:
sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]
参数:
- -b 忽略每行前面开始出的空格字符。
- -c 检查文件是否已经按照顺序排序。
- -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
- -f 排序时,将小写字母视为大写字母。
- -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
- -m 将几个排序好的文件进行合并。
- -M 将前面3个字母依照月份的缩写进行排序。
- -n 依照数值的大小排序。
- -u 意味着是唯一的(unique),输出的结果是去完重了的。
- -o<输出文件> 将排序后的结果存入指定的文件。
- -r 以相反的顺序来排序。
- -t<分隔字符> 指定排序时所用的栏位分隔字符。
- +<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。
- –help 显示帮助。
- –version 显示版本信息。
- [-k field1[,field2]] 按指定的列进行排序。
实例:
//使用 sort 命令以默认的式对文件的行进行排序
sort testfile
//sort 命令将以默认的方式将文本文件的第一列以 ASCII 码的次序排列,并将结果输出到标准输出。使用 cat 命令显示 testfile 文件可知其原有的排序如下:
cat testfile //打印testfile文件原有排序
test 30
Hello 95
Linux 85
sort testfile //打印重排结果
Hello 95
Linux 85
test 30
//使用 -k 参数设置对第二列的值进行重排
sort testfile -k 2
test 30
Linux 85
Hello 95
2.3 wc
wc命令用于计算字数。
利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据
语法:
wc [-clw][--help][--version][文件...]
参数:
- -c或–bytes或–chars 只显示Bytes数。
- -l或–lines 显示行数。
- -w或–words 只显示字数。
- –help 在线帮助。
- –version 显示版本信息。
实例:
//在默认的情况下,wc将计算指定文件的行数、字数,以及字节数
wc testfile
3 92 598 testfile //testfile文件的行数为3、单词数92、字节数598
//如果想同时统计多个文件的信息,例如同时统计testfile、testfile_1、testfile_2
wc testfile testfile_1 testfile_2\
//输出如下:
3 92 598 testfile //第一个文件行数为3、单词数92、字节数598
9 18 78 testfile_1 //第二个文件的行数为9、单词数18、字节数78
3 6 32 testfile_2 //第三个文件的行数为3、单词数6、字节数32
15 116 708 总用量 //三个文件总共的行数为15、单词数116、字节数708
3、系统管理
3.1 date
date 命令可以用来显示或设定系统的日期与时间
语法:
date [OPTION]... [+FORMAT]
参数:
- %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
在显示方面,使用者可以设定欲显示的格式 ,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
%% 输出字符 %
%a 星期几的缩写 (Sun..Sat)
%A 星期的完整名称(Sunday..Saturday)。
%b 缩写的月份名称(例如,Jan)
%B 完整的月份名称(例如,January)
%c 本地日期和时间(例如,Thu Mar 3 23:05:25 2005)
%C 世纪,和%Y类似,但是省略后两位(例如,20)
%d 日 (01..31)
%D 日期,等价于%m/%d/%y
%e 一月中的一天,格式使用空格填充,等价于%_d
%F 完整的日期;等价于 %Y-%m-%d
%g ISO 标准计数周的年份的最后两位数字
%G ISO 标准计数周的年份,通常只对%V有用
%h 等价于 %b
%H 小时 (00..23)
%I 小时 (01..12)
%j 一年中的第几天 (001..366)
%k 小时,使用空格填充 ( 0..23); 等价于 %_H
%l 小时, 使用空格填充 ( 1..12); 等价于 %_I
%m 月份 (01..12)
%M 分钟 (00..59)
%n 新的一行,换行符
%N 纳秒 (000000000..999999999)
%p 用于表示当地的AM或PM,如果未知则为空白
%P 类似 %p, 但是是小写的
%r 本地的 12 小时制时间(例如 11:11:04 PM)
%R 24 小时制 的小时与分钟; 等价于 %H:%M
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
%S 秒 (00..60)
%t 插入水平制表符 tab
%T 时间; 等价于 %H:%M:%S
%u 一周中的一天 (1..7); 1 表示星期一
%U 一年中的第几周,周日作为一周的起始 (00..53)
%V ISO 标准计数周,该方法将周一作为一周的起始 (01..53)
%w 一周中的一天(0..6),0代表星期天
%W 一年中的第几周,周一作为一周的起始(00..53)
%x 本地的日期格式(例如,12/31/99)
%X 本地的日期格式(例如,23:13:48)
%y 年份后两位数字 (00..99)
%Y 年
%z +hhmm 格式的数值化时区格式(例如,-0400)
%:z +hh:mm 格式的数值化时区格式(例如,-04:00)
%::z +hh:mm:ss格式的数值化时区格式(例如,-04:00:00)
%:::z 数值化时区格式,相比上一个格式增加':'以显示必要的精度(例如,-04,+05:30)
%Z 时区缩写 (如 EDT)
3.2 top
top命令用于实时显示 process 的动态
使用权限:所有使用者
语法:
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数:
- d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
- q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
- c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
- S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来
- s : 安全模式,将交谈式指令取消, 避免潜在的危机
- i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程
- n : 更新的次数,完成后将会退出 top
- b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
实例:
//显示进程信息
top
//显示完整命令
top -c
//显示指定的进程信息
top -p 139 //显示进程号为139的进程信息,CPU、内存占用率等
3.3 uname
uname(英文全拼:unix name)命令用于显示系统信息
uname 可显示电脑以及操作系统的相关信息
语法:
uname [-amnrsv][--help][--version]
参数:
- -a或–all 显示全部的信息。
- -m或–machine 显示电脑类型。
- -n或–nodename 显示在网络上的主机名称。
- -r或–release 显示操作系统的发行编号。
- -s或–sysname 显示操作系统名称。
- -v 显示操作系统的版本。
- –help 显示帮助。
- –version 显示版本信息。
实例:
//显示系统信息
uname -a
Linux iZbp19byk2t6khuqj437q6Z 4.11.0-14-generic #20~16.04.1-Ubuntu SMP Wed Aug 9 09:06:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
//显示计算机类型
uname -m
x86_64
4、系统设置
4.1 alias
alias命令用于设置指令的别名。
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别
名,可在.profile或.cshrc中设定指令的别名
语法:
alias[别名]=[指令名称]
实例:
//给命令设置别名
alias lx = ls
4.2 passwd
passwd命令用来更改使用者的密码
语法:
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
参数:
- -d 删除密码
- -f 强迫用户下次登录时必须修改口令
- -w 口令要到期提前警告的天数
- -k 更新只能发送在过期之后
- -l 停止账号使用
- -S 显示密码信息
- -u 启用已被停止的账户
- -x 指定口令最长存活期
- -g 修改群组密码
- 指定口令最短存活期
- -i 口令过期后多少天停用账户
实例:
//设置dy用户的密码
passwd dy
Enter new UNIX password: //输入新密码,输入的密码无回显
Retype new UNIX password: //确认密码
passwd: password updated successfully
//显示账号密码信息
passwd -S dy
dy P 05/13/2010 0 99999 7 -1
//删除用户密码
passwd -d dy
passwd: password expiry information changed.
5、备份压缩
5.1 tar
tar(英文全拼:tape archive )命令用于备份文件。
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
语法:
tar [OPTION][FILE]
参数:
-x :从压缩的文件中提取文件
-z:支持gzip解压文件
-v:显示操作过程
-t:显示压缩文件的内容
-A:追加tar文件至归档
-B :设置区块大小
-c :建立新的归档
-d :记录文件的差别
-r :追加文件至归档结尾
-u :添加改变了和现有的文件到已经存在的压缩文件
-j: 支持bzip2解压文件
-Z:支持compress解压文件
-l:文件系统边界设置
-k:保留原有文件不覆盖
-m:保留文件不被覆盖
-W:确认压缩文件的正确性
可选参数:
-C:切换到指定目录
-f:指定压缩文件
-b:设置区块数目
–help 显示帮助信息
实例:
//压缩文件 非打包
touch a.c
tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
//列出压缩文件内容
tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c
//解压文件
tar -xzvf test.tar.gz
5.2 zip
zip 命令用于压缩文件。
zip 是个使用广泛的压缩程序,压缩后的文件后缀名为 .zip
语法:
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]
参数:
- -A 调整可执行的自动解压缩文件。
- -b<工作目录> 指定暂时存放文件的目录。
- -c 替每个被压缩的文件加上注释。
- -d 从压缩文件内删除指定的文件。
- -D 压缩文件内不建立目录名称。
- -f 更新现有的文件。
- -F 尝试修复已损坏的压缩文件。
- -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
- -h 在线帮助。
- -i<范本样式> 只压缩符合条件的文件。
- -j 只保存文件名称及其内容,而不存放任何目录名称。
- -J 删除压缩文件前面不必要的数据。
- -k 使用MS-DOS兼容格式的文件名称。
- -l 压缩文件时,把LF字符置换成LF+CR字符。
- -ll 压缩文件时,把LF+CR字符置换成LF字符。
- -L 显示版权信息。
- -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
- -n<字尾字符串> 不压缩具有特定字尾字符串的文件。
- -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
- -q 不显示指令执行过程。
- -r 递归处理,将指定目录下的所有文件和子目录一并处理。
- -S 包含系统和隐藏文件。
- -t<日期时间> 把压缩文件的日期设成指定的日期。
- -T 检查备份文件内的每个文件是否正确无误。
- -u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
- -v 显示指令执行过程或显示版本信息。
- -V 保存VMS操作系统的文件属性。
- -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
- -x<范本样式> 压缩时排除符合条件的文件。
- -X 不保存额外的文件属性。
- -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
- -z 替压缩文件加上注释。
- -$ 保存第一个被压缩文件所在磁盘的卷册名称。
- -<压缩效率> 压缩效率是一个介于1-9的数值。
实例:
//将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip
zip -q -r html.zip /home/html
//从压缩文件 cp.zip 中删除文件 a.c
zip -d cp.zip a.c
5.3 unzip
unzip命令用于解压缩zip文件
unzip为.zip压缩文件的解压缩程序
语法:
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]
参数:
- -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
- -f 更新现有的文件。
- -l 显示压缩文件内所包含的文件。
- -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
- -t 检查压缩文件是否正确。
- -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
- -v 执行时显示详细的信息。
- -z 仅显示压缩文件的备注文字。
- -a 对文本文件进行必要的字符转换。
- -b 不要对文本文件进行字符转换。
- -C 压缩文件中的文件名称区分大小写。
- -j 不处理压缩文件中原有的目录路径。
- -L 将压缩文件中的全部文件名改为小写。
- -M 将输出结果送到more程序处理。
- -n 解压缩时不要覆盖原有的文件。
- -o 不必先询问用户,unzip执行后覆盖原有文件。
- -P<密码> 使用zip的密码选项。
- -q 执行时不显示任何信息。
- -s 将文件名中的空白字符转换为底线字符。
- -V 保留VMS的文件版本信息。
- -X 解压缩时同时回存文件原来的UID/GID。
- [.zip文件] 指定.zip压缩文件。
- [文件] 指定要处理.zip压缩文件中的哪些文件。
- -d<目录> 指定文件解压缩后所要存储的目录。
- -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
- -Z unzip -Z等于执行zipinfo指令。
实例:
//查看压缩文件中包含的文件
unzip -l abc.zip
Archive: abc.zip
Length Date Time Name
-------- ---- ---- ----
94618 05-21-10 20:44 a11.jpg
202001 05-21-10 20:44 a22.jpg
16 05-22-10 15:01 11.txt
46468 05-23-10 10:30 w456.JPG
140085 03-14-10 21:49 my.asp
-------- -------
483188 5 files
//-v 参数用于查看压缩文件目录信息,但是不解压该文件
unzip -v abc.zip
Archive: abc.zip
Length Method Size Ratio Date Time CRC-32 Name
-------- ------ ------- ----- ---- ---- ------ ----
94618 Defl:N 93353 1% 05-21-10 20:44 9e661437 a11.jpg
202001 Defl:N 201833 0% 05-21-10 20:44 1da462eb a22.jpg
16 Stored 16 0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt
46468 Defl:N 39997 14% 05-23-10 10:30 962861f2 w456.JPG
140085 Defl:N 36765 74% 03-14-10 21:49 836fcc3f my.asp
-------- ------- --- -------
483188 371964 23% 5 files
6、其他
6.1 man
man 指令可以查阅 Linux 的联机手册
使用前说明,man指令需要提前安装使用
root下安装 man
指令:
yum intall -y man-pages
1
通过 sudo
来为普通用户安装(普通用户使用sudo
):
sudo yum intall -y man-pages
语法:
man [查找手册] 命令
查找手册:
序号 | 英文 | 中文 |
---|---|---|
1 | Executable programs or shell commands | 普通命令 |
2 | System calls (functions provided by the kernel) | 系统调用 |
3 | Library calls (functions within program libraries) | (C语言)库函数 |
4 | Special files (usually found in /dev) | 特殊文件 |
5 | File formats and conventions, e.g. /etc/passwd | 文件格式 |
6 | Games | 游戏 |
7 | Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) | 附件和变量 |
8 | System administration commands (usually only for root) | 系统管理命令(通常为root使用) |
9 | Kernel routines [Non standard] | 内核例程(非标准) |
注:man 默认从1号手册开始查找 man 后的内容,按照手册顺序依次向后查找,找到就显示
实例:
//查找 printf 指令
man printf
//使用 man 在 3号手册(C语言库函数) 查找 printf
man 3 printf
6.2 echo
echo "字符串"
:可以把字符串打印到屏幕上
语法:
echo "字符串"
——可以把字符串打印到屏幕上
echo "字符串" > 文件名
——将字符串写入文件中,若文件不存在会创建文件,为输出重定向
注:每次重定向后,文件中的内容为最后一次重定向的结果。覆盖式写入(准备写入之前,先清空文件)
echo "字符串" >> 文件名
——将字符串内容追加到文件中,为追加重定向
注:追加自带换行,不断向目标文件中新增内容
实例:
//输出 hello world
echo "hello world"
//重定向到text.txt中
echo "hello world" > text.txt
//追加重定向
echo "ME" >> text.txt
echo "MYSELF" >> text.txt
echo "AND I" >> text.txt
6.3 head & tail
6.3.1head
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容
语法:
head [参数] [文件]
参数:
- -q 隐藏文件名
- -v 显示文件名
- -c<数目> 显示的字节数。
- -n<行数> 显示的行数。
实例:
//要显示 notes.log 文件的开头 10 行,请输入以下命令
head notes.log
//以上命令等价于
head -n 10 notes.log
6.3.2 tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
语法:
tail [参数] [文件]
参数:
- -f 循环读取
- -q 不显示处理信息
- -v 显示详细的处理信息
- -c<数目> 显示的字节数
- -n<行数> 显示文件的尾部 n 行内容
- –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
- -q, --quiet, --silent 从不输出给出文件名的首部
- -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
实例:
//要显示 notes.log 文件的最后 10 行
tail notes.log
//跟踪名为 notes.log 的文件的增长情况
tail -f notes.log //此命令显示文件的最后 10 行。当将某些行添加至文件时,tail 命令会继续显示这些行。 显示继续,直到按下(Ctrl-C)组合键停止
6.4 col
col命令用于过滤控制字符
语法:
col [-bfx][-l<缓冲区列数>]
参数:
- -b 过滤掉所有的控制字符,包括RLF和HRLF
- -f 滤除RLF字符,但允许将HRLF字符呈现出来
- -x 以多个空格字符来表示跳格字符
- -l<缓冲区列数> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小
实例:
//下面以 man 命令帮助文档为例,讲解col 命令的使用。将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符
man man | col-b > man_help
注:其中"|"用于建立管道,把man命令的输出结果转为col命令的输入数据
6.5 bc
bc 命令是任意精度计算器语言,通常在linux下当计算器用。
它类似基本的计算器, 使用这个计算器可以做基本的数学运算
语法:
bc(参数)(指定包含计算任务的文件)
选项:
- -i:强制进入交互式模式;
- -l:定义使用的标准数学库
- -w:对POSIX bc的扩展给出警告信息;
- -q:不打印正常的GNU bc环境信息;
- -v:显示指令版本信息;
- -h:显示指令的帮助信息。
bc的使用方法有两种:
- 直接输入
bc
,阻塞后就可直接计算,相当于计算器 - 使用管道连接输入与bc
实例:
//echo 将 1+2+3+4 输送到管道中,bc 直接取管道中的值进行计算
echo "1 + 2 + 3 + 4" | bc
6.6 history
用于显示历史记录和执行过的指令命令
当登录shell或者是退出的时候会自动进行读取和存储
语法:
history (选项)(参数)
参数:
n | 显示最近的n条记录 | |
---|---|---|
-a | 将历史命令缓冲区中命令写入历史命令文件中 | |
-c | 将目前的shell中的所有 history 内容全部消除 | 实际为假删除 |
-r | 将历史命令文件中的命令读入当前历史命令缓冲区 | |
-w | 将当前历史命令缓冲区命令写入历史命令文件中 | |
-d | 删除历史记录中指定的行 |
实例:
//获取历史记录的最新两条
history 2
//删除358行历史记录(这样可以有针对性的保留历史记录)
history -d 358