Linux常用命令
少库文件
缺少库文件可以在这个网站查找是哪个包
http://rpm.pbone.net/
yum
yum provides package //软件属于哪个安装包yum remove package //卸载软件
yum update <package_name>//仅更新指定的软件命令
回滚:
yum history list XXXX
yum history undo N(N是列表中的事务编号)
rpm
rpm -qa|grep package //查询package有没有安装
rpm -ql package //查看软件安装在哪个路径
rpm -qf 文件名称(绝对路径) //查看属于哪个软件 rpm -qf /usr/bin/wget
rpm -qf `which nslookup` //查看软件属于哪个安装包
rpm -ivh package //rpm安装 --force 强制安装
rpm -e package //rpm 卸载
mount/umount
mount -t device(设备) dir(挂载点)
umount 挂载点
showmount -e 10.0.1.201 //验证NFS-SERVER是否能正常访问
mount /dev/cdrom /mnt/cdrom //挂载光驱
mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir //将文件和目录制作成光盘镜像文件
mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom //光盘镜像文件的挂接
mount -t ntfs /dev/sdc1 /mnt/usbhd1 //挂接移动硬盘
mount -t vfat /dev/sdc5 /mnt/usbhd2
注:对ntfs格式的磁盘分区应使用-t ntfs参数,对fat32格式的磁盘分区应使用-t vfat参数
mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs //nfs共享挂载 linux之间
mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba //linux连接windows共享
注:administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的一个用户名和密码,c$是这台计算机的一个磁盘共享。
systemctl
systemctl is-enabled 服务名称(nginx) //查看服务是否开机启动
systemctl enable/disable 服务名称 //开机启动和关闭
systemctl list-units --type=service //查看所有已启动的服务
locate
locate nginx //查看文件所在路径信息
updatedb //更新文件所在路径的索引数据库表
find
find /oldboy -type 文件类型 -name "文件名称"
find /oldboy -type f -mtime +10 -delete --- 删除历史数据信息
find /oldboy -type f -size +10M -delete --- 删除大于10M文件
-maxdepth //查找目录层级的深度
ok [commend] //查找后执行命令的时候询问用户是否要执行 find /var/log -type f -mtime +7 -ok rm {} ;
-exec //查找后执行命令的时候不询问用户,直接执行 find . -name "12a.txt" -exec cp {} {}.bak ;
du
du -sh * //汇总查看目录大小,以人类可读方式
-d //是 --max-depth=N 选项的简写,表示深入到第几层目录,超过指定层数目录则忽略 du -d 1 /root == du --max-depth=1 /root
-c: 除了显示目录大小外,额外一行显示总占用量 du -ch /root
tar
----------
压缩数据命令
-z 压缩类型 -c 创建压缩包 -v 显示过程 -f 指定压缩文件路径 -x 解压文件 -t 查看压缩文件内容
-j bzip2文件
--exclude 排除指定文件不被压缩处理 --exclude-from
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、.tar.gz和.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar e解压
9、*.zip 用 unzip 解压
date
date +%F #2022-02-08 当前年月日
date +%F_%T # 2022-02-08_14:50:25 当前时间
date +%c # Tue 08 Feb 2022 03:21:07 PM CST
date -s #修改时间 (软时间)
hwclock -s #硬件时钟设置系统时间
ln
ln -s 源文件 快捷链接
ln -s 192.168.110.12/skyhu /skyhu_softlink
删除软链接 rm -rf skyhu_softlink #注意不要带/,加了个/ 这个是删除文件夹
sort
sort -n #按照数值进行排序
sort -r #倒序
sort -k1 #按照指定列进行排序
uniq
删除重复的行,一般跟sort命令结合使用
当重复的行并不相邻时,uniq 命令是不起作用的,先sort
统计各行在文件中出现的次数:
sort testfile1 | uniq -c
rename
rename txt jpg 1.txt
要修改的后缀 修改后的后缀 源文件
tail
tail -nf 100 /var/log/nginx/access.log |grep 关键字 #实时查看最后一百条日志
tail -n 4700 aa.log |more -1000 可以进行多屏显示
iptables
启动网络转发规则
公网210.14.67.7
让内网192.168.188.0/24
上网
iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.127
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允许访问22端口
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
屏蔽IP
iptables -A INPUT -p tcp -m tcp -s 192.168.0.8 -j DROP # 屏蔽恶意主机(比如,192.168.0.8
iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP #封整个段即从123.0.0.1到123.255.255.254的命令
配置白名单
iptables -A INPUT -p all -s 192.168.1.0/24 -j ACCEPT # 允许机房内网机器可以访问
iptables -A INPUT -p all -s 192.168.140.0/24 -j ACCEPT # 允许机房内网机器可以访问
iptables -A INPUT -p tcp -s 183.121.3.7 --dport 3380 -j ACCEPT # 允许183.121.3.7访问本机的3380端口
useradd/usermod
useradd -d /home/apache2/htdocs/useronename -g sftpuserg -s /sbin/nologin useronename 创建用户,设置组和家目录
usermod -g group user # 修改用户组
chmod 755 user # 设置权限
chown #修改文件夹组
wget
限速1M --limit-rate=1M wget --limit-rate=1M https://.....
断点续传 -c 参数
需要服务器支持 查看服务器支持命令
wget -S http://mirrors.163.com 2>&1 |grep "Accept-Ranges"
wget -S https://mirrors.aliyun.com/centos/timestamp.txt 2>&1|grep "Ranges"
-O 参数 保存其它名字
Curl
curl -I https://hqq365.com # -I 参数 获取网站的header信息
curl -s -o /dev/null -w %{http_code}"n" https://hqq365.com #显示网站http状态代码
-C 断点续传 -o 把输出到指定的文件名 -O 默认文件名保存到本地
xargs
-d选项可以为输入数据指定自定义的分隔符 xargs的-n选项可以限制每次调用命令时用到的参数个数
cat example.txt | xargs -n 3
1 2 3
4 5 6
7 8 9
10 11 12
echo "splitXsplit2Xsplit3Xsplit4" | xargs -d X
Split1 split2 split3 split4
tr
echo "HELLO WHO IS THIS" | tr 'A-Z' 'a-z'
hello who is this
$ echo "Hello 123 world 456" | tr -d '0-9'
Hello world
将stdin中的数字删除并打印删除后的结果
chmod
chmod 1777 /tmp 或chmod o+t /tmp #查看是否加了sticky bit,用ls -l,可以看到有类似这样的权限:“-rwxrwxrwt
chmod g+s /tmp或chmod 2777 /tmp drwxrwsrwx
加上SGID的文件,表示运行这个程序时,是临时以这个文件的拥有组的身份运行的;加上SGID的文件夹,表示在这个目录下创建的文件属于目录所有的组,而不是创建人所在的组,在这个目录下创建的目录继承本目录的SGID
加SUID的方法:
chmod o+s /tmp或chmod 4777 /tmp drwsrwxrwx #SUID与SGID是一样的,惟一不同的是,运行时是以这个文件的拥有者身份来运行。
ps
ps aux
[root@k8s-node1 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 125452 3912 ? Ss Mar24 1:00 /usr/lib/systemd/systemd --
root 2 0.0 0.0 0 0 ? S Mar24 0:00 [kthreadd]
。STAT表示进程的运行状态,包括以下几种代码:D,不可中断的睡眠;R,就绪(在可运行队列中);S,睡眠;T,被跟踪或停止;Z,终止(僵死)的进程,Z不存在,但暂时无法消除
修改path环境变量
export PATH=/usr/local/mongodb/bin:$PATH ##临时增加mongodb的环境变量
永久修改 ~/.bashrc /etc/bashrc /etc/profile
gpasswd 修改用户组
把用户加入某个组织,但不退出当前组,同时属于多个组
usermod -a -G groupname username
gpasswd -a test test2 //将用户test加入到test2组
gpasswd -d test test2 //将用户从test2组中移出
cp
-u 参数 增量复制文件
-f参数 强制复制