Linux系统常用命令

一、网络

1、修改IP地址:ifconfig eth0 192.168.1.101 netmask 255.255.255.0       vi /etc/sysconfig/network-scripts/ifcfg-eth0(需重启网卡)
   修改网关地址:route add default gw 192.168.1.1        vi /etc/sysconfig/network-scripts/ifcfg-eth0(重启网卡)
   修改DNS:    vi /etc/resolv.conf (重启网卡) 
   修改主机名:hostname test1        vi /etc/sysconfig/network
2、重启网络服务: service network restart    
                /etc/init.d/network restart
                systemctl restart network  
3、增加一条路由: ip route add 10.0.0.0/8 via 10.12.26.1 dev eth0
  删除一条路由: ip route del 10.0.0.0/8 via 10.12.26.1

4、网络诊断命令
tcpdump -i ens33 -nn port 22:监听网卡ens33的22端口网络数据
tcpdump -i eth0 -nn ’port 22 and src host 192.168.1.100’:监听网卡eth0网口22端口上目标来源为192.168.1.100的数据包
nc 192.168.1.105 80:查看192.168.1.105的80端口是否打开
netstat -nat |awk '{print $6}' |sort|uniq -c|sort -rn:查看TCP连接状态
netstat -nlpt|grep php-fpm
netstat -r:显示内核路由信息
netstat -anlp | grep 80 | grep tcp | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | head -n 20:查找请求数20个IP

netstat中state状态解释:
CLOSED:初始无状态连接;
LISTEN:监听状态,等待远程机器连接请求;
SYN_SEND:TCP握手期间,主动端发送SYN包后进入SYN_SEND状态,等待对方ACK包;
SYN_RECV:TCP握手期间,主动端收到SYN包后进入SYN_RECV状态;
ESTABLISHED:完成三次握手后,主动连接端进入ESTABLISTENED状态,此时TCP连接已经建立,可以进行通信了。
FIN_WAIT_1:在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态;
FIN_WAIT_2: 在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态;
TIME_WAIT: 在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包;
CLOSING:在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态;
CLOSE_WAIT:在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态;
LAST_ACK:在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。

strace -cp <PID>:跟踪显示PID进程执行操作的时间
strace -T -e clone -p <PID>:单独跟踪进程执行clone操作的情况
strace -c -p $(pgrep -n php-cgi):查看php进程各操作执行情况

5、cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 更改时区

二、用户

1、添加用户和用户组:groupadd mysql    useradd -g mysql mysql   
groupadd esuser -g 2001 useradd -g esuser -u 2001 -d /home/esuser -s /bin/bash esuser
删除用户及家目录文件:userdel -r
显示所有属组:/etc/group
显示用户所有用户名:/etc/shadow
2、修改密码:passwd
  echo "123456" | passwd --stdin $USERNAME &>/dev/null 非交互式的方式设置密码

三、开关机

1、立刻关机:shutdown -h now    shutdown -h 0
   定时延时:shutdown -h +30    shutdown -h 10:00
   重启:shutdown -r now   reboot
   挂起:sudo pm-suspend
   休眠:sudo pm-hibernate

四、Yum和RPM

   vim /etc/yum.repos.d/CentOS-Base.repo :查看yum源配置路径
   yum -y install packagename   安装指定软件
   yum update packagename   更新指定软件
   yum -y remove packagename   删除软件
   yum search packagename   查找软件
   yum list installed    列出所有已经安装的软件
   rpm -qa   列出所有已经安装的软件
   yum list extras   列出所有已安装但不在yum repository内的软件
   yum info packagename    列出软件信息
   yum clean packagename   清除缓存目录下的软件包
   yum clean all   清除缓存目录下所有的软件包
   yum check-update   更新包数据库

五、基本命令

1、cp 几种用法:-l 创建文件链接而非复制文件, -p复制过程中保留文件属性,-R递归复制文件,-s创建符号链接而非复制文件
2、cat 几种用法:-n 每行前加行号, -b只在文本文件前加行号 
3、sort -n file把文件中数字识别成数字而不是字符,并且将它们按值进行排序;
   sort -M file按照月份排序;    查看目录下文件大小时常用   du -s * | sort -nr
4、rename '.txt' '.txt.bak' *.txt  重命名文件名
5、chkconfig --list:查看当前所有服务;
   chkconfig --list atd:查询atd服务当前运行的状态;
   chkconfig --list |grep on:查看当前服务的运行状态;
   chkconfig NetworkManager off  :关闭NetworkManager开机自启动;
   service sshd stop:停止ssh服务;
6、curl -sSL https://get.docker.com/ | sh     
7、grep -E 'word1|word2' 文件名
8、seq 1 10:产生1-10的数字
   seq -w 10:产生两位的01-10
   seq -f "str%03g" 1 10
9、cat /proc/version 显示linux内核版本信息
10、显示BIOS信息:dmidecode -t 0
11、显示BMC信息:ipmitool -I open mc info
12、显示IPMI地址:ipmitool lan print
13、清理缓存
  
