常用shell命令

技术文档网 2021-04-16

常用命令

查找类

find / -name "export.sh"
which 查看可执行文件的位置
whereis 查看文件的位置
locate 配合数据库查看文件位置
find 实际搜寻硬盘查询文件名称
find path -type f -size +1M  查找大于1M的文件
find . -ctime -20 //将目前目录及其子目录下所有最近 20 天内更新过的档案列出
find . | xargs grep -ril "!*)#millions"
find test/ -name "*.wav" |wc –l 统计test目录下,wav文件数量
find test/ -name "*.wav" |xargs cat|wc –l   统计test目录下所有wav文件代码行数
find /test -name "*.php" |xargs cat|grep -v ^$|wc –l  统计test目录下所有php文件代码行数,过滤了空行
find . -name "*.php" | xargs grep -ril "SPIDER"
find . -name .svn -type d -exec rm -fr {} \;
ls *.log | xargs rm -f
find /www/web/tsov.net/public_html/static/upload -type f -iname "*_w*.jpg" -exec rm -rf {} \;
find /opt/webroot/vgroupnav/app/Runtime/Cache -type f  -exec rm -rf {} \;
kill -9 `ps -ef|grep 'collect_image.php'|grep -v grep|awk '{print $2}'`

ll -a 可以查看到隐藏文件 .svn

拷贝类

scp -P 2222 h.txt root@192.168.0.161:/root
scp -r /soft root@192.168.1.101:/root/soft
cp -u -v -r /opt/webroot/vgroupnav/app/Tpl/blue/cache/City/ /mnt/movo/webroot/vgroupnav/app/Tpl/blue/cache/
scp -v -r -P 22 /opt/webroot/vgroupnav/bbs/egbaba_paimai/ root@112.124.99.27:/mnt/bbs
rsync -av /opt/webroot/vgroupnav/bbs/ root@112.124.99.27:/mnt/bbs/
rsync -a /var/lib/redmine/default/files /path/to/backups/files

系统类

ssh -p 2222 root@192.168.0.254
pkill -kill -t pts/2踢掉用户
开机启动:1、cd /etc/init.d 2、查看 /etc/rc.d/rc.local文件
Getenforce  查看selinux的运行级别
setenforce 0 或者1 设置selinux的运行级别,级别0表示Permissive模式,级别1表示Enforcing模式
修改环境变量:
vi ~/.bashrc
export TIME_STYLE="+%Y-%m-%d %H:%M:%S %z"
source ~/.bashrc

mysql类

show processlist;
show slave status;
show master status;
/usr/bin/mysqldump -u root -p<password> redmine_default | gzip > /path/to/backups/redmine_db_`date +%y_%m_%d`.gz

进程类

ps -ef | grep httpd
kill -9 2222
ps -ef|grep save_xml.php|grep -v grep|cut -c 9-15|xargs kill -9
netstat -nlp | grep 8000
ps -ef | grep httpd | wc -l 查看当前httpd进程数
netstat -anpo | grep "httpd" | wc -l
watch -n 1 -d 'ps aux | grep httpd | wc -l' 实时查看httpd进程数
ps aux|grep "collect_image.php"|egrep -v "grep" -c
ps aux|grep -v grep|awk '/httpd/{sum+=$6;n++};END{print sum/n}'  查看httpd占用内存
ps aux|grep -v grep|awk '/php-fpm/{sum+=$6;n++};END{print sum/n}'

配置文件类

cp ~/.bash_history h.txt
crontab文件在:/var/spool/cron
定时任务类
下面是crontab的格式: -l 列出  -e 编辑
分< >时< >日< >月< >星期< >要运行的命令
/sbin/service crond start           //启动服务
/sbin/service crond status          //查看状态
/sbin/service crond stop            //关闭服务
/sbin/service crond restart        //重启服务
/sbin/service crond reload         //重新载入配置

磁盘类

lvdisplay指令:显示逻辑卷属性
mount -o rw /dev/VolGroup/lv_data /data/
showmount -e 10.221.32.203
mount -t nfs 118.186.246.198:/opt/webroot/vgroupnav/ /mnt/gua/
fuser -km /mnt
umount /datatmp
vi /etc/exports
/opt/webroot/vgroupnav 192.168.0.202(rw,sync,no_root_squash)
exportfs -r   //使配置生效:
mount -t nfs 10.221.32.203:/data/resources /mnt

其他类

