Linux指令

useradd 添加用户

  • 添加用户
    • -d 添加用户路径
    • -e 制定密码有效时间
    • -G -g 指定用户所属组
    • -c 指定一段用户描述
    • -s Shell文件指定用户的登录Shell
    • -u 指定用户的用户号 如果同时有-o选项 可以重复使用别人的用户号

usermod 修改账号

  • 修改账号
    • 与useradd有同样的配置

userdel 删除用户

  • 删除用户

passwd 修改密码

  • 修改用户密码
    • -l 锁定口令,即禁用账号
    • -u 口令解锁
    • -d 账号无口令
    • -f 强迫用户下次登陆时修改口令

groupadd 添加用户组

  • 添加一个组

    • -g 指定一个新用户组的组织标示号(GID)
    • -o 一般与-g同时使用,标示新用户组的GID可以与系统已有用户组的GID相同。
    groupadd -g 101 group2

groupdel 删除用户组

  • 删除用户组

groupmod 修改小组属性

  • 修改用户组的属性
    • -g 修改GID
    • -o 参考groupadd指令
    • -n 新用户组 将用户组的名字改为这个

newgrp 切换小组

  • 当用户属于多个小组时可以通过这个指令进行切换

su 切换用户

  • 切换用户

exit 退出连接

  • 退出连接(ssh连接,screen)

touch 新建文件

  • 新建一个文件

mkdir 新建文件夹

  • 新建一个文件夹

ls 显示当前目录

  • 显示当前目录
    • -l显示当前目录的详细信息等同于ll

pwd 显示当前位置

  • 当前位置的定位如
/home/demo

cd 位置移动

mv 文件移动/重命名

  • 文件移动
mv 文件名 文件夹名
  • 文件重命名
mv 文件名 新的文件名

cp 复制

  • 复制文件

df 检查磁盘空间占用

  • 检查文件系统的磁盘空间占用情况。
    • -a 列出所有的文件系统,包括/proc等文件系统
    • -k 以KBytes的熔炼显示各文件系统
    • -m 以MBytes的容量显示各文件系统
    • -h 以 GBytes,Mbytes,Kbytes等格式显示
    • -H 以1M=1000k取代1M=1024k的进位方式
    • -T 显示文件系统类型
    • -i 不用自盘容量,而以inode的数量来显示
df [指令] [目录或文件名]

du 查看磁盘使用空间

  • du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看
    • -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
    • -h :以人们较易读的容量格式 (G/M) 显示;
    • -s :列出总量而已,而不列出每个各别的目录占用容量;
    • -S :不包括子目录下的总计,与 -s 有点差别。
    • -k :以 KBytes 列出容量显示;
    • -m :以 MBytes 列出容量显示;

fdisk 磁盘分区

  • 是Linux的磁盘分区表操作工具
    • -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
fdisk [-l] 装置名称

mkfs 磁盘格式化

  • 分区完成后要进行磁盘的格式化

    • -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
    mkfs [-t 文件系统格式] 装置文件名

fsck 磁盘检验

  • 用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

    • -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
    • -s : 依序一个一个地执行 fsck 的指令来检查
    • -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
    • -C : 显示完整的检查进度
    • -d : 打印出 e2fsck 的 debug 结果
    • -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
    • -R : 同时有 -A 条件时,省略 / 不检查
    • -V : 详细显示模式
    • -a : 如果检查有错则自动修复
    • -r : 如果检查有错则由使用者回答是否修复
    • -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
    fsck [-t 文件系统] [-ACay] 装置名称

mount 磁盘挂载

  • umount磁盘卸载
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n]  装置文件名  挂载点

hostnamectl 修改服务器名字

  • 修改服务器的名字
hostnamectl set-hostname <hostname>

shutdown 关机指令

  • 关机指令
    • -h 10 "10 mins shutdown" 提示信息十分钟后关机
    • -h now 现在关机
    • -h 20:25 今天20:25关机
    • -h +10 十分钟后关机
    • -r now 立刻重启

reboot 系统重启

  • 系统重启

halt 关闭系统

  • 关闭系统

sync 数据写入磁盘

  • 将数据同步到硬盘中
  • 关闭机器前要执行该指令

rm 删除文件

  • 删除文件
    • 删除文件夹需要加-r
    • 强制删除加-rf

rmdir 删除文件夹

  • 删除空白文件夹