页面缓存:echo 1 > /proc/sys/vm/drop_caches
目录缓存:echo 2 > /proc/sys/vm/drop_caches
所有缓存:echo 3 > /proc/sys/vm/drop_caches
14、定时任务: */2 * * * * /bin/bash /home/package/leiwenhui/file_shell/example10.sh
15、时间同步:/usr/sbin/ntpdate time.nist.gov rdate -s time-b.nist.gov
16、时间格式:date "+%Y-%m-%d %H:%M:%S"
17、大盘分区挂载
parted /dev/adb
yum -y install xfsprogs kmod-xfs
mklabel gpt
mkpart primary 0 -1
mkfs.xfs /dev/sdb1
mkdir -p /data
18、zip压缩
zip -s 800m java_pid32346.zip --out bj4006.zip

六、DNS

1、清理DNS缓存
/etc/rc.d/init.d/nscd restart
service nscd restart
2、跟踪DNS解析过程
dig +trace www.baidu.com

七、防火墙

IPTABLES:
路由前:PREROUTING
转发:FORWARD
路由后:POSTROUTING
到本机某进程的报文:PREROUTING --> INPUT
由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
由本机某进程发出的报文:OUTPUT --> POSTROUTING

表的概念:定义的所有规则都存在于这4张表中
filter表:负责过滤功能,防火墙,对应内核模块:iptables_filter
nat表:网络地址转化功能,对应内核模块:iptables_nat
mangle表:拆解报文,做出修改,并重新封装的功能,对应内核模块:iptables_mangle
raw表:关闭nat表上启用的连接跟踪机制,对应iptables_raw
prerouting链中的规则存放与三张表中,而这三张表的规则执行的优先级如: raw --> mangle --> nat
iptables为我们定义了4张表,当他们处于同一条链时,执行的优先级:raw --> mangle --> nat --> filter

处理动作:
ACCEPT:允许数据包通过
DROP:直接丢弃数据包,不做任何回应信息
REJECT:拒绝数据包通过,必要时会给数据发送端发送一个响应信息,客户端刚请求就会收到拒绝信息
SNAT:源地址转换,解决内网用户使用同一个公网上网的问题
DNAT:目标地址转换,
REDIRECT:在本机做端口映射。

  1
.允许https服务通过public区,要求立即生效或永久生效 firewall-cmd --zone=public -add-service=https firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload 2.不再允许http服务流量通过public区域,要求立即生效且永久生效: firewall-cmd --permanent --zone=public --remove-servicce=https firewall-cmd --reload 3.允许8080与8081端口流量通过public区域 firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp firewall-cmd --reload 4.查看端口操作是否成功 firewall-cmd --zone=public --list-port 5.将eno167网卡的区域修改为external,重启后生效 firewall-cmd --permanent --zone=external --change-interface=eno167 6.查看firewalld服务当前所使用的区域: firewall-cmd --get-default-zone firewall-cmd --get-zone-of-interface=eno1672228 7.把firewalld服务中eno16777728网卡的默认区域修改为external,并在系统重启后生效。 firewall-cmd --permanent --zone=external --change-eno1672228 firewall-cmd --get-zone-interface=eno1672228 firewall-cmd --permanent --get-zone-of-interface=eno1672228 iptables命令 1.iptables -L: 显示防火墙规则 2.iptables -F:清空防火墙规则 3.iptables -P INPUT DROP:把input规则链的默认策略设置为拒绝 4.iptables -I INPUT -p icmp -j ACCEPT:允许icmp协议通过 5.iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT:只允许指定网段的主机访问本机22端口,拒绝来自其它所有主机的流量。 6.iptables -A INPUT -p tcp --dport 22 -j REJECT 7.向INPUT规则链中添加拒绝所有人访问本机12345端口的策略规则 iptables -I INPUT -p tcp --dport 12345 -j REJECT iptables -I INPUT -p udp --dport 12345 -j REJECT
   iptables -A INPUT -p tcp --dport 22 -j ACCEPT
   iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT iptables
-L 8.向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则: iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT iptables -L 9.向INPUT规则链中添加拒绝所有主机访问本机1000-1024端口的策略规则: iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT iptables -A INPUT -p udp --dport 1000:1024 -j REJECT iptables -L service iptables save:永久保存 修改防火墙配置文件: /etc/sysconfig/iptables 重启并加载配置到内核: /etc/init.d/iptables restart; sysctl -p
  10、如何将本地80 端口的请求转发到8080 端口,当前主机IP 为192.168.2.1
iptables -A PREROUTING -d 192.168.2.1 -p tcp -m tcp -dport 80 -j DNAT-to-destination 192.168.2.1:8080

八、nginx

    安装nginx,三大功能:反向代理、负载均衡、静态服务器。
    如上述配置文件所示,主要由6个部分组成:
    main:用于进行nginx全局信息的配置
    events:用于nginx工作模式的配置,表示事件驱动型配置项的
    http:用于进行http协议信息的一些配置
    server:用于进行服务器访问信息的配置
    location:用于进行URL访问属性的配置
    upstream:用于进行负载均衡的配置
    配置反向代理:proxy_pass
    server {
        listen 80;
        server_name localhost;
        location /
    }
    
    yum -y install pcre pcre-devel openssl openssl-devel
    groupadd nginx
    useradd -g nginx nginx
    chmod +x nginx-1.12.2.tar.gz
    cd nginx-1.12.2/
    ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    make && make install
    ln -s /usr/local/nginx-1.12.2 /usr/local/nginx
    ./nginx -t 测试nginx配置是否正确
    ./nginx -s reload

