1  如何保存linux历史命令并显示命令操作时间
      HISTTIMEFORMAT="%F %T"
2  basename命令:     取路径基名
3  dirname命令:      取路径名
4  stat命令:        查看文件状态
    Access最后访问时间(读取)
    Modify内容修改的时间
    Change状态修改时间(属性、权限)
4  help 内部命令列表
5  enable cmd         启用内部命令
6  enable –n cmd       禁用内部命令
7  enable –n          查看所有禁用的内部命令
8  hash          显示hash缓存
              –l 显示hash缓存
              –r 清除缓存
9  date          显示和设置系统时间 (+%F%T)
10 hwclock,clock: 显示硬件时钟
             -s, 以硬件时钟为准
             -w, 以系统时钟为准
11 显示日历:cal  (–y)


输入输出重定向
键盘     stdin     0     标准输入
显示器  stdout   1    标注输出
显示器  stderr   2     标准错误
/dev/null          黑洞、回收站
hexdump -C          转换16进制查看
set -C             禁止将内容覆盖,但可追加
set +C            允许覆盖
.>|             强制覆盖
.>              覆盖式输出
.>>              原有内容基础上追加内容
2>            错误输出
2>>            错误输出追加
&>              把所有输出重定向到文件
&>>              追加式输出所有
ls >>1 2>>2          正确命令输出到1文件 错误输出到2文
(命令1,命令2) >文件1   多个命令都写入文件1中


tr 转换和删除字符
              -s压缩
              -d删除
              -c取字符补集
              -t将第一字符替换为第二字符
例如
积累命令、用户、正则表达式_第1张图片
tr 'a-z' 'A-Z' < file1 将文件中小写字母都替换成大写字母
积累命令、用户、正则表达式_第2张图片
tr -d abc < file1 删除file1文件中的所有abc字母
积累命令、用户、正则表达式_第3张图片
使用文件代替键盘的输入
积累命令、用户、正则表达式_第4张图片
cat < file1 >> file2 读取file1内容追加到file2中
积累命令、用户、正则表达式_第5张图片


| 管道符
echo {1..100} | tr ' ' + | bc
seq 100 seq -s + 100 |bc

用户和组的配置文件
新建用户会默认生成
/etc/passwd            用户信息文件
/etc/shadow            影子文件
/etc/group              组信息文件
/etc/gshadow            组密码文件
/home/              用户家目录
/var/spool/mail            用户邮箱

  • useradd             用户创建命令
         -u 指定UID
         -o 配合-u使用,不检查UID的唯一性
         -g 指定所属组
         -c 用户的注释信息
         -d 指定家目录
         -s 指定默认shell程序
         -G 指定附加组
         -r 创建系统用户
         -m 创建家目录,用于系统用户
         -M 不创建家目录,用于非系统用户

vim /etc/default/useradd      创建用户的默认值设定
usermod              用户属性修改
        -u 新的UID
        -g 新的主组
        -G 新的附加组(配合-a使用,保留原有附加组)
        -s 新的默认SHELL
        -c 新的注释信息
        -L 临时锁定普通用户
        -U 解锁用户
userdel        -r 删除用户
id 查看用户相关的ID信息
         -u 显示UID
         -g 显示GID
         -G 显示附加组
su -         登录式切换用户       su 非登录式切换
passwd  设置密码
        -d 删除指定用户密码
        -l 锁定指定用户
        -u 解锁用户
        -e 强制用户下次登录修改密码
groupadd 创建组
         -g 指定GID
         -r 创建系统组
groupmod 修改组属性
         -n 新名字
         -g 新的GID
groupdel 删除组

cat       -E 显示行结束符$
         -A 显示所有控制符
         -s压缩连续的空行成一行
tac
rev             以字符为单位反序输出    cat /etc/passwd |rev
cut -d -f          抽取指定分隔符和第几个字段
paste file1 file2       合并两个文件
        -d指定分隔符,默认用TAB
        -所有行合成一行显示
wc   收集文本统计数据
        -l 只计数行数
        -w 只计数单词总数
        -c 只计数字节总数
sort   排序命令
        -t指定分隔符
        -k [n,m] 按照指定的字段范围排序
        -n以数值型进行排序
        -r反向排序
        -R随机排序
uniq  -c  统计出现的次数
   -d 取相同的
   -u 取各不相同的
diff -u file1 file2 > file3        比较两个文件然后运算出file3
patch file1 file3            使用patch通过file1和file3可以找回file2(但是找回的时候file2会覆盖file1,所以需要提前先把file1备份)
ss -nt               查看远程连接
grep 文本搜索工具
        --color=auto对匹配到的文本着色显示
        -v 显示不匹配到的行
        -i 忽略大小写
        -n 显示匹配的行号
        -c 统计匹配的行数
        -o 仅显示匹配到的字符串
        -E 使用扩展功能
        -e 使用多个选项间的逻辑关系
        -A 匹配的行加上后几行
        -B 匹配的行加上前几行
        -C 匹配的行加上前后各几行
        -w 匹配整个单词


基本正则表达式
. 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[:alnum:] : 字母和数字
[:alpha:] : 字母
[:digit:] : 数字
[:lower:] : 小写字母
[:upper:] : 大写字母
[:xdigit:] : 六进制字符
[:blank:] : 空格和制表符
[:space:] : 空白字符(水平加垂直比blank广泛)
[:print:] : 可打印的非空白字符
[:punct:] : 标点符号
[:graph:] : 可打印的非空白字符
匹配前面的字符任意次,包括0次(贪婪模式:尽可能长的匹配)
.
任意长度的任意字符
\? 匹配其前面的字符0或1次
\ +匹配其前面的字符至少1次
{n} 匹配前面的字符n次
{m,n} 匹配前面的字符至少m次至多n次
{,n} 匹配前面的字符至多n次
{n,} 匹配前面的字符至少n次
^ 行首锚定
$ 行尾锚定
^$ 空行
\<或\b词首锚定
\>或\b词尾锚定
\< word \> 匹配整个单词
() 分组