linux常用命令

目录 隐藏
文章目录 收缩

此文将长期更新,用于记录经常用到的却又容易忘记的linux命令。

Linux基础

查看Linux发行版本

cat /etc/issue

查看centos版本

cat /etc/redhat-release

查看32位还是64位

getconf LONG_BIT

查询本机IP

除了常用的ifconfig外,还可以:

curl ifconfig.me

查看CPU型号

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c

修改操作系统语言

#编辑文件保存并退出
vi  /etc/sysconfig/i18n
LANG="en_US.UTF-8"
#使其立即生效
source /etc/sysconfig/i18n

注意:centos7的环境对应的配置文件为:
/etc/locale.conf

修改时间

快速同步北京时间

tzselect

按照要求选择 5 -> 9 -> 1 -> 1 即可配置成中国北京的时间

使用ntpdate

#如果没有安装ntpdate需要先安装
yum install ntpdate
#与阿里云服务器时间同步
ntpdate ntp1.aliyun.com    //直接用域名同步中国上海时间 是阿里云的服务器
#同时还可以添加定时任务,每天定时同步时间

手动修改时间

date -s "2020-04-11 18:44:50"
hwclock -w  #将时间写入bios避免重启失效

Centos7设置系统时间为北京时间

cp /etc/localtime /etc/localtime.org
rm -rf  /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

查看yum源

yum repolist

更改yum源为国内源

默认带的yum镜像源一般都是国外的,导致在线安装的时候,速度很慢。这个时候需要你更换yum镜像源为国内的。

修改CentOS默认yum源为阿里云

1.备份系统自带的yum镜像源

cd /etc/yum.repos.d/
mkdir bak
mv *.repo bak

2.下载对应yum源配置文件

cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3.运行yum生成缓存

yum makecache

yum命令

查找yum已安装的包

yum list installed | grep "httpd"

查看正在运行的进程

ps -elf

查询某个进程服务的PID值

pidof <服务名>

查看历史执行过的命令

history

如需重复执行,输入:!<ID>

查看大文件内容

more <文件名>

文件远程复制

从A服务器复制文件到B服务器(A、B服务器都是Linux操作系统)

命令格式:  

scp  -P 22 -r  remote_username@remote_ip:remote_folder  local_folder

