Linux核心命令及案例
2024-11-01 08:36:09 0 举报
AI智能生成
常规Linux命令以及使用案例
作者其他创作
大纲/内容
Linux核心命令及案例
例:grep '^my' a.txt #过滤以my开头的行
以XXX开头的行
^
例:grep '8$' a.txt #过滤出以数字8结尾的行
以XXX结尾的行
$
例:grep -n '^$' a.txt #过滤出文件中的空行并显示行号
空行
^$
例:grep '.' a.txt #过滤任意一个字符
任意一个字符
.(点)
例:grep '\\.$' a.txt #过滤出文件中以.结尾的行
\\
例:grep -o '0*' a.txt #过滤出连续出现的0
前一个字符,连续出现(重复)了0次或0次以上
*
例:grep '^.*http' a.txt #过滤出文件以任何字符开头一直到http的行
.*
例:grep '[8.!]$' a.txt #过滤出以8或.或!结尾的行
[ ]
例:grep '[^a-z]' a.txt #不匹配文件中的小写字母
[^abc] 过滤出不是a或不是b或不是c的内容. 一个整体相当于是1个字符
[^ ]
例:egrep 'oldboy|blog' a.txt #取出文件中包含oldboy或blog的行
或者
|
例:egrep -o '[0-9]+' a.txt #取出文件中连续出现的数字
+
例:egrep 'oldb[oe]y' a.txt #过滤出oldboy或oldbey的行
( )
例:egrep '0{3}' a.txt
o{n} 前一个字符o连续出现n次
{ }
例:egrep 'go?d' wenhao.txt
前一个字符出现0次或1次
?
正则表达式
查找文件
例:find /oldboy -type f -name '*.txt' #在/oldboy目录中查找以.txt结尾的文件
指定类型
-type
例:find /etc/ -type f -name 'hostname' #在/etc目录中查找文件名为hostname文件
指定名称
-name
例:find /etc/ -type f -name '*.conf' -size +20k #在/etc下查找文件,找出以.conf结尾,且大小大于20k的文件
指定大小
-size
例:find /etc/ -mtime +7 #查找/etc 目录下修改时间是7天之前的文件
根据修改时间
-mtime
例:find /etc/ -type f -iname ".conf" #查找/etc目录下以.conf结尾的文件且不区分大小写
忽略文件名字的大小写
-iname
例:find /etc/ -maxdepth 1 -type f -name "*.conf" #找出/etc 目录下,第1层中以.conf结尾的文件
最大深度
-maxdepth
指定用户查找
-user
指定用户组查找
-group
例:ls -lh `find -type f -name '*.txt'` #找出当前目录中以.txt结尾的文件并显示详细的信息
例:find /oldboy/find -type f -name '*.txt' |xargs ls -lh #找出/oldboy/find目录下以.txt结尾的文件并显示详细的信息
例:find /oldboy/find -type f -name '*.txt' -exec ls -lh {} \\; #找出/oldboy/find目录下以.txt结尾的文件并显示详细信息
例:cp $( find /oldboy/find/ -type f -name '*.txt' ) /tmp #找出/oldboy/find目录中以.txt结尾的文件,复制到/tmp目录下
例:find /oldboy/find/ -type f -name '*.txt' |xargs cp {} /tmp/ #找出/oldboy/find目录中以.txt结尾的文件,复制到/tmp目录下
例:find /oldboy/find/ -type f -name '*.txt' -exec cp {} /tmp \\; #找出/oldboy/find目录中以.txt结尾的文件,复制到/tmp目录下
find与cp/mv
例:tar zcf /tmp/find-fan.tar.gz `find /oldboy/find/ -type f -name '*.txt'` #找出/oldboy/find目录中以.txt结尾的文件,打包压缩存放在/tmp/find.tar.gz
例:find /oldboy/find/ -type f -name '*.txt' |xargs tar zcf /tmp/find-xargs.tar.gz #找出/oldboy/find目录中以.txt结尾的文件,打包压缩存放在/tmp/find.tar.gz
例:find /oldboy/find/ -type f -name '*.txt' -exec tar zcf /tmp/find-exec.tar.gz {} \\; #找出/oldboy/find目录中以.txt结尾的文件,打包压缩存放在/tmp/find.tar.gz
find与tar
案例
!取反
-a
-o
对匹配的文件执行该参数所给出的shell命令
-exec
find
过滤
例:grep -n 'root' /etc/passwd #从passwd文件中过滤出root并显示行号
行号
-n
例:grep -v 'bash' /etc/passwd/ #排除/etc/passwd文件中包含bash的行
排除,取反
-v
例:grep -i 'a' a.txt #过滤出a.txt文件中的a,且不区分大小写
忽略大小写
-i
显示grep过滤的内容及下面几行内容
-A
显示grep过滤的内容及上面几行内容
-B
显示grep过滤的内容及下面几行内容 上面几行内容
-C
extend 扩展的grep,即egrep
-E
grep/egrep
字符流编辑器
例: sed -n '2p' sed.txt #取出sed.txt文件的第2行
取行
-p
例:sed -n '/oldboy/p' sed.txt #查找sed.txt文件中包含oldboy的行(类似于grep)
例:sed -rn '/oldboy|lidao/p' sed.txt #过滤出文件中包含oldboy或lidao的行
例:sed '3d' sed.txt #删除文件的第3行
例:sed -r '/oldboy|lidao/d' sed.txt #删除oldboy或lidao的行
例:sed -r '/^$|^#/d' sshd_config #去掉/etc/ssh/sshd.config文件中的空行或注释行
删除
d
例:sed 's#oldboy#oldgir#g' sed.txt #把sed.txt文件中oldboy替换为oldgirl
替换
s###g
例: ip a s ens33 |sed -n '3p' | sed -r 's#^.*et (.*)/.*$#\\1#g' #通过反向引用取出ens33 网卡的IP地址
分组(后向引用,反向引用)
sed
取行或取列
指定分隔符
-F
整行
$0
第1列,第2列,第3列
$1 $2 $3
例:awk 'NR>=2 && NR<=5' /etc/passwd #取出/etc/passwd文件第2行到第5行内容
NR
最后一列
$NF
倒数第二列
$(NF-1)
取出第一行
'NR==1'
取出第一列
{print $1}
END{}内容会在awk读取文件之后执行
END{ }
例:awk -F 'inet |/24' '{print $2}' ip.txt #取出ip.txt文件中ip(10.0.0.200)地址
例: awk -F '[ /]+' '{print $3}' ip.txt #取出ip.txt文件中ip(10.0.0.200)地址
例:awk -F'=' 'NR==16 {print $2}' /etc/sysconfig/network-scripts/ifcfg-ens33 #以"="为分隔符,过滤出ens33网卡配置文件中的ip地址
例:awk '{i++} END{print i}' /etc/passwd #统计/etc/passwd的行数
案例素材02:cat >/opt/liu.log<<EOF>150.5>10>100>200>300EOF
分支主题
例:awk '{sum=sum+$1} END{print sum}' liu.log #统计liu.log中一共用了多少流量
awk
文件处理四剑客
案例素材
显示CPU信息
lscpu
显示或临时设置主机名
显示主机所有网卡IP
-I(大写的i)
hostname
修改或查看主机名
例:hostnamectl set-hostname oldboy #修改主机名为oldboy
hostnamectl
管理Linux系统服务
#停止/启动/重启/查看 网卡服务
例:systemctl stop/start/restart/status network
关机
systemctl halt
systemctl poweroff
重启
systemctl reboot
查看所有服务开机自启动
systemctl list-units
查看所有服务运行情况
systemctl list-unit-files
开机自启动/不启动
systemctl enable/disable crond
systemctl
例:rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
安装
rpm -ivh
例:rpm -Uvh zabbix-agent-5.0.21-1.el7.x86_64.rpm
升级
rpm -Uvh
例:rpm -qa |grep tree
查询系统中所有安装的软件包
rpm -qa
例:rpm -ql tree
显示包中的所有文件
rpm -ql
查询
例:rpm -e tree
rpm -e
例: rpm -ivh --nodeps zabbix-agent-6.0.0-1.el7.x86_64.rpm
rpm --nodeps忽略依赖
rpm
自动化RPM包管理工具
yum localinstall
例:yum install -y tree wget lrzsz vim......
install
查询命令属于的软件包
例:yum list | grep xxx
例:yum provides xxx
例:yum search all xxx
例:yum update xxx
例:yum upgrade xxx
例:yum remove xxx极其危险
删除软件包以及依赖包
yum clean all
清理缓存
yum makecache
创建缓存
/etc/yum.conf
yum命令配置文件
/etc/yum.repo.d/xxxx.repo
yum源配置文件
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc httpd-tools bind-utils nethogs expect
安装常用工具
yum
安装包管理工具
apt
用来安装、创建和管理软件包的工具
dpkg
命令行科学计算器
bc
显示系统内核信息
内核版本
-r
查看主机名
查看所有
uname
系统管理命令
Debian 和Ubuntu 中使用的工具
查看磁盘使用情况
以人类可读形式展示大小
-h
显示inode 使用情况
显示文件系统的类型
-T
df
显示目录所占空间
查看指定文件或目录的总大小,以"K"、"M"、或"G"等形式显示
-sh
显示目录总大小
-s
以 Kb、Mb 、Gb 等易读的单位显示大小
du
显示磁盘信息
lsblk
显示磁盘分区信息
blkid
实时查看磁盘性能情况
只显示进行读写的进程
iotop
mbr分区工具,适用于2TB以下磁盘分区
#当前磁盘分区情况
p
#创建磁盘分区
n
#保存退出
w
#退出不保存
q
#删除之前分区
d
fdisk /dev/sdb 进入硬盘sdb分区模式
fdisk
gpt分区工具,常用于2TB以上磁盘分区
#01 查看所有硬盘信息
parted -l
#02 进入磁盘中
#03 创建磁盘分区表
mktable gpt
#04 创建磁盘分区
mkpart primary 0 10
#05 删除分区
rm 6
#06 退出
q (quit)
parted /dev/sdb 进入硬盘sdb分区模式
parted
gpt分区工具,常用于2TB以上磁盘分区(与fdisk操作一致)
gdisk
1、磁盘分区工具
创建文件系统(格式化)
例: mkfs.xfs /dev/sdb1 #格式化/dev/sdb1盘
-t xfs
mkfs
例:mount /dev/sdb1 /mnt #挂载sdb1盘到mnt目录中
挂载
指定文件系统类型
-t xfs
方法1:/etc/rc.local
方法2:修改/etc/fstab
永久挂载
mount
卸载
强制卸载
-lf
例:umount /mnt #卸载(分区)挂载点
umount
创建块(创建指定大小的文件)
例:dd if=/dev/zero of=/tmp/500mb bs=1M count=500
dd
测试磁盘各种性能指标
fio
对系统进行压力测试
stress
转换为swap分区格式,相当于mkfs格式化
mkswap
显示当前swap组成
加载swap
swapon
关闭swap
swapoff
dd if=/dev/zero of=/tmp/500mb bs=1M count=500
#01 dd创建500mb文件
mkswap /tmp/500mb
#02 500mb文件成为swap (创建文件系统)
01)chmod 600 /tmp/500mb
02)swapon /tmp/500mb
03)free -h
#03 激活swap(让他加入到系统中) (挂载)
01) 方法01 /etc/rc.local
02) 方法02 /etc/fstab
#04 永久生效
swapoff /tmp/500m
#05 关闭swap
案例1 通过dd创建swap步骤:
#01 fdisk/parted 进行分区
#02 mkswap /dev/sdb1
#03 free -h
04# swapon /dev/sdb1
05# free -h
06# swapon -s
案例2 通过创建磁盘分区创建swap步骤:
swap相关
磁盘管理命令
3、挂载与卸载
2、格式化
测试磁盘性能
查看进程
例:ps -ef |grep crond #检查系统进程状态与信息(crond)
简易查看进程,过滤进程的命令
-ef
例:ps aux |grep Z #检查僵尸进程
显示所有进程的用户信息
aux
显示指定相关信息
axo
--no-header
例:ps aux |sort -rnk4 |head -5 #取出所有进程中内存使用率最高的前5
--sort 内容
ps
实时显示系统中各个进程的资源占用状况
刷新时间 例: top -d 3
-d
例:top -p 1046 #查看1046进程信息
查看指定pid信息
例:top -b -n1 -p xxx(pid号)
批量处理模式,top显示结果输出到文件
-b
批量处理模式,显示几次
例: top -Hp xxx(pid号)
显示线程信息
-H
显示每个CPU核心数详情
1
CPU使用率从高到底排序
P
内存使用率从高到底排序
M
退出
快捷键
top
一个互动的进程查看器,可以动态观察系统进程状况
htop
显示进程状态树
显示进程及pid信息
pstree
查找匹配条件的进程pid
例:ps -ef | grep xxx
pgrep
查询进程的pid
pidof
终止进程
终端挂断
-1
强制终止
-9
终止
-15
kill
通过进程名终止进程
killall
pkill
输出当前运行级别(Centos)
runlevel
初始化Linux进程,切换运行级别
init
管理系统服务
推荐使用:systemctl
service
显示各个可用CPU的状态
mpstat
查看磁盘性能指标
iostat
pidstat是sysstat工具的一个命令,用于监控全部或指定进程的cpu、内存、线程、设备IO等系统资源的占用情况
pidstat
显示虚拟内存状态
vmstat
stat大礼包
显示内存的使用情况
以MB为单位显示内存使用情况
-m
free
定时任务配置文件:/var/spool/cron/
例:crontab -l
查看定时任务列表
-l
例:crontab -e
编辑定时任务列表
-e
查看特定用户user的定时任务
-u user
*号,表示任意时间都,实际就是“每”的意思
*
减号,表示分隔符,表示一个时间范围,区间段
-
逗号,表示分隔时段的意思
n代表数字,即"每隔n单位时间"
/n
定时任务书写中特殊字符含义
分 时 日 月 周
* * * * *
定向到空(&>/dev/null)或追加到文件
cron定时任务
进程管理命令
杀手三人组
主要应用于Centos6
查看网络信息
查看ip地址
ip a (ip address)
查看系统路由表
ip r (ip route)
查看某一个网卡信息
ip a(address) s(show) eth0
ip
例:yum install -y net-tools
ifconfig
测试主机之间网络连通性
ping
路由追踪命令
例:tracert -d www.baidu.com
tracert/traceroute
命令行下载工具
-O
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
配置yum源(阿里源)
wget
curl
命令访问网站
检查端口
例:telnet 10.0.0.200 12306 #windows通过本地shell 连接12306端口
telnet ip port
telnet
例:nc -kl 12306 #创建12306端口
保持用户断开后还继续监听
-k
指定监听某个端口
例:nc -lu 12306 #创建 udp 12306端口
使用udp协议
-u
nc ip port
nc
网络扫描命令
例:nmap -p22 10.0.0.200 #扫描IP地址10.0.0.200的22端口
指定端口
使用频率最高的扫描选项:nmap -sS 10.0.0.0/24
nmap
显示所有被打开的文件
检查未被彻底删除的文件
例:lsof | grep delete
例:lsof -i:22
检查端口是否开启
例:lsof -ni :22
不要把ip解析域名
例:lsof -nPi :22
不要把端口解析服务名
-P
lsof
查看网络状态
例:ss -lntup |grep 12306 #过滤出12306端口
端口
ss -lntup
例:netstat -ant #检查tcp连接状态
连接
ss -ant
ss/netstat
例:dig +trace
查找DNS解析过程
dig
例:host jd.com #解析京东DNS
查询DNS的命令
host
交互式查询互联网DNS服务器的命令
nslookup
DNS解析
显示和设置Linux系统的网关、路由
例:route -n #查询当前系统配置的路由信息
例:ip route #查询当前系统配置的网关信息
add 添加
del 删除
-n 查看网关 等同netstat -rn或ip route
-host主机路由 -net网络路由 默认网关default gw
route
监控网卡的实时流量
-N
显示端口
指定网卡
iftop
用来按进程或程序实时统计网络带宽使用率
监视所有网卡
修改单位
m
按流量排序
r
按发送流量排序
s
退出命令提示符
nethogs快捷键
流量带宽
查看网卡信息
# nmcli connection
# nmcli con show
显示具体的网络接口信息
# nmcli connection show eth0
# nmcli c show eth0
显示所有设配状态 # nmcli device status
网络接口停用:# nmcli c down eth0
网络接口启用:# nmcli c up eth0
nmcli #管理NetworkManager命令工具
启动网卡
例:ifup eth0 #启动eth0网卡设备
ifup
关闭网卡
例:ifdown eth0 #停止eth0网卡设备
ifdown
网络管理
systemctl status firewalld
firewall-cmd --state
查看防火墙状态命令
临时性关闭(重启后失效)
systemctl stop firewalld
永久性关闭(重启后生效)
systemctl disable firewalld
临时性开启(重启后失效)
systemctl start firewalld
永久性开启(重启后生效)
systemctl enable firewalld
显示状态
查看所有打开的端口
firewall-cmd --zone=public --list-ports
更新防火墙规则
firewall-cmd --reload
查看版本
firewall-cmd --version
拒绝所有包
firewall-cmd --panic-on
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
添加
重新载入
firewall-cmd --zone= public --query-port=80/tcp
查看
firewall-cmd --zone= public --remove-port=80/tcp --permanent
配置firewalld-cmd
防火墙命令
查看SELinux安全模块状态
getenforce
setenforce 0
临时关闭(不用重启系统,重启后失效)
setenforce 1
临时开启(不用重启系统,重启后失效)
改配置文件:vi /etc/selinux/config 修改:SELINUX=disabled
永久关闭SELinux(必须重启系统才能生效)
关闭SELinux
安全模块SELinux
用于重启或关闭
关机 shutdown -h now
重启 shutdown -r now
取消 shutdown -c
-c
shutdown
halt
关闭电源
poweroff
reboot
重启,关机命令
man
命令--help
help
info
历史命令查询
清除所有
清除指定数字命令
history
超链接
cmd.oldboyedu.com
帮助查询命令
clear清屏,清除屏幕的内容
ctrl+l
把光标移动到行首
ctrl+a
end把光标移动到行尾
ctrl+e
把光标到行首的内容剪切(删除)
ctrl+u
cancel取消当前操作
ctrl+c
粘贴
ctrl+y
把光标到行尾的内容剪切(删除)
ctrl+k
锁定屏幕
ctrl+s
解锁
ctrl+q
暂停当前进程
ctrl+z
把任务放入后台
例:# 运行sleep命令,然后按下ctrl+z。sleep 60^Z[1]+ Stopped sleep 60# 使用bg命令使得作业在后台运行。bg %1# 返回信息:[1]+ sleep 60 &
bg
把任务拿回前台
例:# 运行sleep命令,然后按下ctrl+z。sleep 60^Z[1]+ Stopped sleep 60# 使用fg命令使得作业在前台运行。fg %1# 返回信息:sleep 60
fg
查看当前队列,含ID
在作业信息中额外的列出PID
只列出PID
只输出处于停止状态的作业
只输出处于运行状态的作业
jobs
Linux快捷键
进入指定目录中
回到家目录,~当前用户目录
cd ~
回到家目录
cd
进入当前目录的上级目录
cd ..
进入当前目录(一般不用,一般.(点)与复制移动联合使用)
cd .
进入上一次所在目录
cd -
创建目录
例:mkdir -p /a/b/c/d/e #创建多级目录
递归创建目录(创建多级目录)
mkdir
显示当前所在目录
pwd
例:ls -lrth #以人类可读形式,按照时间顺序逆序排列当前目录下的文件
查看/显示目录内容
long长格式(显示详细信息)
human-readable 人类可读形式展示大小
一般与-l一起使用
所有文件,包含隐藏文件
例:ls -ld /opt #查看opt目录详细信息,不看内容
显示目录本身信息,而不是显示目录内容(把目录当文件看待)
显示inode号码
time按照文件修改时间排序
-t
逆序排序,一般与-lrt一起使用
给每种类型的文件加上标记:目录/
ls
例:touch oldboy.txt #创建oldboy.txt文件
例:touch oldboy{1..10}.txt #创建oldboy1.txt-oldboy10.txt文件
创建文件(修改文件的时间戳)
touch
例:cp -a /etc/passwd /opt/passwd.txt #复制并修改名称,保持属性不变
复制
recursive递归复制,复制目录及目录内容
复制的时候属性不变
相当于-r -p -d -pdr
与复制符号连接(软连接,快捷方式)有关
cp
例:mv /etc/passwd /opt/oldboy.txt #移动并修改passwd文件名称为oldboy.txt
移动文件或改名
mv
输出信息到屏幕
例:echo {1..10}或echo {a..z} #输出1-10数字到屏幕或者输出a-z到屏幕
配合{}一起使用
例:echo oldboy #输出oldboy到屏幕
直接输出信息
echo
例:rm -rf /oldboy/* #强制删除oldboy目录下所有文件不提示
删除文件或目录
强制删除不提示
-f
递归删除目录
rm
显示文件头几行,默认显示10行
例:head -n 5 /etc/passwd #显示passwd文件的前5行
显示前多少行
-n数字
head
显示文件后几行,默认显示10行
例:tail -n 5 /etc/passwd #显示passwd文件的后5行
显示后多少行
例:tail -f /var/log/messages #实时查看日志文件messages的内容变化
显示文件的实时更新内容
tail
跟踪日志文件
tailf
按页查看文件内容
到达最后一行
G
g到达文件第1行
g(gg vi/vim)
向下翻页
f或空格
向上翻页
b
less
按页查看文件内容,到最后一行会退出(不支持快捷键)
more
统计文件行数、单词数或字节数
例:ls -l / | wc -l #统计根下第1级目录跟文件数量
显示行数(小写字母L)
word count/cal
wc
查询命令的绝对路径
which
查询命令的绝对路径,命令相关文件
whereis
比较两个文件的不同
例:diff /etc/sysconfig/network-scripts/ifcfg-ens33 /opt/ifcfg-ens33
diff
查询两个文件的区别(可视化比较工具)
例:vimdiff /etc/sysconfig/network-scripts/ifcfg-ens33 /opt/ifcfg-ens33
vimdiff
对内容进行排序
例:sort -n shun.txt #对shun.txt文件中的数字进行排序
按照数字进行排序
逆序排序
例:sort -rnk2 shun.txt #对shun.txt文件中第2列数字进行逆序排序
对某列进行排序
-k数字
sort
与相邻的行进行合并
一般与sort配合使用
去重并统计次数
uniq
把字符进行对齐显示
例:sort -rnk4 shun.txt |column -t #对shun.txt文件第4列的数字进行逆序排序并对齐
用tab键对齐
column
以。。。形式显示时间日期
例:date +%F 显示完整日期
年-月-日
%Y-%m-%d
%y年后两位
220101
%F
例:date +%T 显示时分秒
%T %H:%M:%S
一年中的第几周,周一作为一周的起始(00..53)
%W
一周中的一天(0..6),0代表星期天
%w
+
例:date -d '-2day' +%F #显示2天前的日期,按照年-月-日
根据描述显示指定日期时间
例:date -s '20231111 11:00:00' #修改系统时间为2021年11月11日11点
修改时间
date
自动同步时间
例:ntpdate ntp1.aliyun.com 自动同步阿里的时间服务器
ntp1.aliyun.com
time.nist.gov
time.windows.com
互联网时间服务器
ntpdate
生产数字序列
等宽数字位数相等,不足补零
-w
seq
把windows格式的文件转换为linux格式
dos2unix
查看文件内容
例:cat -n /etc/passwd #显示passwd文件行号及内容
显示行号
cat
将标准输入转换成命令行参数
分组
分为几组
-n 数字
xargs
改变文件的扩展属性
只能追加,不能删除
+/-a
不能修改、追加,不能删除
+/-i
chattr
例:lsattr /etc/passwd #查看/etc/passwd文件是否有特殊权限
查看文件扩展属性
lsattr
替换或删除字符
例:echo "HELLO WORLD" | tr 'A-Z' 'a-z' #将输入字符由大写转换为小写
1对1替换
例:tr -cd 'a-z' </dev/urandom | head -c 8
取反
-c
例:echo "hello 123 world 456" | tr -d '0-9' #删除字符数字0-9并输出到屏幕
tr
多重定向
例:ps -ef |tee info_a.log # 将进程信息通过管道输出到标准输出(终端)并覆盖写入到info_a.log文件中
例:ps -ef |tee -a info_a.log # 将进程信息通过管道输出到标准输出(终端)并追加写入到info_a.log文件中
追加到文件中
tee
别名
永久生效放文件:/etc/profile 里面生效
1、alias rm='echo 请不要使用rm命令' #配置alias别名
2、source /etc/profile #断开连接即生效
命令行配置: alias 别名='命令或脚本'
取消系统别名
unalias
alias
以树形结构显示目录下的内容
level 最多显示几层目录
-L
只显示目录
tree
文件和目录操作
different区别
查看文件(查看日志)
创建案例素材01: cat >/opt/shun.txt<<EOFoldboy 18 linux学院 20000oldgirl 22 linux学院 30000old1 7 linux学院 50000old2 7 linux学院 30300old3 7 linux学院 40400old4 7 linux学院 30100old5 8 linux学院 25000old6 8 linux学院 15000old6 8 linux学院 15000EOF
创建案例素材02:cat >/opt/ip.txt<<EOF192.168.3.1 00:0F:AF:81:19:1F192.168.3.2 00:0F:AF:85:6C:25192.168.3.3 00:0F:AF:85:70:42192.168.2.20 00:0F:AF:85:55:DE192.168.2.21 00:0F:AF:85:6C:09192.168.2.22 00:0F:AF:85:5C:41192.168.0.151 00:0F:AF:85:6C:F6192.168.2.20 00:0F:AF:85:55:DE192.168.0.153 00:0F:AF:85:70:03192.168.3.10 00:30:15:A2:3B:B6192.168.1.11 00:30:15:A3:23:B7192.168.3.12 00:30:15:A2:3A:A1EOF
搭配应用
时间
复制当前行
yy
剪切当前行,2dd:删除2行
撤销
u
:set nu
取消显示行号
:set nonu
临时取消高亮显示
:noh
插入
i
在当前行下面插入一个空行并进入编辑模式
o
在当前行上面插入一个空行并进入编辑模式
O
继续向上搜索
继续向下搜索
N
把光标移动到行尾
把光标移动到开头
0或者^
把光标移动到最后一行
G或者$
把光标移动到指定行
100gg或100
删除光标所在位置到行尾的内容并进入编辑模式
C(大写字母C)
快捷到达行尾并进入编辑模式
A
vim:编辑器
创建用户
指定用户id
指定用户登入后所使用的shell
例:useradd -s /sbin/nologin -M mysql #添加虚拟用户mysql(命令解释器/sbin/nologin 不创建家目录)
指定用户对应的用户组
-g
相当于-s/sbin/nologin -M
定义此用户为多个不同组的成员
-G
添加备注文字
不要创建用户的家目录
-M
useradd
修改用户信息
例:usermod -G '' oldboy #修改oldboy用户的组为初始组
例:usermod -G 'root' oldboy #添加oldboy用户到root组中
usermod
删除用户
例:userdel -r oldboy #删除oldboy用户及相关文件,家目录,邮箱等
删除用户的同时,删除用户的家目录
userdel
创建新的用户组
指定的gid
1、groupadd -g 888 mysqlv2 #-g指定gid
2、useradd -u 888 -g mysqlv2 mysqlv2 #-g指定用户组
例:如果直接添加的时候uid,gid不一致。那么需要先添加用户组,然后创建用户。
groupadd
例:groupdel oldboy #删除oldboy组
删除用户组
groupdel
修改用户密码
例:echo '123456' | passwd --stdin oldboy #非交互式设置oldboy账户密码为:123456
--stdin非交互式设置密码
passwd
批量修改用户密码
#先创建用户密码对应文件,格式为username:password,如abc:abc123,必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令: chpasswd < user.txt
chpasswd
生成随机密码(mkpasswd命令使用前需要安装expect包)
例:mkpasswd -l 20 #生成随机密码同时制定长度为20
-l 20
mkpasswd
切换用户
例:su - test #变更帐号为test并改变工作目录至test的家目录
su
编辑/etc/sudoers文件的专属命令
例:oldboy ALL=(ALL) ALL #授予oldboy用户所有命令
例:oldboy ALL=(ALL) NOPASSWD: ALL #授予oldboy用户所有命令并且不需要输入密码
visudo
以另外一个用户身份(默认是root用户)执行事先在sudoers文件允许的命令
查看获得的权限
sudo -l
sudo
id
谁登录了,在干什么(替代who)
显示目前登录系统的用户信息
who
显示当前登录系统的所有用户的用户列表
users
查看当前登录用户,相当于id -un命令
whoami
显示登录过的用户信息列表
last
查看最近登录过的用户报告
lastlog
用户管理及用户信息查询
例:file a.txt #查看a.txt文件类型
查看文件类型
file
例:stat a.txt #查看a.txt文件属性信息
用户查看文件属性信息
stat
软连接通过ln -s创建,硬链接是通过ln命令创建
创建软硬连接
例:ln -s /app/nginx-1.20.2/ /app/nginx #现在nginx软件是安装在/app/nginx-1.20.2目录中, 创建软连接 /app/nginx 指向/app/nginx-1.20.2
创建软连接
ln
改变文件或目录的用户和用户组
递归处理,将指定目录下的所有文件及子目录一并处理
-R
例:chown oldboy.oldboy oldboy.txt #修改oldboy.txt的用户所有者和用户所属组为oldboy
chown
改变文件或目录权限
例:chmod 755 oldboy.txt #把oldboy.txt文件权限修改为777
例:数字权限和字符权限 r 用4表示w 用2表示x 用1表示- 用0表示
对目录以及目录下的文件递归执行更改权限操作
例:chmod u+r oldboy.txt #oldboy.txt增加读的权限
拥有者权限
例:chmod g+w oldboy.txt #oldboy.txt增加写的权限
所属组权限
g
例:chmod o=x oldboy.txt #oldboy.txt增加执行的权限
其他人权限
chmod
用来变更文件或目录的所属群组
例:chown .oldboy oldboy.txt #修改oldboy.txt 的所属组为oldboy组
chgrp
显示或设置权限掩码
设置Linux默认权限
umask
文件属性与用户管理
打包备份、打包压缩
例:tar -zcvf etc.tar.gz /etc #打包压缩etc目录下文件,名称为etc.tar.gz
zcvf
zcf
创建压缩包
z 通过gzip工具进行压缩
c create 创建包
file指定压缩包
v 显示过程
说明
例:tar -tf etc.tar.gz #查看压缩包etc.tar.gz中含有哪些内容
tvf
tf
查看压缩包
例:tar -zxvf etc.tar.gz ./ #解压etc.tar.gz到当前目录下
zxvf
xf
解压
x 解压
例:tar -zxvf etc.tar.gz -C /opt #解压etc.tar.gz压缩包到指定目录opt下
解压到指定目录
排除
--exclude-from=
tar
解压或压缩文件
例:gzip oldboy.txt #压缩/oldboy.txt文件为oldboy.txt.gz
压缩
例:gzip -d oldboy.txt.gz #解压oldboy.txt.gz压缩包到当前目录下
解压,并删除源文件
gzip
例:zip -r etc.zip /etc/ #压缩etc目录名为etc.zip压缩包
压缩目录
zip -r
例:unzip etc.zip -d /opt/ #解压etc.zip压缩包到指定目录opt下
解压指定目录
unzip -d
例:unzip -t etc.zip #查看etc.zip压缩包内容
查看压缩包内容
unzip -t
zip/unzip
打包、压缩三剑客
当前目录上级目录
..
当前目录
.
生成序列
{a..z}
{1..10}
{ }
当前用户家目录
~
标准输出重定向(先清空,再写入)
>或1>
标准输出追加重定向(把内容写入文件结尾)
>>或1>>
管道符号(前一个命令的结果传递给后面的命令)
例: echo 'lidao $UID `whoami` {1..5}'
单引号
' '
例:echo "lidao $UID `whoami` {1..5}"
双引号
" "
反引号,优先执行引号里面的命令
应用:创建带时间,带IP文件,目录。(备份)
` `
$( )
所有
*.txt
*.log
2>
2>>
追加到oldboy.log中.
>> oldboy.log 2>&1
正确输出和错误输出 追加到oldboy.txt中
&>>oldboy.txt
特殊符号
收藏
收藏
0 条评论
下一页