echo "" > 目标文件
*/20 * * * * /usr/sbin/ntpdate cn.pool.ntp.org   20分钟同步一次系统时间 ntpdate asia.pool.ntp.org
tail -f filename 会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
# 解决You have mail in /var/spool/mail/root
echo "unset MAILCHECK">>/etc/profile
source /etc/profile

网络类

mii-tool -v em1 //查看网卡状态
DEVICE=eth0
HWADDR=00:26:6c:f1:32:7c
TYPE=Ethernet
UUID=b75b7768-032b-4ea1-b901-145a4438910f
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=118.186.246.161
NETMASK=255.255.255.128
GATEWAY=118.186.246.254
DNS1=202.106.0.20
IPV6INIT=no
USERCTL=no

用户类

查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
userdel -f chenlei
修改密码passwd username
用户列表文件:/etc/passwd
用户组列表文件:/etc/group
userdel peter
groupdel peter
usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)
注意usermod -g groupname username是把username的主组变成groupname,
而usermod -G groupname username只是把用户加到groupname组,并没有改变主组。
查看某一用户:w 用户名
查看登录用户:who
查看用户登录历史记录:last

压缩类

Linux压缩保留源文件的方法:
gzipc filename > filename.gz
Linux解压缩保留源文件的方法:
gunzipc filename.gz > filename
tar jxvf libgd-2.1.0.tar.bz2

防火墙类

iptables -L –n  //查看当前规则
iptables -F        清除预设表filter中的所有规则链的规则
iptables -X        清除预设表filter中使用者自定链中的规则
iptables -I INPUT -s $IP -j DROP  //把某IP屏蔽
/etc/init.d/iptables status --line-numbers  //查看iptables规则及编号
iptables -D INPUT 1   //删除指定编号的规则
vim /etc/sysconfig/iptables  //查看当前的iptables存放文件
/etc/rc.d/init.d/iptables save  保存规则
service iptables restart  重启生效
vim /etc/sysconfig/iptables
/etc/init.d/iptables restart 
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

1、关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

系统内核

vim /etc/sysctl.conf
net.ipv4.tcp_syncookies = 1    开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1   开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭
net.ipv4.tcp_max_tw_buckets = 5000  系统同时保持TIME_WAIT套接字的最大数量,超过将立刻被清除并打印警告信息
net.ipv4.ip_local_port_range= 1025 65535   用于向外连接的端口范围
net.core.rmem_max=16777216      最大的TCP数据接收缓冲
net.core.wmem_max=16777216     最大的TCP数据发送缓冲
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
fs.inotify.max_user_watches = 32768  解决tail 出现空间不够的情况
net.ipv4.tcp_fin_timeout = 10      修改系統默认的TIMEOUT时间
net.ipv4.tcp_tw_recycle = 1     开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_timestamps = 0   必须关闭时间戳,这样才能给所用用户提供正常的服务0(禁用)1(启用)
net.ipv4.tcp_window_scaling = 0   设置tcp/ip会话的滑动窗口大小是否可变。参数值为布尔值,为1时表示可变,为0时表示不可变。tcp/ip通常使用的窗口最大可达到65535 字节,对于高速网络,该值可能太小,这时候如果启用了该功能,可以使tcp/ip滑动窗口大小增大数个数量级,从而提高数据传输的能力
net.ipv4.tcp_sack = 0  该文件表示是否启用有选择的应答(Selective Acknowledgment),这可以通过有选择地应答乱序接收到的报文来提高性能(这样可以让发送者只发送丢失的报文段);(对于广域网通信来说)这个选项应该启用,但是这会增加对 CPU 的占用
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save=1
net.core.somaxconn = 262144  socket监听的backlog上限
net.ipv4.tcp_max_orphans = 262144  系统所能处理不属于任何进程的TCP sockets最大数量。假如超过这个数量,那么不属于任何进程的连接会被立即reset,并同时显示警告信息。之所以要设定这个限制,纯粹为了抵御那些简单的 DoS 攻击,千万不要依赖这个或是人为的降低这个限制
net.ipv4.tcp_max_syn_backlog = 262144  对于那些依然还未获得客户端确认的连接请求,需要保存在队列中最大数目。对于超过 128Mb 内存的系统,默认值是 1024,低于 128Mb 的则为 128。如果服务器经常出现过载,可以尝试增加这个数字。警告!假如您将此值设为大于1024,最好修改 include/net/tcp.h 里面的 TCP_SYNQ_HSIZE,以保持TCP_SYNQ_HSIZE*16 0)或者bytes-bytes/2^(-tcp_adv_win_scale)(如果tcp_adv_win_scale 128Mb 32768-610000)则系统将忽略所有发送给自己的ICMP ECHO请求或那些广播地址的请求。
net.ipv4.tcp_synack_retries = 2  对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。不应该大于255,默认值是5,对应于180秒左右时间。(对于大负载而物理通信良好的网络而言,这个值偏高,可修改为2.这个值仅仅是针对对外的连接,对进来的连接,是由tcp_retries1决定的)
net.ipv4.tcp_syn_retries = 2  对于远端的连接请求SYN,内核会发送SYN  ACK数据报,以确认收到上一个 SYN连接请求包。这是所谓的三次握手( threeway handshake)机制的第二个步骤。这里决定内核在放弃连接之前所送出的 SYN+ACK 数目。不应该大于255,默认值是5,对应于180秒左右时间
sysctl net.ipv4.tcp_timestamps  查看当前配置值
sysctl -p
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'     TIME_WAIT套接字数量
防ddos攻击
vim /etc/rc.local
加入如下文本
sysctl kern.ipc.maxsockets=100000        ##增加并发的socket,对于ddos很有用
sysctl kern.ipc.somaxconn=65535        ##打开文件数
sysctl net.inet.tcp.msl=2500            ##timeout时间

