Shell
Variable
Variable Types | Present | Declaration |
---|---|---|
Local Variables | Within the current instance of the shell | = |
Environment Variables | Any child process of the shell | export, declare -x |
System Variables | Any shell | bootload |
Declaration
declare [-a] [-f] [-g] [-F] [-x] [-p] [name[=value]] [name[=value]] …
-a array
-i int
-x Environmen Variable
-r read-only
-p display the options and attributes of each variable name if it is used with name arguments
System Environment Variables
$0 | Current Shell name/Script name |
---|---|
$# | Number of parameters passed into the script |
$* | All parameters passed into the script |
$? | Status code of the last command executed |
$PS1 | Command prompt |
$HOME | User home folder |
$PATH | Search path for global commands |
Linux Basic commands
Data Retrieval
row retrieval : grep egrep
Grammar :
grep options 'keys' filename
OPTIONS:
-i : 不区分大小写
-v : 查找不包含指定内容的行,反向选择
-w : 按**单词**搜索
-n : 显示**行号**
-A : 显示匹配行及后面多少行 -A 5
-B : 显示匹配行及前面多少行
-o : 打印匹配关键字
-c : 统计匹配到的次数
-r : 逐层遍历目录查找
-C : 显示匹配行前后多少行
-l :只列出匹配的文件名
-L :列出不匹配的文件名
-e : 使用正则匹配
-E : 使用扩展正则匹配
^key : 以关键字开头
key$ : 以关键字结尾
^$ : 匹配空行
--color=auto :可以将找到的关键词部分加上颜色的显示
string retrieval : cut tr
cut用于列截取
-c: 以字符为单位进行分割。
-d: 自定义分隔符,默认为制表符。\t
-f: 与-d一起使用,指定显示哪个区域。
eg:
cut -d: -f1,6,7 1.txt 以:冒号分割,截取第1,6,7列内容
cut -c1-4 1.txt 截取文件中每行的1-4个字符
cut -c5- 1.txt 从第5个字符开始截取后面所有字符
tr字符转换:替换,删除
Grammar :
commands|tr 'string1' 'string2'
tr 'string1' 'string2' < filename
tr options 'string1' < filename
Options :
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串
eg :
tr -d '[:/]' < 3.txt 删除文件中的:和/
cat 3.txt |tr -d '[:/]' 删除文件中的:和/
tr '[0-9]' '@' < 3.txt 将文件中的数字替换为@符号
tr '[a-z]' '[A-Z]' < 3.txt 将文件中的小写字母替换成大写字母
tr -s '[a-z]' < 3.txt 匹配小写字母并将重复的压缩为一个
tr -s '[a-z0-9]' < 3.txt 匹配小写字母和数字并将重复的压缩为一个
Data Processing
sort : oort
Grammar :
sort options filename
Options :
-u :去除重复行
-r :降序排列,默认是升序
-o : 将排序结果输出到文件中 类似 重定向符号 >
-n :以数字排序,默认是按字符排序
-t :分隔符
-k :第N列
-b :忽略前导空格。
-R :随机排序,每次运行的结果均不同。
Eg :
sort -n -t: -k3 1.txt 按照用户的uid进行升序排列
sort -nr -t: -k3 1.txt 按照用户的uid进行降序排列
sort -nu 2.txt 按照数字排序并且去重
sort -n 2.txt -o 3.txt 按照数字排序并将结果重定向到文件
unique : uniq
去重前先使用sort排序
Grammar :
uniq options filename
Options :
-i: 忽略大小写
-c: 统计重复行次数
-d: 只显示重复行
data output : tee
tee工具从标准输入读取并写入标准输出和文件,即:双向覆盖重定向<屏幕输出|文本输入>
Grammar :
somecommand |tee filename
Options :
-a : 双向追加重定向
text data merging : paste
用于合并文件行输出到屏幕,不会改动源文件
Options :
-d:自定义间隔符,默认是tab,只接受一个字符
-s:将每个文件中的所有内容按照一行输出,文件中的行与行以TAB间隔。
data processing
xargs: 参数处理
Shell Expansion
Brace Expansion
{x..y[..incr]}
Tilde Expansion
~
Shell Parameter Expansion
- ${!parameter} Indirect expansion
- $
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.