chmod 改变文件权限

  • 改变文件权限
    • w 可写
    • r 可续
    • x 可执行
chmod 777 文件名 #给与所有人该文件的可读可写可执行权限

chown 改变文件所属

  • 改变文件所属
chown [-cfhvR] [--help] [--version] user[:group] file...
  • user 新的文件拥有者
  • group 新的文件拥有者使用者组
  • -c 显示更改的部分信息
  • -f 忽略错误信息
  • -h 修复符号链接
  • -v 显示详细的处理信息
  • -R 处理指定目录以及其子目录下的所有文件

cat 查看文件内容

  • 查看文件内容

head 从文件头部开始获取

  • 从头部开始获取文件
head -5 #获取前5行数据

tail 从文件尾部开始获取

  • 从尾部开始获取文件
tail -5 #获取后5行数据

sort 排序

  • 排序

    • sort -k1 #对第一列进行排序
    • sort -k1 -n #对第一列按数字进行排列
    • sort -k1 -r #降序排列

uniq 去除重复

  • 去除重复数据

grep 匹配

  • 抽出所匹配的数据

top 资源管理器

  • 查看当前系统的运行情况(cpu、内存、负载等)

ps 程序运行查看

  • 查看当前运行的程序情况
    • -ef查看更全面的运行信息

wall 全局发送广播

  • 服务器全局发送信息

write 单体发送信息

  • 单体发送信息
write root pts/1

kill 杀死进程

  • 杀死相关进程
kill pid  #pid可以通过ps或者top进行查看

pkill 进程终止命令

  • -kill 结束进程
    • -t 关闭远程连接

scp 远程拷贝文件

  • 远程拷贝文件
