欢迎光临
技术 共享 资源

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/i18nLANG="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.orgrm -rf  /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

查看yum源

yum repolist

更改yum源为国内源

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

修改CentOS默认yum源为阿里云

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

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

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

cd /etc/yum.repos.d/## 适用于CentOS7wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo## 适用于CentOS8wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

3.运行yum生成缓存

yum makecache

yum命令

查找yum已安装的包

yum list installed | grep "httpd"

查看正在运行的进程

ps -elf

查询某个进程服务的PID值

pidof <服务名>

设置系统环境变量

系统环境变量对全部用户有效。可以直接在/etc/profile文件中设置,但是Linux不建议在/etc/profile文件中设置系统环境变量。

在/etc/profile.d目录中增加环境变量脚本文件。

/etc/profile在每次启动时会执行/etc/profile.d下全部的脚本文件。/etc/profile.d比/etc/profile好维护,如在/etc/profile.d目录下增加my_env.sh脚本文件
其中配置

  1. #JAVA_HOME

  2. export JAVA_HOME=

  3. export PATH=$PATH:$JAVA_HOME/bin



  4. #HADOOP_HOME

  5. export HADOOP_HOME=

  6. export PATH=$PATH:$HADOOP_HOME/bin

  7. export PATH=$PATH:$HADOOP_HOME/sbin


  8. #MAVEN_HOME

  9. export MAVEN_HOME=

  10. export PATH=$PATH:$MAVEN_HOME/bin


  11. #HBASE_HOME

  12. export HBASE_HOME=

  13. export PATH=$PATH:$HBASE_HOME/bin

让环境变量生效

source /etc/profile

查看历史执行过的命令

history

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

查看大文件内容

more <文件名>

文件远程复制

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

  1. 命令格式:  


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


  3. DEMO1: scp -r  ./* [email protected]:/www/wwwroot/folder/

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


  5. DEMO2: scp -r [email protected]:/www/wwwroot/folder_remote /www/wwwroot/folder_local

  6. 表示从远程服务器拷贝文件到当前服务器,将会在当前服务器的/www/wwwroot/folder_local目录下,新建名称为folder_remote的文件夹


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




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 #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动

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

firewall-cmd --list-ports

centoos防火墙打开指定端口

firewall-cmd --zone=public --add-port=8384/tcp --add-port=22000/tcp --add-port=21027/udp --permanent#重启防火墙firewall-cmd --reload

设置selinux为diabled

vi /etc/sysconfig/selinux

改为:SELINUX=disabled

centos7屏蔽ip

  1. #屏蔽124.115.0.199这个IP

  2. iptables -I INPUT -s 124.115.0.199 -j DROP


  3. #屏蔽124.115.*.*这段IP

  4. iptables -I INPUT -s 124.115.0.0/16 -j DROP


  5. #屏蔽61.37.80.*这段IP

  6. iptables -I INPUT -s 61.37.80.0/24 -j DROP


  7. #屏蔽124.*.*.*这段IP

  8. iptables -I INPUT -s 124.0.0.0/8 -j DROP

打开屏蔽

#只要把 I 改为 D 就好了,然后后面可以写IP或者IP段iptables -D INPUT -s 124.0.0.0/8 -j DROP

查看已添加的iptables规则

iptables&nb
sp;-L -n

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示IP地址和端口号,不将ip解析为域名

更多:https://blog.csdn.net/weixin_40461281/article/details/83008976

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 phpkill -USR2 4890

方法二

Linux pkill 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程,类似于 killall 命令。
kill 命令杀死指定进程 PID,需要配合 ps 使用,而 pkill 直接对进程对名字进行操作,更加方便。

#结束所有的 php-fpm 进程pkill -9  php-fpm

查看软件安装路径

列出所有安装的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" ]thenecho "Nginx already running!"exit 0fisu - -c "service nginx start &"sleep 1running=`ps -ef | grep 'nginx' | grep -v grep`if [ "x" = "x$running" ]thenecho "Nginx start error!"#exit 1elseecho "Nginx r
estart succeed"#exit 0fi

设置环境变量

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

vi ~/.bashrc

在文件末尾添加:

export GOROOT=/usr/local/goexport 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

配置ssh免密登录

通常都是使用账号密码来实现ssh登录。ssh提供一种免密登录的方式:公钥登录。

服务器A免密登录服务器B

在服务器A上生成密钥文件:

ssh-keygen -f /root/.ssh/xxx

注意:xxx为密钥名字,可以任意填写。

命令执行后将会在/root/.ssh/文件夹下生成两个文件,一个文件是私钥(xxx,没有后缀名),一个是公钥(xxx.pub,后缀名是pub)

生成密钥对后,把公钥拷贝到服务器B上去,也就是把公钥的内容粘贴到服务器B的/root/.ssh/authorized_keys 文件里。

拷贝完公钥之后,我们来使用以下命令手动测试一下能否通过ssh登录远程的机器:

ssh -p 22 -i /root/.ssh/jenkins 服务器B的IP

能正常登录则代表没有问题,如果出现让你出入用户密码的情况则是密钥没有配置成功,配置成功的情况下登录是不需要密码的。

登录流程描述

服务器A要登录到服务器B,服务器A相当于是client,服务器B相当于是server。

用户管理

列出所有用户

cat /etc/passwd

显示当前用户

w

修改用户密码

passwd <用户名>

用户名可以省略不填,代表修改当前登录用户的密码。

设置密码过期时间

查看过期时间

chage -l root

设置密码过期

chage -d 2022-02-24 root   ##设置root用户最后一次修改密码的日期为2022年2月01日chage -M 90 root   ##密码过期时间为90天chage -M 99999 root ##密码永不过期

设置账号过期

chage -E "May 24, 2022" root ##账号过期时间为5月24号chage -E -1 root   ##设置账号永不过期

登录鉴权

vim /etc/pam.d/sshdvim /etc/pam.d/login

修改以上两个文件,在#%PAM-1.0的下面,即第二行加入如下代码:

auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root root_unlock_time=1800

代表连续输错密码3次,将锁定账户1个小时。

#解锁账户pam_tally2 -r -u root


赞(0) 打赏
未经允许不得转载:云穿透博客 » linux常用命令

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册