平日里工作中经常用的一些命令,仅供参考

防火墙相关
firewall防火墙

系统自带其实CentOS-7.x里面的防火墙还是firewall ,并且还是iptables的工具,只是在上层包装了更高级的 firewalld 服务,但是我们只是一个应用服务器,而firewalld 给我们定义了各种策略.

firewall-cmd --state #查看防火墙状态

systemctl start firewalld # 启动

systemctl stop firewalld # 关闭

systemctl enable firewalld # 开机启动

systemctl disable firewalld # 取消开机启动

firewall-cmd --permanent --list-port #查看已开启的所有端口

firewall-cmd --add-port=8080/tcp --permanent #永久开放端口

firewall-cmd --zone=public--remove-port=80/tcp --permanent #关闭端口

firewall-cmd --reload #重新加载生效开放的端口

iptables防火墙

yum update iptables #升级iptables

yum install iptables-services #安装iptables-services

service iptable status #查看防火墙状态

servcie iptables stop #临时关闭防火墙

service iptables start #临时启动防火墙

service iptables restart #重启防火墙

chkconfig iptables off #永久关闭防火墙

chkconfig iptables on #永久开启防火墙

systemctl start iptables #启动

systemctl status iptables #查看运行状态

systemctl restart iptables.service #重启

systemctl stop iptables.service #停止

systemctl enable iptables.service #设置开机启动

systemctl disable iptables.service #禁止开机启动

iptables -h #查询帮助

iptables -L -n #列出(filter表)所有规则

iptables -L -n --line-number #列出(filter表)所有规则,带编号

iptables -L -n -t nat #列出(nat表)所有规则

iptables -F #清除(filter表)中所有规则

iptables -F -t nat #清除(nat表)中所有规则

service iptables save #保存配置(保存配置后必须重启iptables)

常见用法:
iptables -A INPUT ! -s 192.168.1.3 -j DROP #禁止192.168.1.3 IP地址的所有类型数据接入

-A INPUT -p tcp --dport 80 -j ACCEPT #开放80端口

端口
-I INPUT -p tcp --dport 22:80 -j ACCEPT #开22-80范围的端口

-I OUTPUT -p tcp --dport 80 -j DROP #不允许80端口流出

高级用法1
iptables -I INPUT 5 -m state --state NEW -s 192.168.100.0/24 -p tcp --dport 8080 -j ACCEPT #允许192.168.100.0/24访问本机的TCP

高级用法2
iptables -I INPUT 5 -m state --state NEW ! -s 172.16.50.0/24 -p tcp --dport 443 -j ACCEPT #8080除了172.16.50.0/24网段,其他地址都能访问本地的443端口

高级用法3
iptables -t nat -L -n | grep 80 #查看当前80端口的转发规则

iptables -t nat -D PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80 #删除当前80端口转发到8080端口的转发规则

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080 #新增80到8080端口转发规则

端口相关
netstat -lntp #查看监听(Listen)的端口

netstat -antp #查看所有建立的TCP连接

iptables -L #查看防火墙规则

route -n #查看路由表

netstat -s #查看网络统计信息

netstat -nap #会列出所有正在使用的端口及关联的进程/应用

lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用

netstat -lnp|grep 80 #检查端口被哪个进程占用,80换为需要的端口

netstat -aptn #查看所有开启的端口号

netstat -nupl #查看UDP类型端口

netstat -ntpl #查看TCP类型端口

VIM编辑器
vim filename #打开filename文件

i #进入编辑状态

:q! #退出编辑器,且不保存

:wq #退出编辑器,且保存文件

Ctrl+b #屏幕往后移动一页

Ctrl+f #屏幕往前移动一页

Ctrl+u #屏幕往后移动半页

Ctrl+d #屏幕往前移动半页

shift+ctrl+V #粘贴外部内容

dd #删除光标所在的整行

u #取消前一次的误操作

yy #复制当前行

P #粘贴复制的行

系统信息显示
arch #显示机器的处理器架构1

uname -m #显示机器的处理器架构2

uname -r #显示正在使用的内核版本

dmidecode -q #显示硬件系统部件 - (SMBIOS / DMI)

hdparm -i /dev/hda #罗列一个磁盘的架构特性

hdparm -tT /dev/sda #在磁盘上执行测试性读取操作

cat /proc/cpuinfo #显示CPU info的信息

cat /proc/interrupts #显示中断