DEMO1: scp -r  ./* root@47.110.xxx.xxx:/www/wwwroot/folder/
表示将运行当前命令所在目录下的所有文件上传至远程服务器(47.110.xxx.xxx)的/www/wwwroot/folder/文件夹

DEMO2: scp -r root@47.110.xxx.xxx:/www/wwwroot/folder_remote /www/wwwroot/folder_local
表示从远程服务器拷贝文件到当前服务器,将会在当前服务器的/www/wwwroot/folder_local目录下,新建名称为folder_remote的文件夹

指定了用户名,命令执行后需要输入用户密码;  



apache相关

查看apache连接数

1.查看apache当前并发访问数:

netstat -an | grep ESTABLISHED | wc -l

2.查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):

ps aux|grep httpd|wc -l

3.查看80端口占用数

netstat -nat|grep -i "80"|wc -l

防火墙相关

CentOS6.5查看防火墙的状态:

service iptable status

CentOS 7.2查看防火墙的状态:

firewall-cmd --state

关闭防火墙:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

CentOS 7 查看已经开放的端口:

firewall-cmd --list-ports

设置selinux为diabled

vi /etc/sysconfig/selinux

改为:SELINUX=disabled

zip、tar命令

zip压缩:

zip -q -r 压缩包名.zip 压缩的路径

例如:
将/home/data 这个目录下的所有文件打包压缩为当前目录下的data.zip

zip -q -r data.zip /home/data

tar压缩

例如要将/home/img目录压缩到当前目录下:

tar -czf img.tar.gz -C /home/ img

tar解压

tar -xvf 压缩包名.tar.gz

备份数据库

新建一个dbbak.sh,内容如下:

filename=`date +%y%m%d`
mysqldump --opt -h127.0.0.1 数据库名 -u数据库用户 -p数据库密码 | gzip > /home/mysqlbak/bak$filename.sql.gz

添加可执行权限:

chmod u+x dbbak.sh

优雅的重启php-fpm

首先查看php-fpm 进程

ps -aux | grep php
kill -USR2 4890

查看软件安装路径

列出所有安装的httpd

rpm -qa | grep httpd

软件是否安装;例如:httpd是否安装

rpm -q | grep httpd

rpm -ql 列出软件包安装的文件

rpm -ql httpd

可以直接使用 rpm -qal |grep mysql 查看mysql所有安装包的文件存储位置

rpm -qal |grep httpd #查看httpd所有安装包的文件存储位置

参考:https://www.jb51.net/os/RedHat/359036.html

定时任务

列出所有的定时任务

crontab -l

修改定时任务

crontab -e

说明

例子:用dmtsai的身份在每天的12:00发信给自己

0    12   *   *   *   mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc

查看CPU和内存占用

CPU占用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k3|head -10

内存消耗最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -10

top命令

按下键盘上的某个键位,top会有不同的反应。比如以下8个。

1

按下数字1,可以显示每个cpu的运行情况。可以看到机器上有多少个cpu,机器nx的话整个屏幕都被占满了。

z

让top进入高亮模式,比如上面的红红的终端字体。再次按可以toggle。

b

高亮显示正在运行的命令,s为R的进程。图中正在运行的命令就是top自己。

c

显示COMMAND列的所有信息,包括它的参数。

t

更直观的方式展示task/cpu信息,像htop一样。

m

更置换的方式展示mem信息,像htop一样。

M

根据内存的使用率进行排序。%MEM列。

P

根据CPU的使用率进行排序。%CPU列。是的,这个没有进行录制。

查找大文件夹和目录

使用以下命令找出占用磁盘空间体积较大的文件夹和目录:

du -s * | sort -nr | head #显示前10个占用空间最大的文件或目录 
du -hm --max-depth=2 | sort -nr | head -12 #显示前12个占用空间大的目录(包括二级目录) 

yum检查已安装的php版本

yum list installed | grep php

网络命令

查看本机开启的端口

netstat -tulnp

查看所有连接

netstat -an

统计正在连接的网络连接数量

netstat -an | grep "ESTABLISHED" | wc -l

关机重启命令

shutdown 命令

最安全的关机重启命令,推荐使用

shutdown [选项] 时间 [警告信息]

选项:
-c: 取消已经执行的 shutdown 命令
-h: 关机
-r: 重启

立即关机:

shutdown -h now

查看最近开机、重启时间

  • 查看最近开机时间
uptime -s
  • 查看最近重启时间
last rboot

查看最近登录情况(last命令)

last作用是显示近期用户或终端的登录情况。通过last命令查看该程序的log,管理员可以获知谁曾经或者企图连接系统。

last

  • 字段介绍:

           第一列:用户名

           第二列:终端位置

           第三列:登录ip或者内核

           第四列:开始时间

           第五列:结束时间(still login in 还未退出  down 直到正常关机 crash 直到强制关机)

           第六列:持续时间

  • 显示最近n条
last  -n

监控服务并自动启动

以nginx为例:

running=`ps -ef | grep 'nginx' | grep -v grep`
if [ "x" != "x$running" ]
then
echo "Nginx already running!"
exit 0
fi
su - -c "service nginx start &"
sleep 1
running=`ps -ef | grep 'nginx' | grep -v grep`
if [ "x" = "x$running" ]
then
echo "Nginx start error!"
#exit 1
else
echo "Nginx restart succeed"
#exit 0
fi

设置环境变量

这里以设置GO的环境变量为例:

vi ~/.bashrc

在文件末尾添加:

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

保存后,让环境变量生效:

source ~/.bashrc

挂载光盘

  • 挂载
mount /dev/cdrom /mnt/cdrom
  • 卸载
umount /dev/sr0

查看本机IP

curl https://myip.ipip.net

文件操作

替换文件中的字符串

sed -i 's/str1/str2/g'  filename

str1: 被替换的字符串
str2: 替换成的字符串

查看日志

最近使用service network restart时报错了,通过以下语句查看具体的出错信息:

cat /var/log/messages | grep network

发表评论

电子邮件地址不会被公开。 必填项已用*标注