压缩类

01-.tar格式
解包:[*******]$ tar xvf FileName.tar
打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)

02-.gz格式
解压1:[*******]$ gunzip FileName.gz
解压2:[*******]$ gzip -d FileName.gz
压 缩:[*******]$ gzip FileName

03-.tar.gz格式
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName

04-.bz2格式
解压1:[*******]$ bzip2 -d FileName.bz2
解压2:[*******]$ bunzip2 FileName.bz2
压 缩: [*******]$ bzip2 -z FileName

05-.tar.bz2格式
解压:[*******]$ tar jxvf FileName.tar.bz2
压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName

06-.bz格式
解压1:[*******]$ bzip2 -d FileName.bz
解压2:[*******]$ bunzip2 FileName.bz

07-.tar.bz格式
解压:[*******]$ tar jxvf FileName.tar.bz

08-.Z格式
解压:[*******]$ uncompress FileName.Z
压缩:[*******]$ compress FileName

09-.tar.Z格式
解压:[*******]$ tar Zxvf FileName.tar.Z
压缩:[*******]$ tar Zcvf FileName.tar.Z DirName

10-.tgz格式
解压:[*******]$ tar zxvf FileName.tgz

11-.tar.tgz格式
解压:[*******]$ tar zxvf FileName.tar.tgz
压缩:[*******]$ tar zcvf FileName.tar.tgz FileName

12-.zip格式
解压:[*******]$ unzip FileName.zip
压缩:[*******]$ zip FileName.zip DirName

13-.lha格式
解压:[*******]$ lha -e FileName.lha
压缩:[*******]$ lha -a FileName.lha FileName

14-.rar格式
解压:[*******]$ rar a FileName.rar
压缩:[*******]$ rar e FileName.rar
rar请到:http://www.rarsoft.com/download.htm 下载!
解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量
指定的目录也行):[*******]$ cp rar_static /usr/bin/rar

修改系统常用类

#vi ~/.bashrc
alias dc='docker-compose'
source ~/.bashrc

安装DNS服务器 yum install -y bind bind-chroot bind-utis vim /etc/named.conf vim /etc/named.rfc1912.zones zone "yuenimei.com.cn" IN { type master; file "yuenimei.com.cn.zone"; }; cd /var/named/ cp named.localhost yuenimei.com.cn.zone vim yuenimei.com.cn.zone $TTL 86400 @ 3600 IN SOA yuenimei.com.cn. root.yuenimei.com.cn ( 20140713 28800 14400 604800 86400 )

@ 3600 IN NS ns.yuenimei.com.cn. ns 3600 IN A 203.195.207.202 beta 3600 IN A 203.195.207.102 collect 3600 IN A 203.195.207.102 control 3600 IN A 203.195.207.102 open 3600 IN A 203.195.142.82 resources 3600 IN A 203.195.169.119 svn 3600 IN A 203.195.207.101 wx 3600 IN A 203.195.143.215 xmpp 3600 IN A 203.195.143.220

chmod +r /var/named/* rndc-confge -a -r /dev/urandom service named start dig -t ns wx.yuenimei.com.cn 查看域名是哪个DNS服务器管理的 解决centos中You have new mail in /var/spool/mail/root的问题 echo "unset MAILCHECK" >> /etc/profile source /etc/profile

相关文章

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文

随机推荐

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文