scp **.**.**.**:/**.txt ./

SMART指令

toh

  • 行转列
    • -n 转成多少行
    • -k 加主键
    • -l 把数据用l指定的连接起来
toh -n -k -l

tov

  • 列转行
    • -n 转成多少列
    • -k 以指定列作为主键进行排列
tov -n -k [FILE]

selcol

  • -c 获取文件第几行数据

delcol

  • -c 删除文件第几行数据

rowc

  • 获取文件的行数

colc

  • 获取文件的列数

ssort

  • -k 对第k行进行排序

fmtfixed

  • 数据格式化
    • -w格式化长度
    • -c格式化哪一列
fmtfixed -w<N> -cCOL1[,COL2]...[FILE]

sumup

  • 求和
    • -n
    • -k
    • -c

subtotal

  • -s -c s代表这一列是在求和的部分被隐藏,c代表求和的一列
    • -k 代表取出一列与s列进行比较

total

  • 对数据进行求和
    • -s 忽略的数据
    • -c求和的数据

kcount

  • -k 查看第k列的数据出现次数

hsum

  • -c 对被c选中的数据进行求和
    • -v 反选被c选中的

insseq

  • 给已有数据加上行号
    • -k 标记给多少行加行号

insrank

  • 数据相同的加同样的行号
    • -k 列
    • -c 行

addup

  • 累加计算
    • -k
    • -c

insratio

  • -k -c 计算数据出现的频率
    • -s 计算频率的小数位数[15位以下]
commano master tran #命令的使用方式
  • 要求(master)
    • 排好序的
    • 唯一的
    • 从第一个字段开始的
  • 要求(tran)不带h开头的
    • 排好序的
  • 要求(tran)带h开头的
    • 无需排好序
    • master文件尽量要小(因为要存放至内存中使用)

ejoin

  • 抽出tran中在master中存在的数据
    • -a 把不符合要求的数据作为错误数据输出 2> 文件名 可以输出出来
ejoin -v -k MASTER #v是反选 k是选中比较的列

ijoin

  • 抽出匹配的字段,同时会把master中后续字段连接到tran的后续字段中去
ijoin -k MASTER

rjoin

  • 对数据进行连接 把MATER中匹配的数据填写到tran中去
    • -i 对master中不存在的字段进行补足时符号的指定
rjoin -kCOL1[,COL2] RIGHT[LEFT]

hejoin

hijoin

hrjoin

  • 用法与不带h的指令相同只是要求不太一样

crossjoin

  • 什么都不加就是把master中的每一条数据都添加tran数据(这个命令的master数据不唯一)
    • -k 对主键进行连接
    • -a 把不符合的数据通过error输出
crossjoin -a -kCOL1[,COL2] LEFT[RIGHT]

ojoin

  • 全连接可以连接多个文件k字段全部保留 右边的文件会依次放在左边的文件后面
    • -i 对其他文件中中不存在的字段进行补足时符号的指定
    • -k key对主键指定
    • 当文件中的主键重复时按不同数据来计算(最好主键不重复)
ojoin -i<String> -k[,COL] FILE...

fstrow

  • -k 输出第一行符合k的数据 (重复的数据中取出第一个)需要排好序

lstrow

  • -k 输出最后一行符合k的数据 需要排好序

shiftrow

  • 把key的下一行放在当前行的后面(重复数据整合)需要排好序
shiftrow -k1[,COL][FILE]

row2col

  • 行列转换
row2col [FILE]

stail

  • 删除文件的数据(行)
stail -n [FILE]

pivot

  • 把重复数据进行排列 要排好序
pivot -k1 [FILE]
1 name test
1 name2 test1
2 sex test2
2 sex2 test3

会变成

* name name2 sex sex2
1 test test1 0 0
2 0 0 test2 test3

unpivot

  • 上面表的逻辑倒过来

fsplit

  • 对文件进行分割
    • -a 追记要是我写的文件名字已存在就把数据追加到改文件的最后
    • -z 会把文件以gzip的压缩形式保存 **.gz
    • -d 会把文件中按key分割的key给删除不再显示
fsplit [-a] NEWPATH [FILE] #fsplit ./%1/%2 data1    ps:%1%2代表第一列和第二列

sdate

  • SMART版的date命令 对日期进行处理

    • -d 显示某年的第几周
    sdate -d 201903w #显示2019年的第三个周 
    • -w 显示对应日期是该年的第几个周
    sdate -w 20190327d #显示03月27日是第几周
    • -y 显示日期 是星期几
    sdate -y 20190327d
    • -e 显示指定日期之间的日期打印
    sdate -e 20190101d 20190327d
    sdate 20190327/+1 #计算3月27日的第二天
    • -lwd 计算上一年的今天(比如特别的节日)是哪一天
    • thisyobi

Shell

:set numble

  • 给shell加行号

ERROR_EXIT

  • 错误退出

${变量名} / $变量名

  • 代表变量,获取变量的值

${数组名[*]}

  • 获取数组长度

while循环

while [ $iRoot -lt $lenRoot ] ; do
中间处理
let iRoot++ ##别忘记改变判断数据
done

if判断

if [ 条件式 ] ; then
处理A
else
处理B

fi

for循环

for 变数名 in 引数① 引数② ... ; do
for((i=1;i<10;i++)) do<---双括号
相关操作
done
  • continue 跳出本次循环
  • break 结束循环

find

  • 查找文件
find . -tpe f -name "*.DISPLAY"     #查找文件后缀名为DISPLAY的文件

变量

  • $0 当前脚本的文件名
  • $n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1。
  • $# 传递给脚本或函数的参数个数。
  • $* 传递给脚本或函数的所有参数
  • $@ 传递给脚本或函数的所有参数。
  • $? 上个命令的退出状态或函数的返回值.
  • $$ 当前Shell进程ID。对于Shell脚本,就是这些脚本所在的进程ID。

变量名 = ${指令}

  • 将指令处理的结果赋给变量

test

  • 文件比较运算符
    • -e filename 如果filename存在则为真
    • -d filename 如果filename为目录则为真
    • -f filename如果filename为常规文件则为真
    • -L filename如果filename为符号链接则为真
    • -r filename 如果filename可读则为真
    • -w filename 如果filename可写则为真
    • -x filename 如果filename可执行则为真
    • filename1 -nt filename2 如果filename1比filename2新则为真
    • filename1 -ot filename2如果filename1比filename2旧则为真
  • 字符串比较符
    • -z string 如果string 长度为零则为真
    • -n string 如果string 长度非零则为真
    • string1 = string2 如果string1和string2相同则为真
    • string1 != string2 如果string1和string2不相同则为真
  • 算数比较运算符
    • num1 -eq num2 等于
    • num1 -ne num2 不等于
    • num1 -lt num2 小于
    • num1-le num2小于或等于
    • num1 -gt num2 大于
    • num1 -ge num2大于或等于

连接符

  • && 且 AND
  • || 或 OR
  • 两端要加空格
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