常用命令集合

■查找
[root@localhost ~]# find /inetpub/wwwroot/manong/ -name "f*d.php" # 查找/inetpub/wwwroot/manong/目录下以f开头且以d结尾的PHP文件
[root@localhost ~]# find /inetpub/wwwroot/manong/ -name "*.php" -type f | xargs grep -l "phpinfo" # 查找/inetpub/wwwroot/manong/目录下内容含有字符串“phpinfo”的PHP文件

■打包(tar)
[root@localhost ~]# tar -zcPf /inetpub/wwwroot/manong.20080808.tar.gz /inetpub/wwwroot/manong/ \
--exclude=/inetpub/wwwroot/manong/attachment
备注:把“/inetpub/wwwroot/manong/”目录(可以同时打包多个目录到一个文件,目录名之间用半角空格隔开)打包成“/inetpub/wwwroot/manong.20080808.tar.gz”文件,参数--exclude可以在打包时排除指定文件或目录(该参数可多次出现),注意如果是排除目录须目录名后面不要带“/”。

■解压(tar)
[root@localhost ~]# tar -xf /inetpub/wwwroot/manong.20080808.tar.gz
参数说明:
-x:解压*.tar.gz压缩包
-v:显示解压过程(这个参数一般不需要加)
-f:压缩文件名称(该参数必须放在最后,并且后面要跟压缩文件名称)

■打包(zip)
[root@localhost /]# zip -r demo.zip /demo/
参数说明:
-r:递归处理(将指定目录下的所有文件和子目录一并处理)
 
■解压(unzip)
[root@localhost /]# unzip -oq demo.zip
参数说明:
-o:不询问用户,直接覆盖原有文件
-q:安静模式(即不显示压缩过程)

在后台执行命令
[root@localhost /]# nohup 要执行的命令 & # 执行左边的命令后输入exit退出终端即可
 
■创建组和用户
[root@localhost ~]# groupadd nginx && useradd -s /sbin/nologin -g nginx -M nginx && \ # 创建nginx组和nginx用户
groupadd mysql && useradd -s /sbin/nologin -g mysql -M mysql && \ # 创建mysql组和mysql用户
groupadd php && useradd -s /sbin/nologin -g php -M php && \ # 创建php组和php用户
groupadd memcached && useradd -s /sbin/nologin -g memcached -M memcached && \ # 创建memcached组和memcached用户
groupadd git && useradd -s /bin/bash -g git -d /home/git git # 创建git组和git用户
参数说明:
-s:用户登录后使用的shell
-g:用户所属组
-M:不建立用户主目录,即不建立“/home/{用户名}/”目录
-d:用户登录后进入的目录,一般设为用户主目录

■查看所有用户
[root@localhost ~]# cat /etc/passwd |cut -f 1 -d :

■修改用户密码
[root@localhost ~]# passwd 用户名

■修改用户主要组
[root@localhost ~]# usermod -g 组名 用户名
 
■修改用户次要组(附加组)
[root@localhost ~]# usermod -a -G 次要组1,次要组2,次要组3 用户名 # 加入次要组,可同时加入多个次要组
[root@localhost ~]# gpasswd -d 用户名 次要组 # 移出次要组

■修改用户shell
[root@localhost ~]# usermod -s /sbin/nologin 用户名 # 方式一
[root@localhost ~]# chsh -s /sbin/nologin 用户名 # 方式二

■删除用户
[root@localhost ~]# userdel -r 用户名
参数说明:
-r:删除用户主目录(/home/用户名)
 
■删除组
[root@localhost ~]# groupdel 组名
 
■新建目录(make directory)
[root@localhost ~]# mkdir -p /dir1/dir2/dir3/dir4/dir5
参数说明:
-p:递归创建(用于创建多级目录),若不使用该参数,那么在创建多级目录时就必须手动逐层创建

■修改目录名或文件名,移动目录或文件也是使用该命令(相当于剪切粘贴)
[root@localhost ~]# mv -f /tmp/oldname.txt /tmp/newname.txt
参数说明:
-f:强制覆盖,不再询问用户是否要覆盖,使用此参数请注意提前备份相关目录或文件

■复制目录或文件
[root@localhost ~]# cp -rf /tmp/file.txt /tmp/file.bak.txt
参数说明:
-r:递归复制,对于复制目录如果不递归则只复制直接子目录,不会复制孙子及后代目录
-f:强制覆盖,不再询问用户是否要覆盖,使用此参数请注意提前备份相关目录或文件
 
■创建软链接(符号链接)
[root@localhost ~]# ln -sf /tmp/file.txt /tmp/file.txt.link
参数说明:
-s:链接类型为软链接(符号链接)
-f:如果链接已存在则将其删除并重新创建(相当于修改链接指向)
 