cat /proc/meminfo #校验内存使用

cat /proc/swaps #显示哪些swap被使用

cat /proc/version #显示内核的版本

cat /proc/net/dev #显示网络适配器及统计

cat /proc/mounts #显示已加载的文件系统

lspci -tv #罗列 PCI 设备

lsusb -tv #显示 USB 设备

date #显示系统日期

文件和目录
cd /home #进入 '/ home' 目录'

cd .. #返回上一级目录

cd ../.. #返回上两级目录

cd #进入个人的主目录

cd ~user1 #进入个人的主目录

cd - #返回上次所在的目录

pwd #显示工作路径

ls #查看目录中的文件

ls -F #查看目录中的文件

ls -l #显示文件和目录的详细资料

ls -a #显示隐藏文件

ls [0-9] #显示包含数字的文件名和目录名

tree #显示文件和目录由根目录开始的树形结构(1)

lstree #显示文件和目录由根目录开始的树形结构(2)

mkdir dir1 #创建一个叫做 'dir1' 的目录'

mkdir dir1 dir2 #同时创建两个目录

mkdir -p /tmp/dir1/dir2 #创建一个目录树

rm -f file1 #删除一个叫做 'file1' 的文件'

rmdir dir1 #删除一个叫做 'dir1' 的目录'

rm -rf dir1 #删除一个叫做 'dir1' 的目录并同时删除其内容

rm -rf dir1 dir2 #同时删除两个目录及它们的内容

mv dir1 new_dir #重命名/移动 一个目录

cp file1 file2 #复制一个文件

