Linux 服务器常用命令

前言

本文档中列出的日常维护指令,用于Linux服务器维护人员做参考手册使用,由于技术更新越来越快,需要掌握使用的工具也越来越多,不同的工具使用指令也不同,很难记住那么多指令,所以做了这个手册,这样不用总是问百度,节省维护人员的时间。

系统信息

查看系统版本

# 查看系统版本信息
[root@centos-82 ~]#  cat /proc/version
Linux version 3.10.0-1127.19.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Tue Aug 25 17:23:54 UTC 2020
[root@centos-82 ~]# 
# 查看系统发行信息
[root@centos-82 ~]# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
[root@centos-82 ~]# 

查看CPU

[root@centos-82 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 61
model name      : Intel Core Processor (Broadwell, IBRS)
stepping        : 2
microcode       : 0x1
cpu MHz         : 2903.996
cache size      : 4096 KB
physical id     : 0
siblings        : 1
core id         : 0
cpu cores       : 1
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc rep_good nopl eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm 3dnowprefetch invpcid_single ssbd ibrs ibpb fsgsbase bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap xsaveopt md_clear spec_ctrl
bogomips        : 5807.99
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:

查看内存

[root@centos-82 ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3789         763        2389          56         636        2749
Swap:          2047           0        2047

查看硬盘

# 查看硬盘使用情况
[root@centos-82 ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   57M  1.8G    3% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  8.5G  8.6G   50% /
/dev/sda1               1014M  193M  822M   19% /boot
tmpfs                    379M     0  379M    0% /run/user/0
# 查看当前各文件及目录大小
[root@centos-82 app]# du -sh ./* 
93M     ./auth-1.0.0.jar
50M     ./eureka-1.0.0.jar
4.0K    ./java-one.sh
4.0K    ./java.sh
0       ./log

查看Mysql进程

ps -aux|grep mysql
​

Port 操作

1、查看端口占用

[root@centos-82 app]# lsof -i:80
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    23041 root   34u  IPv6 847818      0t0  TCP *:http (LISTEN)

IP 操作

1、查看本机IP

# 外网IP
[root@centos-82 ~]# curl cip.cc
IP      : 117.89.185.155
地址    : 中国  江苏  南京
运营商  : 电信

数据二  : 江苏省南京市 | 电信

数据三  : 中国江苏南京 | 电信

URL     : http://www.cip.cc/117.89.185.155
# 内网IP
[root@centos-82 ~]# ifconfig -a
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.82  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::5054:ff:fe05:e1be  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:05:e1:be  txqueuelen 1000  (Ethernet)
        RX packets 28656432  bytes 2446268713 (2.2 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 28119416  bytes 1735693988 (1.6 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 68905  bytes 16765566 (15.9 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 68905  bytes 16765566 (15.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Firewalld 防火墙

1、查看防火墙服务状态

[root@centos-82 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 三 2021-06-02 09:30:24 CST; 5 days ago
     Docs: man:firewalld(1)
 Main PID: 654 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─654 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid

6月 02 09:30:24 centos-82 systemd[1]: Starting firewalld - dynamic firewall daemon...
6月 02 09:30:24 centos-82 systemd[1]: Started firewalld - dynamic firewall daemon.
6月 02 09:30:25 centos-82 firewalld[654]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a ...ng it now.
Hint: Some lines were ellipsized, use -l to show in full.
[root@centos-82 ~]# 

2、查看防火墙状态

[root@centos-82 ~]# firewall-cmd --state
running

3、防火墙启动、关闭、重启

# 启动
[root@centos-82 ~]# service firewalld start
Redirecting to /bin/systemctl start firewalld.service
[root@centos-82 ~]# 
# 重启
[root@centos-82 ~]# service firewalld restart
Redirecting to /bin/systemctl restart firewalld.service
[root@centos-82 ~]# 
# 关闭
[root@centos-82 ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service

4、查询、开放、关闭端口

# 查询8080是否开放
[root@centos-82 ~]# firewall-cmd --query-port=8080/tcp
no
# 开放8080端口
[root@centos-82 ~]# firewall-cmd --permanent --add-port=8080/tcp
success
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

# 重启防火墙(修改配置后要重启防火墙)
[root@centos-82 ~]# firewall-cmd --reload
success

File 操作

1、新建

# 创建目录 test
[root@centos-82 /]# mkdir test
[root@centos-82 /]# ls
bin  boot  data  dev  dump.rdb  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  test  tmp  usr  var
[root@centos-82 /]# 
# 新建文件 tt.txt
[root@centos-82 test]# touch tt.txt
[root@centos-82 test]# ll
总用量 0
-rw-r--r-- 1 root root 0 6月   7 10:02 tt.txt
[root@centos-82 test]# 

2、删除

删除文件tt.txt ,会要求用户确认

rm  tt.txt 

强制删除文件tt.txt ,不需要确认

rm -f  tt.txt

强制删除文件目录test,不需要确认

rm -rf  test

删除指定目录下指定文件

find  -name  .svn |xargs rm -rf

删除某个目录下的文件名为 sy.log 开头的所有文件

rm -rf /home/www/logs/sy.log*

删除指定名称的文件或文件夹

find -type d | grep .svn$ | xargs rm -r       

查找某个目录下更改时间超过7天的文件并删除它们

find . -type f -mtime +7 -print | xargs -i echo '"{}"' | xargs rm

3、拷贝

将目录test里的文件tt.txt 复制到 /var/www.txt

cp  /test/tt.txt  /var/www.txt

将目录test里的所有文件 复制到 /var/test

cp -r  /test  /var/test

4、搜索

# 搜索nginx配置文件的位置
[root@centos-82 /]# whereis nginx.conf
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/man/man8/nginx.8.gz
[root@centos-82 /]# 
# 搜索目录/etc/nginx/下以nginx文件名前缀的文件
[root@centos-82 test]# find /etc/nginx/ -name nginx.*
/etc/nginx/nginx.conf.bak3
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.bak1
/etc/nginx/nginx.conf.bak2
[root@centos-82 test]# 

5、编辑 vim

查看文件: cat file1.txt

打开文件:vi file1.txt

vi相关命令:

  • i 切换到输入模式,以输入字符。

  • ESC,退出输入模式,切换到命令模式

  • : 切换到底线命令模式,以在最底一行输入命令。

输入模式

在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符

  • ENTER,回车键,换行

  • BACK SPACE,退格键,删除光标前一个字符

  • DEL,删除键,删除光标后一个字符

  • 方向键,在文本中移动光标

  • HOME/END,移动光标到行首/行尾

  • Page Up/Page Down,上/下翻页

  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有(已经省略了冒号):

第一部分:一般模式可用的光标移动、复制粘贴、搜索替换等

移动光标的方法
h 或 向左箭头键(←)光标向左移动一个字符
j 或 向下箭头键(↓)光标向下移动一个字符
k 或 向上箭头键(↑)光标向上移动一个字符
l 或 向右箭头键(→)光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f]屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]屏幕『向下』移动半页
[Ctrl] + [u]屏幕『向上』移动半页
+光标移动到非空格符的下一行
-光标移动到非空格符的上一行
n<space>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]移动到这一行的最后面字符处(常用)
H光标移动到这个屏幕的最上方那一行的第一个字符
M光标移动到这个屏幕的中央那一行的第一个字符
L光标移动到这个屏幕的最下方那一行的第一个字符
G移动到这个档案的最后一行(常用)
nGn 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg移动到这个档案的第一行,相当于 1G 啊! (常用)
n<Enter>n 为数字。光标向下移动 n 行(常用)
搜索替换
/word向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word向光标之上寻找一个字符串名称为 word 的字符串。
n这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/gn1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g:%s/word1/word2/g从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc:%s/word1/word2/gc从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
删除、复制与贴上
x, X在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nxn 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd删除游标所在的那一整行(常用)
nddn 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G删除光标所在到第一行的所有数据
dG删除光标所在到最后一行的所有数据
d$删除游标所在处,到该行的最后一个字符
d0那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy复制游标所在的那一行(常用)
nyyn 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G复制游标所在行到第一行的所有数据
yG复制游标所在行到最后一行的所有数据
y0复制光标所在的那个字符到该行行首的所有数据
y$复制光标所在的那个字符到该行行尾的所有数据
p, Pp 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J将光标所在行与下一行的数据结合成同一行
c重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u复原前一个动作。(常用)
[Ctrl]+r重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
.不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)

第二部分:一般模式切换到编辑模式的可用的按钮说明

进入输入或取代的编辑模式
i, I进入输入模式(Insert mode): i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
a, A进入输入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O进入输入模式(Insert mode): 这是英文字母 o 的大小写。o 为在目前光标所在的下一行处输入新的一行; O 为在目前光标所在的上一行处输入新的一行!(常用)
r, R进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]退出编辑模式,回到一般模式中(常用)

第三部分:一般模式切换到指令行模式的可用的按钮说明

指令行的储存、离开等指令
:w将编辑的数据写入硬盘档案中(常用)
:w!若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q离开 vi (常用)
:q!若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ这是大写的 Z 喔!如果修改过,保存当前文件,然后退出!效果等同于(保存并退出)
ZQ不保存,强制退出。效果等同于 :q!
:w [filename]将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]将 n1 到 n2 的内容储存成 filename 这个档案。
:! command暂时离开 vi 到指令行模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!

JDK 操作

1、运行jar包

  • 方式一

java -jar shareniu.jar

特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

那如何让窗口不锁定?

  • 方式二

java -jar shareniu.jar &

&代表在后台运行。

特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。

继续改进,如何让窗口关闭时,程序仍然运行

  • 方式三

nohup java -jar shareniu.jar &

nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。

  • 方式四

nohup java -jar shareniu.jar >/dev/null &

解释下 >temp.txt

command >out.file

command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。

可通过jobs命令查看后台运行任务

一般用第三种或第四种方式运行,在后台运行,并且关闭当前ssh窗口不会受影响

2、关闭jar包进程

先使用命令 ps aux|grep eureka 列出所有的包名中含有eureka的jar运行进程

[root@centos-82 apptest]# ps aux|grep eureka
root      5247  3.3  4.9 3072280 192168 pts/0  Sl   09:37   0:16 java -jar eureka-1.0.0.jar
root      5374  0.0  0.0 112824   980 pts/0    R+   09:46   0:00 grep --color=auto eureka
root     12690  0.9  6.2 3076516 242212 ?      Sl   6月04  35:23 java -jar /etc/nginx/app/eureka-1.0.0.jar
[root@centos-82 apptest]# 

然后,使用 kill -9 pid

[root@centos-82 apptest]# kill -9 5247
[root@centos-82 apptest]# 

Virsh 操作

virsh是kvm虚拟机常用的管理工具

1、查看虚拟机列表

查看运行的虚拟机:virsh list

查看所有的虚拟机(关闭和运行的虚拟机):virsh list --all

2、启动和关闭

启动:virsh start +域名,如:virsh start centos-70

关闭:virsh shutdown +域名 或者 virsh destroy +域名

3、挂起和恢复

挂起:virsh suspend +域名

恢复被挂起的虚拟机:virsh resume +域名

4、子机随宿主机启动而启动

自动启动:virsh autostart + 域名

取消自动启动:virsh autostart --disable +域名

5、解除标记

virsh undefine +域名

解除标记之后,使用virsh list指令将不能再看到该虚拟机,但其镜像虚拟磁盘文件还在,只是xml的配置文件没有了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值