九、MySQL

1、mysql数据库备份和导入数据库
  mysqldump -uroot -plwh0825 databasename > backup.sql
  mysql -uroot -plwh0825 target.sql < backup.sql
  备份所有数据库并打包
  30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz
  只备份表结构
  mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump
2、mqsql安装过程

    解压安装包:tar zxf mysql-5.6.17-linux-glibc2.5-i686.tar.gz
    复制解压后的目录到安装路径下:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
    添加系统mysql组和mysql用户:groupadd mysql useradd -r -g mysql mysql
    修改当前目录拥有者为mysql用户:chown -R mysql:mysql ./
    执行安装脚本(初始化数据库):./scripts/mysql_install_db --user=mysql
    修改当前目录拥有者为root用户:chown -R root:root ./
    修改data目录拥有者为mysql用户:chown -R mysql:mysql data
    为mysql客户端创建默认路径的软链接:ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
    为mysql用户设置密码:mysqladmin -u root password 'lwh0825'
    修改mysql的root密码:./bin/mysqladmin -u root password
    设置mysql服务自启动:
    chkconfig --add mysqld
    chkconfig mysqld on
    service mysqld start

十、系统命令

1、检查Linux日志
    /var/log/messages:系统日志
    /var/log/secure:系统访问日志
2、查看cpu信息
    cat /etc/cpuinfo | grep "physical id" | sort | uniq | wc -l  :查看物理CPU的个数
    cat /etc/cpuinfo | grep "processor" | wc -l: 查看逻辑CPU的个数
    cat /etc/cpuinfo | grep "cores" | uniq :查看CPU核数
3、cpu使用率
    top:实时显示系统当前负载、运行进程和CPU使用率,
         %us:表示用户空间程序的cpu使用率;
         %sy:表示系统空间cpu使用率,主要是内核程序;
         %ni:表示用户空间通过nice调度过的程序的cpu使用率;
         %id:空闲cpu
         按键1打开CPU列表
         shift+p:以CPU使用率进行排序         
    sar -u -o 1 5:采集cpu使用信息,共5次,每秒1次。
    sar -q 1:采集cpu信息,每秒一次。
    iostat -c 1 5:采集cpu使用信息,共5次,每秒1次。
    ps -aux | grep -v grep:查看占用cpu和内存最多的进程。
    dstat --top-mem --top-cpu --top-io:显示进程使用cpu的情况
    dstat -c:显示硬中断、软中断等信息。
    vmstat:
    ab -n 10000 -c 300 http://127.0.0.1/index.html:压力测试300并发。
    mpstat -P ALL 1:查看每个CPU负载是否均匀
    
4、内存使用率
    free -m:内存 -> 缓存cache -> 交换分区swap
5、磁盘使用率
    df -h

6、获取不以#号开头的行
cat /tmp/hehe|grep ^[^#] >> /tmp/rs

7、获取主机SN
dmidecode -t 1|grep 'Serial Number'|awk -F: '{print $2}'|sed 's/ //g'

8、wget http://10.0.0.0/tools/deploy-agent-prod2.sh -O deploy-agent-prod.sh 

9、du -h --max-depth=5 /data | awk '$1~/G/ {print $0}' | sort -nr

10、python -m SimpleHTTPServer 8080 使用python启动一个临时的http服务进程

11、cat /tmp/test | tr -d 'gb' | awk '{sum+=$1} END {print sum}'  求和

十一、find命令

    find /alidata/www/shop -type f | xargs grep "用户记录"    
    find . -type f -atime -7 搜索最近七天内被访问过的所有文件
    find . -type f -atime 7 搜索恰好在七天前被访问过的所有文件
    find . -type f -atime +7 搜索超过七天内被访问过的所有文件
    find . -type f -amin +10 搜索访问时间超过10分钟的所有文件
    find . -type f -newer file.log 找出比file.log修改时间更长的所有文件
    find . -type f -size +10k 搜索大于10KB的文件
    find . -type f -size -10k 搜索小于10KB的文件
    find . -type f -name "*.txt" -delete 删除当前目录下所有.txt文件
    find . -type f -name "*.php" ! -perm 644 找出当前目录下权限不是644的php文件

十二、IPMI

 1、IPMI获取服务器信息
    ipmitool -I lan -H $HOST -U $USER -P $PASSWD lan print |grep "MAC Address"  获取服务器网络信息
    ipmitool fru print 0
    ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power on
    ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power off
    ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power cycle
    ipmitool -I lanplus -H 10.88.1.181 -U sysadmin -P admin power reset
    ipmitool -I lanplus -H 10.6.29.29 -U admin -P admin mc infofind

 

posted @ 2019-01-14 20:54  蘇氏加多寶  阅读(409)  评论(0编辑  收藏  举报