网卡显示和临时配置
ifconfig eth0 192.168.0.105
#格式 mail [用户名]
mail root
连通测试
ping www.baidu.com
数据包到服务主机之间的路径
traceroute www.baidu.com
#netstat [选项]
#-t TCP
#-u UDP
#-l 监听
#-r 路由
#-n 端口
#查看tcp端口信息
netstat -tn
一个redhat系列Linux的网络配置工具
setup
.gz的压缩命令
#压缩(只能压文件,不保留源文件)
gzip /tmp/xxx.txt
#解压
gzip -d xxx.gz
解压.gz压缩包
#解压
gunzip xxx.gz
打包命令
#-c打包 -x解包 -v打包信息 -f指定文件名 -z压缩(或解压)
#压缩(会保留被压缩的目录)
tar -zcf myzip.tar.gz /tmp/mydir
#解压
tar -zxf myzip.tar.gz
压缩.zip文件
#压缩(-r递归,用于压缩目录)
zip -r myzip.zip /tmp/mydir
解压.zip文件
#解压
unzip myzip.zip
压缩.bz2文件
#压缩
bzip -k /tmp/text.txt
#解压
unbzip text.bz2
ls用于打印Linux文件。
#显示当前目录下文件
ls
#显示当前目录下文件,包括隐藏文件
ls -a
#显示指定目录下文件
ls /root
#显示详细文件信息(权限,引用数,所属用户,所属组,容量(字节),时间,文件名)
ls -l
#人性化显示,信息打印人性化
ls -h
#显示目录信息(目录属性),而非是目录下文件信息
ls -d
#显示文件名和其iNode(文件标识)
ls -i
#组合显示,(同时使用a和l的功能)
ls -la
#显示文件信息以及文件的安全上下文(selinux会用到)
ls -lz
用于目录创建
#创建一个目录
mkdir /tmp/mydir
#递归创建
mkdir -p /tmp/mydir/test
#同时创建
mkdir /tmp/mydir/test2 /tmp/mydir/test3
删除空目录
#删除空目录
rmdir /tmp/mydir/test
目录切换
#目录切换
cd /tmp
#回到上一级目录
cd ..
获取当前目录名称
#显示当前目录
pwd
复制文件或目录
#格式(注意:当目标目录不存在时,重命名)
cp [源目录或文件] [目标目录]
#复制文件
cp /etc/profile.conf /tmp
#复制目录(r代表递归)
cp -r /tmp/mydir /root
#复制文件,包含描述信息(时间等)(p代表preserve保留)
cp -p /etc/profile.conf /tmp
#剪切(当目标目录不存在时,重命名)
mv /tmp/mydir/test /root
#改名(同目录下移动==改名)
mv /tmp/mydir/test /tmp/mydir/xxx
删除文件或目录
#删除文件(有提示)
rm /tmp/mydir/text.txt
#删除文件(无提示)
rm -f /tmp/mydir/text.txt
#删除目录(无提示)
rm -rf /tmp/mydir
创建文件
#创建文件
touch /tmp/text.txt
#创建多个文件
touch text1.txt text2.txt
显示文件数据
#显示文件
cat text.txt
#显示指定行数
cat -n 100 text.txt
倒序显示文件数据
#显示文件
tac text.txt
分页显示文件数据
#显示文件(分页显示,f或者空格换页,回车换行,q推出)
more text.txt
分页显示文件数据
#显示文件(分页显示,f或者空格换页,回车换行浏览,q推出,↑往上换行浏览)
#支持单词搜索(/+搜索关键词,n查找下一个)
more text.txt
查看文件前若干行
#查看前100行
head -n 100 text.txt
查看文件后若干行
#查看前50行
tail -n 50 text.txt
#动态显示
tail -f text.txt
生成链接
#生成软链接
ln -s text.txt /tem/text.txt
#生成硬链接(硬链接等于cp -p +同步更新)(硬链接跟源文件拥有相同的iNode)(硬链接不能跨分区)
ln text.txt /tem/text.txt
#展示文件系统信息
#-a 显示所有信息
#-T 显示文件系统类型
#-h 使用习惯单位显示容量
df -a
#显示挂载点/下面的文件系统
df -hT /
#测试
root@ubuntu:/# df -hT /
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda5 ext4 39G 8.2G 29G 23% /
#计算当前文件夹的总磁盘占用量
du -sh
#显示已经挂载的设备
mount -l
#显示sda设备的挂载情况(测试使用)
root@ubuntu:/# mount -l | grep sda
/dev/sda5 on / type ext4 (rw,relatime,errors=remount-ro)
/dev/sda1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
#mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点
mount -t ext4 /dev/sda5 /mnt/sda5
#卸载挂载的文件系统
#umount 挂载点
umount /mnt/sda5
#对sda设备进行分区
fdisk /dev/sda
#查看分区信息
fdisk -l
#部分结果
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x71758328
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M b W95 FAT32
/dev/sda2 1052670 83884031 82831362 39.5G 5 Extended #(扩展分区)
/dev/sda5 1052672 83884031 82831360 39.5G 83 Linux #(扩展分区中的逻辑分区)
GPT分区,优点是支持2TB以上的大硬盘;每个磁盘的分区个数几乎没有限制,分区大小也几乎没有限制。
#对sda设备进行分区
gdisk /dev/sda
#格式化分区,并创建ext4文件系统
mkfs -t ext4 /dev/sda1
#查看设备分区文件系统详细信息
dumpe2fs [-h] 设备分区文件
#测试
root@ubuntu:/# dumpe2fs -h /dev/sda5
dumpe2fs 1.45.5 (07-Jan-2020)
Filesystem volume name: <none>
Last mounted on: / #挂载点
Filesystem UUID: 4c252a64-50de-4d0a-b7fb-b693058bb957
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl #挂载选项 这里开启了acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux #文件系统的操作系统类型
Inode count: 2588672 #文件数
Block count: 10353920 #数据块数
Reserved block count: 517696
Free blocks: 8182717 #可用的数据块数
Free inodes: 2425818 #可用的文件数
First block: 0
Block size: 4096 #块大小(字节)4KB
Fragment size: 4096
Group descriptor size: 64
Reserved GDT blocks: 1024
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Dec 30 05:29:39 2021
Last mount time: Sun Jun 12 10:08:18 2022
Last write time: Sun Jun 12 10:08:17 2022
Mount count: 3
Maximum mount count: -1
Last checked: Thu Dec 30 05:29:39 2021
Check interval: 0 (<none>)
Lifetime writes: 11 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 32
Desired extra isize: 32
Journal inode: 8
First orphan inode: 528233
Default directory hash: half_md4
Directory Hash Seed: c251ed7e-ceb5-4dbb-aaa2-3b45810f81cc
Journal backup: inode blocks
Checksum type: crc32c
Checksum: 0x869e84ca
Journal features: journal_incompat_revoke journal_64bit journal_checksum_v3
Journal size: 256M
Journal length: 65536
Journal sequence: 0x00002ece
Journal start: 50458
Journal checksum type: crc32c
Journal checksum: 0xc8fb3de7
#重新读取分区表信息(配置生效)
partprobe
xfs类型文件系统的quota
#xfs_quota -x -c "指令" [挂载点]
#列出目前系统的各的文件系统
xfs_quota -x -c "print"
#列出 / 这个支持 quota 的载点文件系统使用情况
xfs_quota -x -c "df -h" /
#列出挂载点 / 的所有用户的quota限制值
xfs_quota -x -c "report -ubih" /
#查看当前支持quota的文件系统是否开启quota功能
xfs_quota -x -c "state"
#给user1用户对挂载点 / 设置break limit sofr限制250M hard限制300M
xfs_quota -x -c "limit -u bsoft=250M bhard=300M user1" /
#给myquotagrp用户组对挂载点 / 设置限制
xfs_quota -x -c "limit -g bsoft=950M bhard=1G myquotagrp" /
#设置grace time
xfs_quota -x -c "timer -ug -b 14days" /
#关闭xfs的quota限制功能
xfs_quota -x -c "disable -up" /
#重新启动 quota 限制
xfs_quota -x -c "enable -up" /
#使用vda{5,6,7,8,9}生成软件磁盘阵列md0
#--level 磁盘阵列等级0,1,5,6
#--chunk 块大小
#--raid-devices=N 使用几个磁盘 (partition) 作为磁盘阵列的设备
#--spare-devices=N 备用设备数
mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-devices=1 /dev/vda{5,6,7,8,9}
#关闭RAID
mdadm --stop /dev/md0
#将分区创建成PV
pvcreate /dev/vda{5,6,7,8}
#搜寻目前系统里面任何具有 PV 的磁盘
pvscan
#显示出目前系统上面的 PV 状态
pvdisplay /dev/vda5
#创建VG,多个PV组成VG
vgcreate -s 16M vgdev /dev/vda{5,6,7}
#列举系统上存在的VG
vgscan
#展示名为vgdev的VG的状态信息
vgdisplay vgdev
#往VG内添加PV(先将/dev/vda8变成PV)
vgextend vgdev /dev/vda8
#在VG内移除PV
vgreduce vgdev /dev/sdb2
#lvcreate [-L N[mgt]] [-n LV名称] VG名称
#-L 大小
#-n LV名称
#-s 代表是 snapshot
lvcreate -L 2G -n vldev vgdev
#扫描当前存在的LV
lvscan
#对 LV 进行容量大小的调整(+1G)
lvresize -L +1G /dev/lvdev
#观察当前shell背景工作状态
jobs -l
#将指定shell后景工作拉回前台
fg %jobnumber
#启动一个shell后景工作
#(ctrl+z,将一个前景工作暂停放到后景)
bg %jobnumber
#观察进程信息(某一时间节点)
#-A 显示所有的process
#-a 显示于terminal无关的process
#l 详细信息
#u
#常用查询
ps -l
#F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
#F 旗标
#S 状态
#UID PID PPID
#C CPU使用率
#PRI(优先值) NI(用户设置优先值波动) PRI = PRI + NI,最终的 PRI 仍是要经过系统分析
#ADDR SZ WCHAN(内核有关function)
#TTY 终端机位置
#TIME 使用掉CPU时间
#CMD 触发指令
#常用查询
ps aux
#常用查询(查询所有进程)
ps -lA
#常用查询(查询进程树)
ps axjf
#动态获取进程信息
#每2秒获取一次
top -d 2
#-A 树之间的连接以ASCII字符链接
#-p 显示PID
#-u 显示进程所属账号
#获取进程信息,以树形构造
pstree -Aup
#查看有哪些进程才使用/目录下的文件
fuser -uv /
#进程赋予新的NI值
nice [-n 数字] command
#重新跳转新的NI值
renice [number] PID
#显示当前系统内存使用
free -h
#kill -signal PID
#-l 列出目前 kill 能够使用的讯号有哪些?
# -1 重新读取一次参数的配置文件;
# -2 代表与由键盘输入 [ctrl]-c 同样的动作;
# -9 立刻强制删除一个工作;
# -15以正常的程序方式终止一项工作。
#杀死一个进程
kill -9 PID
#后台运行
nohup
#输出核心开机时的信息,信息很多,使用more分页
dmesg | more
#侦测系统资源变化
#vmstat [-a] [延迟 [总计侦测次数]]
#-fs 内存相关
#-a cpu/内存等信息
#-d 磁盘(设备)
#-p 磁盘(分区)
#打印cpu状态信息,打印3次,每秒一次
vmstat 1 3
#查看当前SELinux模式,如过没安装SELinux,该命令将无法使用
getenforce
#将 SELinux 在 Enforcing 与 permissive 之间切换
#0 : 转成permissive 宽容模式
#1 : 转成Enforcing 强制模式
#切换为宽容模式
setenforce 0
#列出目前SELinux信息
sestatus
#查看selinux规则情况
getsebool -a
#列出SELinux在当前政策选择下的统计数据
seinfo [-Atrub]
#sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
#以crond_t这个主体类型读取SELinux type的情况
sesearch -A -s crond_t
#使用 restorecon 让文件恢复正确的 SELinux type
restorecon [-Rv] 文件或目录
权限修改
#格式chmod [{ugoa} {+-=} {rwx}]
#第一位文件类型,前1-4拥有者权限,5-7组权限,8-10其他用户权限
#给所有者加执行权限(r读,w写,x执行)
chmod u+x text.txt
#mod方式修改权限(r4,w2,x1),下面对应drwxr_xr_x
chmod 755 /tmp
#递归修改
chmod 755 /tmp -R
#给执行文件加SUID权限(执行文件)
chmod u+s /tmp/ex
#给文件加SGID权限(执行文件和目录)
chmod g+s /tmp/ex
#给目录加SBIT粘着位(目录)
chmod o+t /tmp
所有者修改
#格式 chown [用户][文件或目录]
chown yao text.txt
#格式 chgrp [用户组][文件或目录]
chgrp yao text.txt
显示修改缺省(默认)权限
#以rwx方式显示
umask -S
#修改默认权限(那么创建的文件权限是600(文件创建是默认不给执行的),目录是700)
umask 077
#赋予普通用户使用root的命令权限
#权限控制文件在/etc/sudoers
sudo shutdown
#获取目录的acl信息
getfacle /tmp/testdir
#设置acl权限
#-m 设定acl权限
#-b 删除所有ACL权限
#-R 递归
#设置用户user1 rx权限
setfacl -m u:user1:rx /tmp/testdir
#修改mask最大权限
setfacl -m m:rx /tmp/testdir
#删除所有ACL权限
setfacl -b /tmp/testdir
#设置默认ACL权限
setfacl -m d:u:user1:rx /tmp/testdir
改变文件属性,用于修改ext2文件系统上的文件或目录属性
#i 不得更改文件或目录
#s 保密性删除文件或目录
#S 即时更新文件或目录
#u 预防意外删除
chattr +i /etc/xxx.conf
#展示权限
lsattr -a /etc
添加用户
#添加用户yao
#-u UDI
#-
adduser user1
修改用户密码
#修改用户密码(root)
passwd user1
#修改用户密码(用户自身)
passwd
#锁定用户
passwd -l user1
#解锁用户
passwd -u user1
#给用户user1设置密码(shell脚本中批量设置用户密码,注:不安全,history中会查到密码)
echo "新密码" | passwd --stdin user1
#格式usermod [选项] 用户名
#-u UID
#-c 用户说明
#-G 组名
#-L 锁定用户
#-U 解锁用户
usermod -L user1
修改用户密码状态
#chage [选项] 用户名
#-l 列出用户状态
#-d 用户修改日期(shadow文件中第三个字段)
#用户登录时就要修改密码
chage -d 0 user1
#userdel [-r] 用户名
#-r 删除用户同时删除用户家目录
userdel -r user1
#把用户加入组
gpasswd -a user1 usergroup
#把用户从组中移除
gpasswd -d user1 usergroup
#查看用户id
id user1
#用户切换
su root
#不切root借root,执行useradd user1命令
su -root -c "useradd user1"
查看当前登录用户信息
who
#格式 find [查找目录] [选项] [查找名]
#查找名为init的文件或目录
find /etc -name init
#不区分大小写查找
find /etc -iname init
#查找文件大于100MB的文件(+大于 -小于 等于)
#按数据块换算 1数据块=512字节=0.5KB
find /etc -size +204800
#根据所有者查找
find /etc -user root
#根据所有组查找
find /etc -group root
#根据最近访问时间查找(5分钟)
find /etc -amin 5
#根据最近修改文件属性的查找(change)
find /etc -cmin 5
#根据最近修改文件内容查找(modify)
find /etc -mmin 5
#根据文件类型(f文件 d目录 l软连接)
find /etc -type f
快速搜索,文件库进行搜索(非实时查找)
#搜索文件(不找/tmp)
locate text.txt
#不区分大小写查找
locate -i text.txt
#升级资料库
updatedb
查找命令
#查找命令的路径
which ls
查找命令以及其帮助文档
whereis ls
内容查找
#指定内容,查找文件中的某一行
grep mysql /root/install.log
#排除指定字符串(排除#开头的所有行)
grep -v ^# /etc/inittab
#通过管道符查找安装了httpd rpm包
rpm -qa | grep httpd
查看配置文件帮助信息或者命令的帮助信息
#格式 man [命令或配置文件]
man ls
显示命令的简介信息
#查看ls命令的简介
whatis ls
查看shell命令的帮助信息
#查看cd的帮助信息(cd属于shell命令)
help cd
查看当前系统运行级别
runlevel
用户登出
logout
rpm包用于redhat系列Linux
#格式rpm [选项] 包名
#-i 安装
#-v 显示详细信息
#-h 显示进度
#-U 升级
#-e 卸载(只需包名)
#-q 查询已安装包信息(只需包名)
#-p 未安装包信息
#-l list展示(文件展示)
#-f 通过文件反向查找包名
#-R 查询软件包依赖性
#-V 校验
#安装
rpm -ivh xxx.rpm
#查询已经安装的包的文件列表信息
rpm -ql httpd
将rpm包转换为cpio格式的命令
#修复rpm
rpm2cpio xxx.rpm | cpio -idv [还原文件路径]
yum线上服务安装rpm包
#安装httpd
#-y 自动yes
#安装gcc
yum -y install gcc
#跟新gcc
yum -y update gcc
#卸载
yum -y remove gcc
#软件包组安装
yum groupinstall [软件包组]
#软件包组卸载
yum groupremove [软件包组]
#查看所有变量
set
#删除变量name
unset name
#定义环境变量
export name=zs
#查询环境变量
env
,查找文件中的某一行
grep mysql /root/install.log
#排除指定字符串(排除#开头的所有行)
grep -v ^# /etc/inittab
#通过管道符查找安装了httpd rpm包
rpm -qa | grep httpd
### 查找帮助信息
#### man
查看配置文件帮助信息或者命令的帮助信息
```shell
#格式 man [命令或配置文件]
man ls
显示命令的简介信息
#查看ls命令的简介
whatis ls
查看shell命令的帮助信息
#查看cd的帮助信息(cd属于shell命令)
help cd
查看当前系统运行级别
runlevel
用户登出
logout
rpm包用于redhat系列Linux
#格式rpm [选项] 包名
#-i 安装
#-v 显示详细信息
#-h 显示进度
#-U 升级
#-e 卸载(只需包名)
#-q 查询已安装包信息(只需包名)
#-p 未安装包信息
#-l list展示(文件展示)
#-f 通过文件反向查找包名
#-R 查询软件包依赖性
#-V 校验
#安装
rpm -ivh xxx.rpm
#查询已经安装的包的文件列表信息
rpm -ql httpd
将rpm包转换为cpio格式的命令
#修复rpm
rpm2cpio xxx.rpm | cpio -idv [还原文件路径]
yum线上服务安装rpm包
#安装httpd
#-y 自动yes
#安装gcc
yum -y install gcc
#跟新gcc
yum -y update gcc
#卸载
yum -y remove gcc
#软件包组安装
yum groupinstall [软件包组]
#软件包组卸载
yum groupremove [软件包组]
#查看所有变量
set
#删除变量name
unset name
#定义环境变量
export name=zs
#查询环境变量
env