■上传或下载文件
[root@localhost ~]# rz -be # 上传文件
[root@localhost ~]# sz -be /tmp/filename.txt # 下载文件
参数说明:
-b:使用二进制格式传输,默认使用文本格式
-e:对所有控制字符转义
备注:为使文件上传到服务器后与客户端原始文件一致,最好同时设置-b和-e参数。

■往文件写入内容
[root@localhost ~]# echo 'hello, world' > /tmp/filename.txt # 覆盖写入
[root@localhost ~]# echo 'hello, world' >> /tmp/filename.txt # 尾部追加写入

■查看挂载情况
[root@localhost ~]# df

■查看磁盘使用情况
[root@localhost ~]# df -lh

■查看内存使用情况
[root@localhost ~]# free -h

■查看CPU信息
[root@localhost ~]# cat /proc/cpuinfo | grep "model name" | uniq # 型号
[root@localhost ~]# cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l # 数量
[root@localhost ~]# cat /proc/cpuinfo | grep "cpu cores" | uniq # 核心数

■查看操作系统版本
[root@localhost ~]# cat /etc/redhat-release

■查看分区信息
[root@localhost ~]# fdisk -l

■查看某个目录及其子目录的大小
[root@localhost ~]# du -h --max-depth=1 /inetpub/wwwroot/

■查看IP地址
[root@localhost ~]# ifconfig -a
[root@localhost ~]# ip addr

■重启网卡
[root@localhost ~]# systemctl restart network

■监控网络带宽
[root@localhost ~]# ifconfig # 查看网络名称,一般为eth0或eth1
[root@localhost ~]# iftop -i eth0

■获取PHP-FPM的进程数
[root@localhost ~]# netstat -napo |grep "php-fpm" | wc -l

■检查指定端口是否被占用(以8080端口为例)
[root@localhost ~]# netstat -anp |grep 8080

■查看443端口的连接情况
[root@localhost ~]# netstat -an |grep 'ESTABLISHED' |grep -i '443' |wc -l # 仅显示连接数量
[root@localhost ~]# lsof -i:443 # 显示详细连接信息
 
■查看TCP的连接情况
[root@localhost ~]# netstat -an |grep 'ESTABLISHED' |grep 'tcp' |wc -l # 仅显示连接数量

■查看服务器当前时间
[root@localhost ~]# date -d today +"%Y年%m月%d日 %H:%M:%S"
 
■同步服务器时间
[root@localhost ~]# ntpdate time.nist.gov
 
■搜索软件包
[root@localhost ~]# yum list *redis*
 
■升级软件包及内核
[root@localhost ~]# yum update -y # 此命令会保留旧版本软件包
[root@localhost ~]# yum upgrade -y # 此命令会删除旧版本软件包
备注:升级软件包及内核可能会出现软件无法运行或系统不稳定等各种问题,所以生产环境请勿轻易执行,如非要执行也要使用“yum update”保留旧版本软件包。

■一行命令安装服务器常用软件包
[root@localhost ~]# yum install -y asciidoc aspell-devel autoconf automake bison boost bzip2 bzip2-devel c-ares-devel cifs-utils cmake curl curl-devel cyrus-sasl db4-devel dos2unix e2fsprogs e2fsprogs-devel enchant-devel epel-release expat-devel firewalld freetype freetype-devel ftp gcc gcc-c++ gd gd2 gd2-devel gdbm-devel gd-deve gd-devel gettext gettext-devel git glib2 glib2-devel glibc glibc-devel gmp-devel iftop iptables-services jwhois krb5 krb5-devel lbpng-devel libaio libc-client-devel libcurl-devel libev-devel libevent libevent-devel libicu-devel libidn libidn-devel libjpeg libjpeg-devel libmcrypt libmcrypt-devel libmemcached-devel libpng libpng-devel librabbitmq librabbitmq-devel libsodium libsodium-devel libtidy libtidy-devel libtool libvpx-devel libwebp libwebp-devel libwebp-tools libX11-devel libxml2 libxml2-devel libXpm-devel libxslt-devel libzip libzip-devel lrzsz lsb lsof lzip mailx make mbedtls mbedtls-devel mlocate mysql-devel ncurses ncurses-devel net-snmp-devel net-tools nss_ldap ntp numpy oniguruma oniguruma-devel openldap openldap-clients openldap-devel openldap-servers openssl openssl-devel pam pam-devel pcre2 pcre2-devel pcre-devel perl-CPAN policycoreutils-python postfix postgresql-devel protobuf pspell-devel python-devel python-pip python-virtualenv readline-devel rsync samba sqlite-devel swig tcl telnet tidy unixODBC-devel unzip vim wget xmlrpc-c xmlrpc-c-devel xmlto zip zlib zlib-devel dstat tree sendmail lldb glibc-devel.i686 libstdc++-devel.i686

Copyright © 2024 码农人生. All Rights Reserved