LinuxShell命令history
【注】具体详解参见 help 手册。
1. 简介
history 内建命令用于显示或操纵历史命令列表。
2. 格式
123history [NUM|-c|-d [offset]]history [-a|-n|-r|-w] [FILE]history [-p|-s] ARG [ARG ...]
其中,FILE 用于指定保存历史命令列表的文件,默认是~/.bash_history 文件。若未指定任何选项参数,则默认显示保存的所有历史命令列表。
2.1 注意事项
要设置保存历史命令的条目数,可修改 HISTSIZE 环境变量。
要设置保存历史命令列表的默认文件,可修改 HISTFILE 环境变量。
要设置显示时间戳,可修改 HISTTIMEFORMAT 环境变量(被用于 strftime(3) 的格式字符串来打印时间戳),该环境变量默认为空不打印时间戳。
当登陆 Shell 时,会自动读取历史命令列表文件到内存缓冲区内;当 Shell 退出时,才把内存缓冲区写入历史记录文件中(除非手动运行 history -a 命令强制写入)。
当使用了无效选项或发生错误时返回失败,否则 ...
LinuxShell命令let
【注】具体详解参见 help 手册。
1. 简介
Linux Shell 内建命令用于估算算数表达式。估算的计算以定宽的整数完成,不带溢出检测,但除 0 会报错。
2. 格式
1let ARG [ARG ...]
其中,ARG 参数会被 let 作为算数表达式来进行估值。ARG 中的算术操作符列表按照优先级由高到低给出如下:
【注】如果最后一个 ARG 估值为 0,则返回 1;否则返回 0 。
操作符
说明
( )
圆括号内为子表达式,优先进行估值运算
id++, id--
变量后置加、减
++id, --id
变量前置加、减
-, +
单目运算符取负、正
!, ~
逻辑取反、位取反
**
指数
*, /, %
乘法、除法、取余
+, -
加法、减法
<<, >>
左移、右移
<=, >=, <, >
比较
==, !=
等于、不等于
&
按位与
^
按位异或
|
按位或
&&
逻辑与
||
逻辑或
expr ? expr : expr
...
LinuxShell命令more
【注】具体详解参见 man 手册。
1. 简介
more 是一个用于屏幕阅读的文件分页阅览过滤的 Shell 命令,一次阅览一屏幕文字,同时提供页面阅读的基于 vi 交互式命令的交互环境。
2. 格式
1more [OPTIONS] FILE...
其中,OPTIONS 指定选项参数,FILE 指定阅读的文件。
除命令行指定 OPTIONS 选项参数外,more 也同时从环境变量 MORE(选项参数同样以 - 开头)中读取选项参数,但命令行指定的 OPTIONS 参数会覆盖环境变量里的选项参数。
3. 选项
选项参数
说明
-d
提示 “[Press space to continue, ‘q’ to quit.]”,并当用户按下无效键时显示 “[Press ‘h’ for instructions.]”
-l
不要在任何包含 ^L(换页)字符的行后暂停
-f
对逻辑行而非屏幕行进行计数
-p
不进行卷屏,而是接续当前屏幕内容后显示一屏文本
-c
不进行卷屏,而是清除当前一屏内容后显示一屏文本
-s
将重复的空行压缩为一行
-u
不显示下划线
...
LinuxShell命令ps
【注】具体详解参见 man 手册。
1. 简介
ps 是 Linux 下显示瞬间进程状态的强大命令,并不动态连续显示进程状态(top 命令则是对进程进行实时监控)。
2. 格式
1ps [options]
Linux 系统中使用 ps 命令支持三种不同类型的命令行选项参数:
Unix 风格参数(参数前使用单破折线)
BSD 风格参数(参数前不使用破折线)
GNU 风格长参数(参数前加双破折线)
3. 选项
默认情况下(不提供选项参数:ps),只显示运行在当前控制台下属于当前用户的进程。
在使用 BSD 参数时,ps 命令会自动改变输出以模仿 BSD 格式。
3.1 Unix 风格
选项参数
选项参数
说明
-A
显示所有进程,同 -e
-N
显示与指定参数不符的所有进程(默认显示除当前终端下的程序外所有程序),同 --deselect
-a
显示除控制进程和无终端进程外的所有进程
-d
显示除控制进程外的所有进程
-e
显示所有进程,同 -A
-C cmdlist
显示包含在 cmdlist 列表中的进程
-G grplist
...
LinuxShell命令sort
【注】具体详解参见 man 手册和 info 手册。
1. 简介
sort 命令用于对给定的文件中的行进行排序并写到标准输出上。如果没有给定文件或者给定的文件名为 - ,则从标准输入读取数据。
2. 格式
12sort [OPTION]... [FILE]...sort [OPTION]... --files0-from=F
其中,OPTION 指定选项参数,FILE 指定文件名,--files0-from 指定文件名分隔符为全零字节(ASCII NUL)。
3. 选项
选项参数
说明
-b, --ignore-leading-blanks
忽略行数据开头的空格
-d, --dictionary-order
排序比较字符只考虑空格、字母和数字
-f, --ignore-case
将小写字母折合为大写字母进行排序比较
-g, --general-numeric-sort
按照通常的字符数值进行排序比较
-i, --ignore-nonprinting
仅考虑可打印字符
-M, --month-sort
按 (unknown) < ‘JAN’ < ...
LinuxShell命令tail
【注】具体详解参见 man 手册。
1. 简介
tail 命令用于在标准输出上显示每个文件最后 10 行。如果多于一个文件,则会逐个进行显示,并在每个文件显示的首部给出对应的文件名。如果没有指定文件或者指定为 -,则从标准输入上读取。
2. 格式
1tail [OPTION]... [FILE]...
其中,OPTION 指定选项参数,FILE 指定显示的文件。
3. 选项
选项参数
说明
-c [+]NUM, --bytes=[+]NUM
不加 + 指定输出文本最后 NUM 个字节;加 + 指定从文本第 NUM 个字节开始显示
-f, --follow, --follow=descriptor
用于实时监控文件,当文件增长时,输出后续增加的内容(跟随模式)
-F, --retry, --follow=name
对于不能访问的文件(比如权限不足)一直尝试打开,打开后处于跟随模式(--restry 需要配合 -f 使用)
-n [+]NUM, --lines=[+]NUM
不加 + 指定输出文本最后 NUM 行;加 + 指定从文本第 NUM 行开始显示
-- ...
LinuxShell命令unset
【注】具体详解参见 help 手册。
1. 简介
Linux Shell 内建命令 unset 用于取消设定 Shell 变量、函数或属性。
【注】unset 命令不能取消设定只读变量(参见 readonly 内建命令)。
2. 格式
1unset [OPTION] [NAME ...]
其中,OPTION 指定了选项参数,NAME 为指定的变量或函数。不带选项时,unset 首先尝试取消设定一个变量/变量引用;如果失败则再尝试取消设定一个函数。
3. 选项
选项参数
说明
-f
将每个 NAME 视为函数,取消函数的值
-v
将每个 NAME 视为变量,取消变量的值
-n
将每个 NAME 视为变量引用(nameref),只取消其本身而非指向的变量;与 -f 共用时该选项失效
【注】如果使用了无效选项或 unset 只读变量,返回失败;否则返回成功。
LinuxShell命令wc
1. 简介
wc 命令用来统计每个文件的行、单词和字节数并输出。如果指定多个文件,则输出每个文件的总行\单词\字节数及所有文件总的行\单词\字节数;如果没有指定文件或指定文件为 - ,则从标准输入读取。
2. 格式
12wc [options]... [filelist]wc [options]... --files0-from=F
其中,options 指定统计输出格式,filelist 为指定文件列表。options 列表如下:
options
说明
-c, --bytes
输出字节统计数
-m, --chars
输出字符统计数
-l, --lines
输出换行符统计数
--files0-from=F
将文件 F 中以 \0(ASCII NUL)结尾的字符串所指定的文件名作为待统计文件;如果 F 为 - ,则从标准输入读入这些名字
-L, --max-line-length
打印输入行中最大显示宽度(最长行字节数)【注】tab 键为 8 个字节宽,不可打印字符为 0 个字节宽
-w, --words
输出单词统计数
--help
显示帮助信息
...
LinuxShell定时功能
Linux 系统提供了多个在预定时间运行作业的方法:at 命令和 cron 表。
1. at命令
命令格式如下:
1at [-f filename] time
其中,time参数指定了Linux系统何时运行该作业。at命令可识别的time格式有很多种,譬如:
10:30
10:30 PM
now、noon、midnight、teatime
MMDDYY、MM/DD/YY、DD.MM.YY
Jul 1
now + 25 min
…
2. cron时间表
Linux 提供了 crontab 命令来处理 cron 时间表,具体用法可以 help 一下:
1crontab --help
使用以下命令编辑 cron 时间表:
1crontab -e
cron 时间表条目格式如下:
1min hour dayofmonth month dayofweek command
前五项可以使用通配符 * 表示 every min/hour/dayofmonth/month/dayofweek 。
LinuxShell正则表达式与通配符的区别
1. 正则表达式
正则表达式是用来在文本中匹配符合条件的字符串,是包含匹配 。Linux Shell中诸如 grep、awk、sed 等命令都支持正则表达式。
【注】详解请见正则表达式。
2. 通配符
通配符是用来匹配符合条件的文件/路径名,是完全匹配 。Linux Shell中 ls、find、cp 命令不支持正则表达式,所以只能使用通配符来进行文件/路径匹配。
【注】详解请见通配符。
LinuxShell父子关系概述
1. 父 Shell
父 Shell 是用于登录某个远程主机或虚拟控制器终端或在 GUI 中运行终端仿真器时所启动的默认的交互式 Shell 。
Linux Shell 中在当前 Shell 执行脚本文件的方式有:
12source script # 在当前 Shell 执行 script 文件. script # 在当前 Shell 执行 script 文件
2. 子 Shell(subshell)
子 Shell 是父 Shell 进程调用了 fork() 函数,在内存中复制出一个与父 Shell 进程几乎完全一样的子进程。
子 Shell 继承了父 Shell 的所有环境变量(包括全局和局部变量)
可以通过环境变量 BASH_SUBSHELL(其值表明子 Shell 的嵌套深度)判断是第几层子 Shell(0 说明当前 Shell 不是子 Shell)
Linux Shell 中创建子 Shell 的方式有:
123`command[;command...]` # command 在子 Sh ...
LinuxShell重定向和管道
Linux Shell 提供重定向符用于重定向命令的输入和输出,提供管道符用于将一个命令的输出重定向作为另一个命令的输入。
【注】在终端命令上,重定向符总是指向数据流动的方向。
1. 输出重定向
1.1 输出重定向符 >
1command > outputfile
> 重定向符用于把 command 命令的输出结果重定向输入到指定的 outputfile 文件中。
如果 outputfile 不存在,则自动创建。
如果 outputfile 文件有内容,则全部覆盖。
1.2 输出重定向符 >>
1command >> outputfile
>> 重定向符用于把 command 命令的输出结果重定向追加到指定的 outputfile 文件中。
如果 outputfile 不存在,则自动创建。
如果 outputfile 文件有内容,则继续追加到文件末尾。
2. 输入重定向
2.1 输入重定向符 <
1command < inputfile
< 重定向符用于将文件中的内容重定向输入给 comma ...