shell 常用操作
1. cut 命令
1.1 概述
cut 命令将输入流以行为单位, 以一定条件切割, 将最终结果打印到标准(stdout), 输入流一般是一个文件名, 当没有指定文件名或直接指定 - 时表明直接从标砖输入(stdin)中取流
1.2 语法
cut OUTION FILE
1.3 选项
-b: 仅显示行中指定直接范围的内容-c: 仅显示行中指定范围的字符-d: 指定自负的分割符, 默认分割符为'TAB'-f: 显示指定字段的内容-n: 与 -b 连用, 不分割字节字符--complement: 补足被选择的字节, 字符或字段--out-delimiter= <字符分隔符> : 指定输出内容的字符分割符--help: 显示帮助信息--version: 显示指令版本 字符分隔符>
1.4 示例
- 使用cut 分割显示 passwd 文件 的用户和用户ID
- 截取 第2-5 个字符
2. wc 命令
2.1 概述
wc 命令用于打印数日文件的行, 单词, 字节数
2.2 语法
wc [OPTION] [FILE]
2.3 选项
-c: 统计字节数-l: 统计行数-m: 统计字符数-w: 统计单词数-L: 打印最长行的长度--help: 帮助信息--version: 版本信息
2.4 示例
3. sort 命令
3.1 概述
sort 命令用于字段排序
3.2 语法
sort [OPTION] [FILE]
3.3 选项
-b: --ignore-leading-blanks 忽略字符前面的空白区域-d: --dictionary-order 只考虑空白区域和字母字符-f: --ignore-case 忽略字母大小写-g: --general-numeric-sort 按照常规数值排序-i: --ignore-nonprinting 只按照排打印字符-M: --month-sort 按照月份的英文缩写排序.-k: 指定起始位置, 和结束位置 PS: -k1,2-n: 按照数值大小排序-o <输入文件> : 将输入结果存储在文件内-r: 逆向排序-t <分割字符> : 指定分割字符+ <起始栏位> - <结束栏位> : 指定栏位来排序, 范围有起始栏到结束栏 结束栏位> 起始栏位> 分割字符> 输入文件>
3.4 示例
- 按照用户名排序
- 按照UID 排序
4. uniq 命令
4.1 概述
从输入文件 或标准输入中过滤相邻匹
4.2 语法
uniq [OPTION] [FILE]
uniq [-cdu] [-f<栏位>] [-s<字符设置>] [-w<字符位置>] [--help|--version] [输入文件] [输出文件]
4.3 选项
-c: --count 每列旁边显示该行出现次数-d: --repeated 仅显示重复出现的行列-f <栏位> : --skip-fields= <栏位> 忽略比较指定的栏位-s <字符位置> : --skip-chars= <字符位置> 忽略比较指定的字符-u: --unique 仅显示处一次的行列-w <字符位置> : --check-chars= <字符位置> 指定要比较的字符--help: 帮助信息--version 版本[输入文件]: 指定已排序好的文本文件[输出文件]: 指定输出的文件 字符位置> 字符位置> 字符位置> 字符位置> 栏位> 栏位>
4.4 示例
5. tee命令
5.1 概述
tee 用于读取标准输入的数据, 并将其内容输出成文件
5.2 语法
tee [-ai] [--help] [--version] [FILE]
5.3 选项
-a: --append 附加到基友文件后面-i: --ignore-interrupts 忽略中断信号--help: 版本信息--version: 显示版本信息
5.4 示例
6. split 命令
6.1 概述
将一个大文件分割分割成多个小文件, 有些文件太大, 分割成小文件, 可以提高易读性
6.2 语法
split [OPTION] [FILE]
6.3 选项
-b: 指定切割的每个片段的大小, 单位为 byte-c: 每输出一个片段, 单行的最大 byte 数-d: 使用数字作为后缀-l: 值为 每个片段的列数大小PREFIX: 带包前导符, 可以作为切割文件的前导文件
6.4 示例
6. tr 命令
6.1 概述
tr 命令用于转换或删除文件的字符, 从标准输入读取数据, 进过字符串转译后, 将结果输出到标准设备.
6.2 语法
tr [-cdst] [--help] [--version] [第一字符集][第二字符集]
6.3 选项
-c: --complement: 反选设定字符, 也就是说符合 SET1 部分不做处理, 不符合的剩余部分进行转换-d: --delete: 删除指定字符-s: -squeeze-repeats: 缩减连续重复的字符成指定的单个字符-t: --truncate-set1: 消减SET1 指定范围, 使之与 SET2 设定长度相似--help: 帮助信息--version: 版本信息
- 字符合集范围:
\N 八进制字符 N\\ 反斜杠\a Ctrl-G 铃声\b Ctrl-H 退格符\f Ctrl=L 走行换页\n Ctrl-J 新行\r Ctrl-M 回车\t Ctrl-I tab 键\v Ctrl-X 水平制表符[:alnum:] 所有字母字符与数字[:alpha:] 所有字母字符[:black:] 所有水平空格[:cntrl:] 所有控制字符[:digit:] 所有数字[:graph:] 所有可打印的空白字符(不包含空格)[:lower:] 所有小写字母[:print:] 所有可打印的字符(包含空格)[:punct:] 所有标点字符[:upper:] 所有大写字母[:xdigit:] 所有16进制数字[CHAR] 所有符合指定的字符
6.4 示例
7. 其他操作
7.1 设置环境变量HISTSIZE
- 编辑/etc/profile 文件
7.2 设置PS1
- 设置PS1 编辑
~/.bashrc
添加PS1=
- 恢复 PS1
- 删除
~/.bashrc
内的PS1 设置 export PS1="[\u@\h \w]$"
- 删除
7.3 将当前目录下文件的文件名小写替换成大写
7.4 使用 sort 以 : 为分隔符, 排序passwd 文件
7.5 使用 cut以: 分割, 截取 /etc/passwd 第三段
7.6 /etc/profile , /etc/bashrc, ~/.bashrc, ~/.bash_profile
- profile文件内声明的变量, 仅在用于登录状态下都会生效
- bashrc 文件内声明的变量, 不管用户是否 是登录状态下 执行的命令都会生效
- /etc/ 目录下表示该文件对所有用户都有效,
- ~/ 目录下表示该文件仅对 目标用户有效.
7.7 export 的作用
- exprot 用于声明变量, 让系统变量问变量设定的文件生效.
##7.8 Linux 下自定义变量设定的规则
- 变量名由 数字字母下划线 组成, 且不可以为数字开头.
- 变量内容如果有特殊字符需要生效, 则用双引号 引起, 如果不要生效, 或者没有特殊字符 使用单引号
- 变量声明方式: export 变量名=变量值
7.9 命令后台与前台
- 将命令行中正在运行的命令已到后台(暂停的): Ctrl+z
- 将后台暂停的命令运行 bg [作业号]
- 将后台命令已到前台运行 fg [作业号]
- 查看后台运行的命令 jobs
- 直接将命令作为后台状态运行: COMMAND &
7.10 列出目录下所有test 卡头文件
ls test*
7.11 把命令输出打印到屏幕同时 输出到文件
COMMAND |tee FILE
7.12 长命令或选项过长, 记不住怎么办
alias COMMAND_ALIAS="COMMAND OPTION "
7.13 将命令放置后台运行, 同时正确输出 和 错误输出到 一个文件
COMMAND 1> a.txt 2>a.txt &
7.14 分割一个大文件
- 按照大小
split -b<SIZE> FILE
- 按照行数
split -l<LINE> FILE
7.15 && || ; 三种的区别
- ; 前后两个命令互不影响, 不论前一个命令是否成功执行, 后一个都会被执行
- && 只有前一个命令成功执行了, 才会执行后一个命令
- || 前一个命令如果成功执行了, 后一个将不会被执行
##7.16 如果只想让某个用户使用某个变量如何做?
- 将变量声明在对应用的家目录的 .bashrc 文件内
END