cp dir/* . #复制一个目录下的所有文件到当前工作目录

cp -a /tmp/dir1 . #复制一个目录到当前工作目录

cp -a dir1 dir2 #复制一个目录

搜索
find / -name file1 #从 '/' 开始进入根文件系统搜索名称为file1的文件和目录

find / -user user1 #搜索属于用户 'user1' 的文件和目录

find /home/user1 -name *.bin #在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件

find /usr/bin -type f -atime +100 #搜索在过去100天内未被使用过的执行文件

find /usr/bin -type f -mtime -10 #搜索在10天内被创建或者修改过的文件

find / -name *.rpm -exec chmod 755 '{}' ; #搜索以 '.rpm' 结尾的文件并定义其权限

find / -xdev -name *.rpm 搜索以 '.rpm' #结尾的文件,忽略光驱、捷盘等可移动设备

locate *.ps #寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令

磁盘
df -lh #显示已经挂载的分区列表

ls -lSr |more #以尺寸大小排列文件和目录

du -sh dir1 #估算目录 'dir1' 已经使用的磁盘空间

du -sk * | sort -rn #以容量大小为依据依次显示文件和目录的大小

用户
groupadd group_name #创建一个新用户组

groupdel group_name #删除一个用户组

groupmod -n new_group_name old_group_name #重命名一个用户组

useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 #创建一个属于 "admin" 用户组的用户

useradd user1 #创建一个新用户

userdel -r user1 #删除一个用户 ( '-r' 排除主目录)

usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 #修改用户属性

passwd user1 #修改一个用户的口令 (只允许root执行)

chage -E 2005-12-31 user1 #设置用户口令的失效期限

权限
ll #显示权限

ls /tmp | pr -T5 -W$COLUMNS #将终端划分成5栏显示

chmod ugo+rwx directory1 #设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限

chmod go-rwx directory1 #删除群组(g)与其他人(o)对目录的读写执行权限

chown user1 file1 #改变一个文件的所有人属性

chown -R user1 directory1 #改变一个目录的所有人属性并同时改变改目录下所有文件的属性

Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他,利用 chmod 可以藉以控制档案如何被他人所调用

参数
mode #权限设定字串,格式如下 : ugoa…[rwxX]…][,…]

u #表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
+#表示增加权限、- 表示取消权限、= 表示唯一设定权限

r #表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行

-c #若该档案权限确实已经更改,才显示其更改动作

-f #若该档案权限无法被更改也不要显示错误讯息

-v#显示权限变更的详细资料

-R #对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

chmod ugo+r file1.txt #将档案 file1.txt 设为所有人皆可读取

chmod a+r file1.txt #将档案 file1.txt 设为所有人皆可读取

chmod ug+w,o-w file1.txt file2.txt #将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

chmod u+x ex1.py #将 ex1.py 设定为只有该档案拥有者可以执行

chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7
若要rw-属性则4+2=6
若要r-x属性则4+1=5

例:
chmod a=rwx file #和 chmod 777 file 效果相同

chmod ug=rwx,o=x file #和 chmod 771 file 效果相同

解读:
-rw------- (600) # 只有属主有读写权限
-rw-r–r-- (644)#只有属主有读写权限;而属组用户和其他用户只有读权限
-rwx------ (700) #只有属主有读、写、执行权限
-rwxr-xr-x (755) # 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限
-rwx–x--x (711) #属主有读、写、执行权限;而属组用户和其他用户只有执行权限
-rw-rw-rw- (666)#所有用户都有文件读、写权限。这种做法不可取
-rwxrwxrwx (777) #所有用户都有读、写、执行权限。更不可取的做法

chgrp group1 file1 #改变文件的群组

chown user1:group1 file1 #改变一个文件的所有人和群组属性

chattr +a file1 #只允许以追加方式读写文件

chattr +c file1 #允许这个文件能被内核自动压缩/解压

chattr +d file1 #在进行文件系统备份时,dump程序将忽略这个文件

chattr +i file1 #设置成不可变的文件,不能被删除、修改、重命名或者链接

chattr +s file1 #允许一个文件被安全地删除

chattr +S file1 #一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘

chattr +u file1 #若文件被删除,系统会允许你在以后恢复这个被删除的文件

lsattr #显示特殊的属性

打包和压缩
tar命令
tar -czvf home.tar.gz home #打包并压缩名称为home的文件夹在当前目录下
tar -xzvf home.tar.gz #解压home压缩包在当前目录下
tar -czvf 111.tar.gz yz home #打包并压缩yz和home两个文件夹在当前目录下
tar -tf bdir.tar.gz #只是查看这个包里的内容

zip命令
有些服务器没有安装zip包执行不了zip命令,可以自行安装
zip -q -r yz.zip yz #打包并压缩名称为yz文件夹到当前目录下
unzip yz.zip #解压包在当前目录下
可选参数
-c将解压缩的结果
-l显示压缩文件内所包含的文件
-p与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
-t检查压缩文件是否正确
-u与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中
-v执行是时显示详细的信息
-z仅显示压缩文件的备注文字
-a对文本文件进行必要的字符转换
-b不要对文本文件进行字符转换
-C压缩文件中的文件名称区分大小写

YUM 软件包
yum install package_name #下载并安装一个rpm包

yum localinstall package_name.rpm #将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系

yum update package_name.rpm #更新当前系统中所有安装的rpm包

yum update package_name #更新一个rpm包

yum remove package_name #删除一个rpm包

yum list #列出当前系统中安装的所有包

yum search package_name #在rpm仓库中搜寻软件包

yum clean packages #清理rpm缓存删除下载的包

yum clean headers #删除所有头文件

yum clean all #删除所有缓存的包和头文件

备份
dump -0aj -f /tmp/home0.bak /home #制作一个 '/home' 目录的完整备份

dump -1aj -f /tmp/home0.bak /home #制作一个 '/home' 目录的交互式备份

restore -if /tmp/home0.bak #还原一个交互式备份

rsync -rogpav --delete /home /tmp #同步两边的目录

rsync -rogpav -e ssh --delete /home ip_address:/tmp #通过SSH通道rsync

rsync -az -e ssh --delete ip_addr:/home/public /home/local #通过ssh和压缩将一个远程目录同步到本地目录

rsync -az -e ssh --delete /home/local ip_addr:/home/public #通过ssh和压缩将本地目录同步到远程目录

dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' #通过ssh在远程主机上执行一次备份本地磁盘的操作

dd if=/dev/sda of=/tmp/file1 #备份磁盘内容到一个文件

网络
ifconfig #查询、设置网卡与IP网络等相关参数

route del [-net|-host] [网络或主机] netmask [mask] [gw|dev] #查看、配置路由表

route add 10.30.1.0 mask 255.255.255.0 10.100.1.254 #添加目标网段10.30.1.0/24通过10.100.1.254这个网关出去。
route delete 10.30.1.0 mask 255.255.255.0 10.100.1.254 #删除目标网段10.30.1.0/24通过10.100.1.254这个网关出去。
hi.png

最后修改:2022 年 03 月 28 日
如果觉得我的文章对你有用,请随意赞赏