【Linux】鸟哥的Linux私房菜基础学习篇整理(五)
1. type [-tpa] name:查看name命令是否为bash内置命令。
参数:
type:不加任何参数,type会显示出那么是外部命令还是bash的内置命令;
-t:当加入-t参数时,type会通过如下关键字显示其意义:
file:表示为外部命令
alias:表示为命名别名
builtin:表示为bash的内置命令
-p:如果后面接的name为外置命令时,才会显示完整文件名;
-a:会由PATH变量定义的路径中,将含有name的命令都列出来,包含别名。
2. unset name:取消变量名name的设置。
3. env:查看环境变量。
常见环境变量说明:
HOME:用户主文件夹;
SHELL:当前环境使用的shell路径;
HISTSIZE:历史命令条数;
MAIL:使用mail命令时,系统会去读取的邮件信箱文件;
PATH:可执行文件路径;
LANG:语系数据;
RANDOM:随机数变量。
4. set:查看所有变量(环境变量与自定义变量)。
常见变量说明:
PS1:命令行提示符,其含义如下:
\d:可显示出“星期月日”的日期格式;
\H:完整的主机名;
\h:仅取主机名在第一个小数点前的名字;
\t:显示时间,为24小时格式“HH:MM:SS”;
\T:显示时间,为12小时格式“HH:MM:SS”;
\A:显示时间,为24小时格式“HH:MM”;
\@:显示时间,为12小时格式“am/pm”;
\u:目前用户的账号名称;
\v:BASH的版本信息;
\w:完整的工作目录名称;
\W:利用basename函数取得工作目录名称,仅列出最后一个目录名;
\#:执行的第几个命令;
\$:提示符,若为root,则显示#,其他显示$。
$:表示目前SHELL线程的PID;
?:代表上一个执行命令的回传码。
5. locale [-a]:查询支持的语系。
参数:
无参数:查看与语系相关的变量设置;
-a:查看支持的全部语系。
6. read [-pt] variable:读取来自键盘的输入到变量。
参数:
-p:后面可接提示符;
-t:后面可以接至多等待的秒数。
7. declare [-aixr] variable:声明变量的类型。
参数:
-a:将变量声明为数组类型;
-i:将变量声明为整型;
-x:将变量声明为环境变量;
-r:将变量设置为只读类型
8. ulimit [-SHacdfltu] [配额]:限制配额设置。
参数:
-H:Hard Limit,严格设置,必定不能超过这个设置值;
-S:Soft Limit,警告设置,可以超过这个设置值,当会产生警告信息;
-a:后面不接任何参数,列出所有的限制配额;
-c:限制每个core file文件的最大容量;
-f:限制shell可以创建的最大文件容量;
-d:进程可以使用的最大断裂内存容量;
-l:可用于锁定的内存容量;
-t:可使用的最大CPU使用时间;
-u:单一用户可以使用的最大进程数目。
9. 变量内容的删除与替换。
变量设置方式:
${变量#关键字}:若变量内容从头开始的数据符合“关键字”,则将符合的最短数据删除;
${变量##关键字}:若变量内容从头开始的数据符合“关键字”,则将符合的最长数据删除;
${变量%关键字}:若变量内容从尾向前的数据符合“关键字”,则将符合的最短数据删除;
${变量%%关键字}:若变量内容从尾向前的数据符合“关键字”,则将符合的最长数据删除;
${变量/旧字符串/新字符串}:若变量内容符合“旧字符串”,则第一个旧字符串则会被新字符串替换;
${变量//旧字符串/新字符串}:若变量内容符合“旧字符串”,则全部的旧字符串则会被新字符串替换。
10. history [n]/history [-c]/history [-raw] histfiles:历史命令。
参数:
n:数字,列出最近的n条命令;
-c:将目前shell中的所有history内容全部清除;
-a:将目前新增的history命令加入histfiles中,默认写入~/.bash_history;
-r:将histfiles的内容读到目前这个shell的history中;
-w:将目前新增的history命令写入histfiles中。
11. !number/!command/!!:执行history中的命令。
参数:
number:数字,执行第几条命令;
command:执行最近的以command开头的命令;
!!:执行上一条命令。
12. cut -d '分隔字符' -f fields/cut -c 字符范围:分隔信息。
参数:
-d:后面接分隔字符,与-f一起使用;
-f:表示列出分割后的第几段;
-c:以字符的单位列出固定字符区间。
13. grep [-acinv] [--color=auto] '查找字符串' filename:查找信息。
参数:
-a:将binary文件以text文件的方式查找数据;
-c:计算找到'查找字符串'的次数;
-i:不区分大小写;
-n:同时输出行号;
-v:反向选择;
--color=auto:将找到的关键字加上颜色显示。
14. sort [-fbMnrtuk] [file or stdin]:排序。
参数:
-f:忽略大小写的差异;
-b:忽略最前面的空格符;
-M:以月份的名字来排序;
-n:使用纯数字进行排序,默认是按照字典序排序;
-r:反向排序;
-u:uniq,使用相同的数据,仅显示一行;
-t:设置分隔符,默认是[Tab];
-k:设置指定的排序区间。
15. uniq [-ic]:重复数据仅显示一个。
参数;
-i:不区分大小写;
-c:进行计数。
16. wc [-lwm]:计数。
参数:
-l:仅列出行;
-w:仅列出多少字;
-m:仅列出多少字符。
17. tee [-a] file:双重重定向(屏幕和文件均重定向)。
参数:
-a:以累加的方式加入file。
18. tr [-ds] SET1...:删除或替换文字。
参数:
-d:删除信息当中的SET1这个字符串;
-s:替换掉重复的字符串
tr '[a-z]' '[A-Z]':将所有小写字母替换为大写字母。
19. col [-xb]:转移字符替换。
参数:
-x:将[Tab]键替换为对等的空格键;
-b:在文字内有/时,仅保留反斜杠最后接的那个字符。
20. join [-ti12] file1 file2:将两个文件中有相同数据的行加在一起。
参数:
-t:默认以空格符分割数据,并且对比第一个字段的数据,若两个文件第一个字段相同,则将两条数据整合成一行数据;
-i:忽略大小写的差异;
-1:代表第一个文件要用哪个字段分析,后接数字;
-2:代表第二个文件要用哪个字段分析,后接数字。
21. paste [-d] file1 file2:将两个文件直接贴在一起,用[Tab]键分割。
参数:
-d:后面可以接分割字符,默认以[Tab]键分割;
-:如果file部分写成-,代表标准输入。
22. expand [-t] file:将[Tab]键转换成空格键。
参数:
-t:后面接数字,表示[Tab]键可以用多少个空格键替换。
23. split [-bl] file PREFIX:切割命令。
参数:
-b:后面接欲分割的文件大小,可加单位,如b、k、m等;
-l:以行数来进行切割;
PREFIX:代表前导符,可作为切割文件的前导文字。
24. xargs [-0epn] command:参数代换。
参数:
-0:如果输入的stdin含有特殊字符,将它还原成一般字符;
-e:代表指定终结符,xargs分析到该指定字符后停止继续工作;
-p:在执行每个命令的参数时,询问用户的意思;
-n:后面接次数,每次command执行时使用多少个参数。
使用xargs是因为很多命令其实并不支持管道命令,可以通过xargs来提供该命令引用stdin。