echo命令
使用echo命令可以打印变量的值
示例:
echo $PATH
自定义临时变量:(临时变量只能在当前会话起作用)
定义:export a=1
打印变量:echo $a
printenv命令
printenv命令可以打印环境变量
more、less命令
more命令
语法:more [-dsu] [-num] [+/pattern] [+linenum] [fileNames..]
参数:
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
-num 一次显示的行数
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数
常用操作命令:
Enter键 向下n行,需要定义。默认为1行
空格键 向下滚动一屏
Ctrl+B 返回上一屏
q 退出more
示例:
命令:more THIRDPARTYLICENSEREADME.txt
命令:more -s THIRDPARTYLICENSEREADME.txt
命令:more -s +/root THIRDPARTYLICENSEREADME.txt
命令:more -s +/root -10 THIRDPARTYLICENSEREADME.txt
less命令
语法:less [参数] 文件
参数:
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-N 显示每行的行号
-m 显示类似more命令的百分比
-i 忽略搜索时的大小写
-o <文件名> 将less 输出的内容在指定文件中保存起来
-g 只标志最后搜索的关键词
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
wc命令
wc [-wlL][--help][--version][文件...](wc命令用于计算字数)
参数:
-w 统计单词个数
-l 统计行数
-L 计算最长行的长度
--help 在线帮助
--version 显示版本信息
管道命令(|)
管道把左侧程序的输出作为右侧程序的输入
示例:
printenv | less
ls -l *.py | wc -l
grep命令
grep [-iwlrnv] [文件或目录...]
参数:
-i 忽略大小写(ignore case)
-w 只匹配整个单词
-l 只列出文件名,不列出匹配行
-r 在当前和所有子目录中搜索
-n 列出具有行号的匹配行
-v 只打印没有匹配的,而匹配的反而不打印
grep命令用法
printenv | grep path #环境变量中寻找小写path
printenv | grep -i path #寻找path,不区分大小写
grep -ir python . #在当前和所有子目录中的任何文件中查找python
grep -ir python file1 #在file1中找到python
grep -ir --include *.py math ~ #在home和所有子目录中的py文件中查找包含'math'的行,不区分大小写
file命令
file [-bcLvz][文件或目录...](用来识别文件类型)
参数:
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-L 直接显示符号连接所指向的文件的类别。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
重定向I/O Stream到文件
选项 说明 模式
< 重定向stdin
> 重定向stdout 覆盖
>> 重定向stdout 追加
2> 重定向stderr 覆盖
2>> 重定向stderr 追加
which命令
which [文件...](用于查找命令)
参数:
-n<文件名长度> 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p<文件名长度> 与-n参数相同,但此处的<文件名长度>包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息。
ln命令
ln [参数][源文件或目录][目标文件或目录](在文件之间建立链接)
参数:
-s 软链接(符号链接)
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-v 显示详细的处理过程
find命令
find path(路径) [参数] [-print](搜索目录层次结构中的文件)
参数:
-name 'name' 文件名称符合 name 的文件
-size n 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
-type c 文件类型是 c 的文件(d: 目录 f: 一般文件 l: 符号连结)
-pid n : process id 是 n 的文件
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比文件 file 更晚被读取过的文件
-atime n : 在过去n天内被读取过的文件
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比文件 file 更新的文件
-ctime n : 在过去n天内被修改过的文件
示例:
#从根目录访问所有目录以查找'tar'
find / -name 'tar'
#从〜/ tmp目录开始,找到所有'.txt'文件并将其转换为hexdump
find ~/tmp -name '*.txt' -type f -exec d -C {} \;
查找某个文件
find / -type 类型 -name '文件名' -size 文件大小c
示例:查找w.txt文件
find / -type f -name '*.txt' -size 83c
查找某个文件内容
find / -type 类型 -name '文件名' -size 文件大小c | grep -r 文件内容
示例:查找w.txt文件Hello内容
find / -type f -name '*.txt' -size 15c | grep -r Hello!
date命令
打印或设置系统日期和时间
date +%Y-%m-%d #2017-12-23
date +%H:%M:%S #13:29:03
date +%I:%M:%S #12小时时间显示
date +%c #locale的完整日期和时间
date -u #UTC日期和时间
date -R #RFC-2822格式
date -Iseconds #ISO-8601格式
时间方面:
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面:
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
cut命令
cut [-bn] [file]
cut [-c] [file]
cut [-df] [file]
参数:
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除
示例:
#输出的日期格式按空格分割,取出2,3,6位
date -u | cut -d ' ' -f2,3,6
#此示例从文件/etc/mtab中读取数据
cut -d ' ' -f1,2 /etc/mtab
tr命令
tr [-cdst][第一字符集][第二字符集] (用于转换或删除文件中的字符)
参数:
-c, --complement:反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换
-d, --delete:删除指令字符
-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
-t, --truncate-set1:削减 SET1 指定范围,使之与 SET2 设定长度相等
示例:
date -u | tr 'a-z' 'A-Z' # 小写转大写
echo 'abcdefg' | tr -d 'b-e' # 删除
echo 'abbbbg' | tr -s 'b' # 重复单词显示一次
sed命令
sed [-n][-e<script>][-f<script文件>][文本文件]
参数:
-n 仅显示script处理后的结果。
-e<script> 以选项中指定的script来处理输入的文本文件。
-f<script文件> 以选项中指定的script文件来处理输入的文本文件。
动作说明<script>:
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!