Linux58期命令总结-岳国霖
帮助相关
man 查看普通命令的帮助
例:man ls man+命令
help 查看内置命令的帮助
例:cat --halp
info 查看一个命令更多的信息
例:info cat
关机重启
shutdown 关机重启
-r reboot重启
reboot直接重启
shutdown -r 1 一分后重启
-h halt关机
halt关机
shutdown -h 1 一分后关机
halt 关机CPU停止工作
poweroff 关机断电
init 切换运行级别
init 0关机
init 6重启
reboot 重启
systemctl
reboot
systemctl reboot 系统重启
poweroff
sync 把数据写回磁盘,以buffer写回磁盘
目录相关
pwd 打印工作目录
当前所在路径
切换工作目录
-上一次所在目录
cd -
.当前目录
cd .
..上级目录
cd ..
~用户家目录
cd ~
tree 以树形结构显示目录或文件
-L level 指定层数
tree -L 2 指定看到第二层
-d 只显示目录
tree -d test 只看test下的目录
mkdir 创建目录
-p 递归创建目录
mkdir test{1..3} 创建多个目录
mkdir -p test1/test2 在1下面在建个2
ls - list directory contents
列表 目录 内容
-l long 长格式显示文件属性*
ll test.txt ll加文件或目录
-a 显示所有文件,含隐藏文件*
ls -a /查看根下所有文件
-d 只显示目录*
ls -d ~ 不显示文件
-i 显示inode节点*
ls -i oldgirl.txt 显示文件目录的inode
-h human 人类可读形式显示
ls -lhi l长格式详细 h是人类可读 i是inode
-p 目录结尾加斜线,区分目录和文件
ls -p / 目录后有/
-F 不同文件结尾加不同标识,目录结尾加斜线
ls -F / 目录后加各种标识
--color=auto 显示不同文件的颜色
ls --color /
--time-style显示修改时间的格式
3.5.9.1 long-iso 年月日时分
3.5.9.2 iso 月日时分
-r reverse反转排序
ls -r / 反转显示根下
-t 按修改时间排序
ls -t / 根下按时间排序
cp - copy files and directories
拷贝 文件 和 目录
-r 复制目录
cp -r /etc/opt ~ 把opt复制到家目录下
-p 保持文件或目录属性
cp -rp /etc/opt ~ 单用不能复制目录
-a 相当于dpr
cp -a /etc/opt ~ 文件目录所有属性复制到家目录
-i 是否覆盖确认 默认输出
rm 删除文件或目录
-f强制删除 不能删除目录
-r 递归删除
rm -r opt 删除opt
mv 移动文件或目录,或改名
mv /etc/11.txt ~ 把etc下的11.txt移动到家目录
文件内容
touch 创建文件或更新文件时间戳
touch 12.txt ~ 创建12.txt到家目录
vi/vim 文本编辑器
vim 11.txt 加文件名就可以编辑
echo - display a line of text
显示 文本中的一行
-n 不换行输出 指同一行
-e 支持转义字符输出??
printf 格式化打印字符串
cat 查看文件内容
-n 显示行号
cat -n 11.txt 显示行号针对文件
tac 按行上下翻转文件内容
tac /etc/11.txt 命令加位置
rev 左右按字符翻转行的内容
rev /etc/11.txt
more 分页查看文件内容
more 11.txt 按空格翻页
less 分页查看文件内容
-N 显示行号
less -n 11.txt 按q退出??
head - output the first part of files
输出 开头 部分 文件
-n 前n行,n可省
head -5 11.txt 显示前5行
tail - output the end part of files
-n 后n行,n可省略
tail -5 11.txt 后5行
-f 跟踪文件尾部的变化
tail -f 11.txt 最后一行追踪 ctrl+c停
tr - translate or delete characters
替换 或 删除 字符
??
chmod u=rwx,g=rwx,o=rwx 11.txt
cut 按列切割
-d 指定分隔符??
-f 指定哪列,多列可用逗号或者-??
-c 按字符取内容??
文件相关
file 查看文件类型
file /etc/opt 它可以是目录和文本
ln make links between files
创建 连接 在两个文件之间
-s soft创建软链接
ln 11.txt 11.txt.d 硬链接 原件前 复件后
ln -s 11.txt 11.txt.d 软链接
which 查命令所在的路径
which cat 查cat命令据路径
whereis查找命令、源码、帮助等路径
-b 查二进制命令
whereis -b cat=which cat 查cat命令据路径
locate 查找文件及帮助相关,从updatedb对应的数据库里查
locate /etc/sh 搜索etc目录下所有以sh开头的文件 且是全路径
find 查找目录下的文件find /etc查/etc目录下文件
-name 按文件名查找
find / -name 11 查找 /下名11的文件
-type 按类型查找
find /etc -type d 查找etc下目录 f是按文件
-exec 对查找的结果再处理??
自由主题
-mtime 按修改时间查找
find /etc -mtime -1 查找一天以内命令 +1查1天以前
-perm 查权限
find /opt -perm 755 查755权限的文件
xargs 从标准输入执行命令
-n 数字,几个东西在一组
cat /etc/11.txt |xargs -n3 多行内容的单输出且每行3个
-d 指定分隔符,不指定默认是空格
echo '11@22@33' | xargs -d '@' echo @分隔符=空格 输出为 11 22 33
-i 把{ }当做前面查找的结果??
stat 查看文件属性 stat 11.txt
-c 获取指定文件属性的一部分??
%A 显示字符权限??
用户管理
id 查看用户身份
id root
id 查看 单个查看当前 uid gid groud
-u 查看uid
-g 查看gid
whoami 查看当前用户
useradd 添加普通用户
useradd oldboy 创个oldboy普通用户
-s 指定登录的SHELL解释器
-c 添加用户说明
useradd gongli1 -c "beautify woman" -d /tmp -e '2020/10/20'
-d 指定家目录
-g 指定所属的组
useradd gongli2 -g oldboy 建个用户组是oldboy组
-M不创建家目录
-e 设定登录截止日期
useradd -D -s /bin/sh 相当于vim编辑/etc/default/useradd文件。
SHELL=/bin/sh 修改useradd默文件下的shell为/bin/sh
-u 指定uid多少
useradd bingbing -u 888 -s /sbin/nologin -M 建UID为888解释器为nologin,不建家目录
userdel oldboy 删除oldboy普通用户
-r 递归删除用户下面内容
usermod 修改用户属性
usermod -g jj gg 修改权限usermod -g jj gg jj是用户组gg是用户
echo 123456|passwd --stdin oldgirl
-u 指定uid多少
useradd bingbing -u 888 -s /sbin/nologin -M 建UID为888解释器为nologin,不建家目录
-s 指定登录的SHELL解释器
-M不创建家目录
-c 添加用户说明
useradd gongli1 -c "beautify woman" -d /tmp -e '2020/10/20'
-d 指定家目录
-g 指定所属的组
useradd gongli2 -g oldboy 建个用户组是oldboy组
-e 设定登录截止日期
passwd 给用户修改密码 单个直接改当前改密码
--stdin从标准输入接收密码
echo 123456|passwd --stdin oldboy
设置密码
chpasswd批量更新用户的密码命令
groupadd 添加用户组
-g 指定组id
例 groupadd -g 666 sa1 指定666为sa1用户组 id
groupadd oldboy 创个oldboy普通用户组
groupdel删除用户组
groupdel oldboy 删除oldboy普通用户组
chage查看和修改密码改变密码过期信息
-E 修改帐户过期时间
chage -E "2020/10/1" oldboy
-l 显示用户的密码信息
chage -l oldboy 查看它密码信息
w查看当前登录的所有用户
who 没有w多
last 登录的历史,看谁登录过
lastlog 查看最近谁登录过的用户报告
su 用户身份切换
- 携带环境变量登录 没有就不携带
-c 到指定目录下执行命令
su - oldboy -c pwd 到它下面查当前路径
sudo命令:可以以最小化的权限(单个命令),执行命令时拥有root用户的权限
-l 查看获得的权限,查已提权的命令
sudo -l
visudo 编辑sudo配置文件的命令
-c 检查配置文件语法
visudo -c 检查vim语法
其他相关
date 显示系统时间和日期 单个使用所有时间
-s 修改时间
date -s 20190302 设置不同日期
date -s 00:00:01 设置不同时间
date -s “00:00:01 20190302”一起设置
-d 指定过去或未来格式
date +%F 显示日期
date +%F "-1day"显示退一天 +1前一天
alias 查看或设置别名
alias cp='cp -i'设置cp别名
unalias 取消别名
unalias cp 临时取消别名
runlevel 查看运行级别 单个直接使用
init 切换运行级别
init0 关机
hostname 修改主机名 单个看主机名
hostname 11 把主机名改11重启生效
hostnamectl C7永久修改主机名
hostnamectl 11 把主机名改11重启生效永久的
getenforce 查看selinux状态 单个使用
setenforce 设置selinux状态
setenforce 1/0
md5sum给文件设置指纹(计算和检查MD5信息)
md5sum /etc/passwd 给passwd创建指纹
打包压缩
tar 打包压缩
-z 压缩
tar zvcf 11.txt.gz 11.txt 打包文件在前源文件在后
-c 创建
-v 输出打包过程
-f 文件
-t 查看文件
-C 指定解压的路径
tar zvxf 11.txt.gz -C /opt 解压到指opt下
-x 解压
-h 跟随软连接
--exclude 排除不打包的文件
tar zvcf 11.txt.gz 11.txt --exclude=路径位置中不要的文件 一般是一个目录
-X 从文件中排除不打包的文件
磁盘管理
df 查看文件系统
-i inode 信息
df -i
-h human以人类可读的形式查看block信息
df -h
fdisk 磁盘分区工具
fdisd /dev/sdb 开始给sdb分区
m查看分区
n 添加一个新分区
p 查看分区结果信息
q 退出不保存
d 册除一个分区
w保存并退出
t 调整分区类型
l 列表分区类型
dd 虚拟文件系统
修改分区dd if=/dev/sda of=/dev/sdc bs=512 count=10240
ls -l /dev/sdc 查看
file /dev/sdc 显示信息
if=/dev/sda
of=/dev/sdc生成文件系统
bs=512 block大小
count=10240 块个数
partprobe 将分区信息真正执行通知内核
partprobe /dev/sdb
parted GNU磁盘分区
parted /dev/sdb mklabel gpt #<==修改分区格式为gpt。中间是主分区名称
parted /dev/sdb mkpart primary 0 4800000 #<==创建一个4.8T主分区
parted /dev/sdb mkpart primary 4800001 5800001 #<==创建一个1T主分区
parted /dev/sdb mkpart primary 5800002 5804098 #<==创建一个4G主分区
mkfs 格式化(本质创建文件系统)
-t 指定类型-t ext4(mkfs)
mount 挂载文件系统
-t指定文件类型
mount -t ext4 /dev/sdb1 /mnt #挂载到/mnt
-a 可以将fstab挂载
-o 挂载选项
自由主题
umount 卸载文件系统
-lf 强制卸载
umount -lf /mnt
自由主题
blkid 查看块设备属性(UUID/FSTYPE)
dumpe2fs 查看ext文件系统细节
xgs_info查看 一堆文件信息细节
fsck 磁盘检查和修复(好的磁盘不操作)
-a修复磁盘,针对e2fck
free -m 查内存泄露
xfs_repair
三剑客
grep - print lines matching a pattern
打印 行 匹配 一个 模式/样式 搞过滤的
基本正则 grep
尖角号^用法为^oldboy 表示匹配以oldboy单词开头的行 字符也可以
grep "^my" oldgirl.txt grep后加个-n就能显示行号
美元符 用法为oldboy$ 表示匹配以oldboy单词结尾的行
grep "m$" oldgirl.txt
组合符^$ 用法为^$oldboy 表示空行 以^开头的行,以$结尾的行
grep "^$" oldgirl.txt显示空行 加-v取后
点号. 表示匹配任意一个有且只有一个字符(但不能匹配空行)
grep ".$" oldgirl.txt 点是任意结尾的字符
星号 * 重复前一个字符(连续出现)0次或1次以上
grep "0*" oldgirl.txt
.* 组合符 匹配所有内容包空行
grep ".*" oldgirl.txt 所有行都显示
^.*组合符 匹配以任意多个字符开头的内容
grep "^o.*" oldgirl.txt 以0开头所有的行
.*$组合符 以任意多个字符结尾的内容
grep ".*\m$" oldgirl.txt 所有以m结尾的行
[abc]或[a-z] 匹配[]集合内的任意一个字符a或b或c
grep "[a-z]" oldgirl.txt 显示a-z所有字符
[^abc] 匹配不包含^后的任意字符a或b或c,^表示对[abc]取反
grep "[^a-z]" oldgirl.txt 反取
转义符\ 让特殊含义字符脱马甲显原形 如 \. 点只表示小数点
grep "\." oldgirl.txt 原来点代表所有,现在只显示点
扩展正则 egrep=grep -E
+ 匹配前一个字符1次或1次以上
例 egrep "0+" oldboy.txt = 一个0以上选出来
过滤 "字符 匹配前一字符1次或1次以上都可 " 文件名
[:/]+ 匹配括号内的:或/字符1次或1次以上
例 egrep "[:/]+" oldboy.txt = :/选出来 中括号内 或的关系
过滤 "字符 匹配前一字符1次或1次以上都可 " 文件名
? 匹配前一个字符0次或1次
egrep "(ss)?" oldgirl.txt 就前面一个字符0次或1次
| 表示或者,即同时过滤多个字符串
例 egrep "oldboy|like" oldboy.txt =oldboy like选出来
过滤 "字符串 或者 字符串" 文件名
a{n,m} 匹配前面一个字符最少n次,最多m次
egrep "s{0,1}" oldgirl.txt
a{n,} 匹配前面一个字符最少n次
egrep "s{2,}" oldgirl.txt 这是2个ss起
a{n} 匹配前面一个字符正好n次
egrep "s{2,}" oldgirl.txt 这是2个s的
a{,m} 匹配前面一个字符最多m次
egrep "s{,2}" oldgirl.txt 这是最多2个ss
( ) 分组过滤被包括起来的东西表示一个整体,另()的内容 可以被后面的\n引用,n为数字,表示引用第几个()的内容
例 egrep -o "(0)(0)\1\2" oldboy.txt =0000显出来
过滤 只选 两内容引用1引用2 文件名 显示内容
\n 引用前面()里面的内容;如(aa)\1,匹配aaaa
--color=auto 过滤的内容加色
grep --color "无" /root/11.txt 过滤出有加色的 无
-v invert取反
grep -v "无" /root/11.txt 过滤有 无 的行
-i ignore(忽略)不区分大小写
grep -i "gj" /root/11.txt 过滤有“gi”字符串
-n number(数字)对输出的内容显示在源文件中的行号
grep -in "无" /root/11.txt 过滤有“无”并显示行号
-w word 按单词为单位过滤
grep -w "aaaa" /root/11.txt 只针对单词多个字符都不行
-o 只输出匹配的内容
grep -o "g" /root/11.txt 只显示有的 g
-E extend 扩展的grep,即egrep
-A after 显示过滤的字符串和它之后的多少行
grep -A5 "我好无a耻x" /root/11.txt 前5行
-B after 显示过滤的字符串和它之前的多少行
grep -B5 "我好无a耻x" /root/11.txt 后5行
-C context 显示过滤的字符串和它之前之后的多少行
grep -C5 "我好无a耻x" /root/11.txt 前后各5行
-P 用于过滤per|兼容正则表达式
sed Stream editor 流编辑器 搞行的
-n 取消命令的默认输出
sed -n '15,20p' /root/11.txt 输出15-20行
-i 直接修改文件内容,而不是输出到终端
sed -i '1a 帅气' 11.txt 1行后加帅气
sed -i '/耻/d' 11.txt 删除有 耻 的行
sed的内置命令字符说明
s 替换
sed "s#帅#豪#g" 11.txt 后的替换前面的
g 全局global
p 打印print
sed -n "/oldboy/p" oldgirl.txt 打印显示oldboy的行
d 删除delete
sed "/oldboy/d" oldgirl.txt 删除oldboy这行cat 看不到加-i可看
a 追加 append
sed -i "4a 2222" oldgirl.txt 4行后加2222
i 插入 insert
sed -i "4i 2222" oldgirl.txt 4行前加2222
awk 是一门命令操作也可以作为编程语言,处理字符串牛逼 搞列的
awk 参数 条件 文件
awk参数
-F 指定分隔符
awk -F ":" '{print $NF}' oldboy.txt 以:号为分隔符打印最后一列
$1 第一列
$2 第二列
$0 整行
$NF最后一列
$NF-1 倒数第二列
$NR 行号
1 awk -F ":" '{print $1}' oldboy.txt 以:号为分隔符打印第一列
2 awk -F ":" '{print $1}' oldboy.txt 以:号为分隔符打印第二列
3 awk -F ":" '{print $0}' oldboy.txt 以:号为分隔符打印整行
4 awk -F ":" '{print $NF}' oldboy.txt 以:号为分隔符打印最后一列
5 awk -F ":" '{print $0}' oldboy.txt 以:号为分隔符打印倒数第二列
6 awk 'NR>1&&NR<4' oldboy.txt取2-3行内容
文件属性
chmod更改文件目录权限 9个字符位置
chmod u=rwx,g=rwx,o=rwx 11.txt
-R递归修改
chown change owner 改变文件用户和用户组
-R 递归修改
例:chown oldboy test.txt
chgrp change grep 修改用户组
例:chown oldboy test.txt
网络服务命令
定时任务
crontab定时任务
-l list 列表定时任务*
crontab -l 查看当前用户定时任务
-e edit 编辑定时任务*
crontab -e 编辑当前用户定时任务
-u user 查看特定用户下定时任务??