Linux常用命令
Linux常用命令
vim
取消高亮显示,执行 :noh
1、开关机命令
shutdown –h now
立刻进行关机
shutdown –r now
现在重新启动计算机
reboot
现在重新启动计算机
su -
切换用户
passwd
修改用户密码
logout
用户注销
2、常用快捷命令〔ps:tab补全〕
ctrl + l -
清屏,类似clear命令
ctrl + r -
查找历史命令(history)
ctrl+c
终止
ctrl+k
删除此处至末尾所有内容
ctrl+u
删除此处至开始所有内容
3、展示目录列表命令ls
(list
)
ls
展示当前目录下的可见文件
ls -a
显示全部的文件,包括隐藏文件(开头为.
的文件)也一起罗列出来
ls -A
显示全部的文件,连同隐藏文件,但不包括.
与..
这两个目录
ls -l(ll)
展示当前目录下文件的数量(不包括隐藏文件)
ll -a
展示当前目录下所有文件的详细信息(文件数量、大小、读写权限)
pwd
显示目前的目录
4、切换目录命令cd
(change directory
)
cd test
切换到test目录下
cd ..
切换到上一级目录
cd /
切换到系统根目录下
cd ~
切换到当前用户的根目录下
cd -
切换到上一级所在的目录
5、目录管理
- 创建(
mkdir
)
mkdir test
在当前目录下创建一个test
目录
mkdir -p test/a/b
在test
目录下的a
目录下创建一个b
目录,如果上一级目录不存在,则连它的父目录一起创建
- 删除(
rmdir
)
rmdir 目录名
删除 空 目录(注意:该命令只能够删除空目录)
rm -d 目录名
删除 空 目录(使用-d(–dir)
选项)
rm -r 目录名
删除 非空 目录(使用-r(–recursive 或 -R)
选项)
6、文件管理
- 创建(
touch
)命令
touch test.txt
在当前目录下创建一个test.txt
的文件
- 删除(
rm
)命令
rm test.txt
删除test.txt
的文件(带询问的删除,需输入y
才能删除)
rm -f test.txt
直接删除text.txt
文件
rm -r test
递归删除,即删除test
目录以及其目录下的子目录(带询问的删除)
rm -rf test
直接删除test
目录以及其目录下的子目录
rm -f *
删除当前目录下的文件
7、文件打包或解压命令tar
Linux
中的打包文件一般是以.tar
结尾的,压缩的命令一般是以.gz
结尾的;而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz
命令:tar -zcvf
打包压缩后的文件名,要打包压缩的文件
其中:
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
示例:
打包并压缩/test下的所有文件 压缩后的压缩包指定名称为xxx.tar.gz
tar -zcvf xxx.tar.gz aaa.txt bbb.txt ccc.txt
或
tar -zcvf xxx.tar.gz /test/*
7.1 解压压缩包(重点)
命令:tar [-xvf] 压缩文件
其中:x:代表解压
示例:将/test下的xxx.tar.gz解压到当前目录下
tar -xvf xxx.tar.gz
示例:将/test下的xxx.tar.gz解压到根目录/usr下
tar -xvf xxx.tar.gz -C /usr
C代表指定解压的位置
8、端口查看命令
netstat -pan|grep 2809
或netstat -nl | grep 2809
查看2809
端口使用情况
8.1 用于显示 tcp
,udp
的端口和进程等相关情况
netstat -tunlp
8.2 查看某个端口和服务的情况
- 查询已开放的端口
netstat -anp
- 查看当前所有
tcp
端口
netstat -ntlp
- 查看端口使用情况
netstat -tunlp | grep 80
查看80
端口使用情况
netstat -tunlp | grep 8080
查看8080
端口使用情况
netstat -tunlp | grep 3306
查看3306
端口使用情况
- 查看服务运行情况
netstat -antp | grep dockerd
查看dockerd
服务运行情况
8.3 防火墙操作
8.3.1 查看防火墙状态
systemctl status firewalld
systemctl status firewalld.service
[root@iZbp1hasnej7ztk2u90wnzZ /]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2022-09-01 11:31:31 CST; 24min ago Docs: man:firewalld(1) Main PID: 15567 (firewalld) Tasks: 2 Memory: 26.3M CGroup: /system.slice/firewalld.service └─15567 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopidSep 01 11:31:31 iZbp1hasnej7ztk2u90wnzZ systemd[1]: Starting firewalld - dynamic firewall daemon... Sep 01 11:31:31 iZbp1hasnej7ztk2u90wnzZ systemd[1]: Started firewalld - dynamic firewall daemon. Sep 01 11:31:31 iZbp1hasnej7ztk2u90wnzZ firewalld[15567]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now. Sep 01 11:32:08 iZbp1hasnej7ztk2u90wnzZ firewalld[15567]: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.
firewall-cmd --state
[root@iZbp1hasnej7ztk2u90wnzZ /]# firewall-cmd --state running
8.3.2 查看防火墙
firewall-cmd --list-all
[root@iZbp1hasnej7ztk2u90wnzZ /]# firewall-cmd --list-all public target: default icmp-block-inversion: no interfaces: sources: services: dhcpv6-client ssh ports: 2375/tcp 8082/tcp 8083/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
8.3.3 开启/关闭防火墙
- 开启防火墙
systemctl start firewalld
systemctl start firewalld.service
service firewalld start
ps:若遇到无法开启,先执行:systemctl unmask firewalld.service
然后再执行:systemctl start firewalld.service
- 关闭防火墙
systemctl stop firewalld
systemctl stop firewalld.service
service firewalld stop
8.3.4 添加指定需要开放的端口
firewall-cmd --add-port=8888/tcp --permanent
添加8888
端口(开放端口)
firewall-cmd --zone=public --add-port=2375/tcp --permanent
ps:--zone
为作用域,--add-port
为开放端口,--permanent
为永久开放,添加完重启一下虚拟机
8.3.5 移除指定端口
firewall-cmd --permanent --remove-port=8888/tcp
移除8888
端口
8.3.6 更新防火墙规则(重载入添加的端口)
firewall-cmd --reload
ps:添加、移除端口之后都需要重新载入;否则,将不会生效
8.3.7 查询指定端口是否已开 (ps:yes表示开启;no表示未开启)
- 查询某个端口是否开启
firewall-cmd --query-port=8888/tcp
查询8888
端口是否开启
- 查看所有放行的端口
firewall-cmd --list-ports
[root@iZbp1hasnej7ztk2u90wnzZ /]# firewall-cmd --list-ports 2375/tcp 8082/tcp 8083/tcp
8.3.7 获取所有支持的服务
firewall-cmd --get-services
[root@iZbp1hasnej7ztk2u90wnzZ /]# firewall-cmd --get-services RH-Satellite-6 RH-Satellite-6-capsule amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
9、kill
在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill
命令
- 杀死进程
kill -9 PID
kill -quit PID
kill -term PID
kill -int PID
- 强制停止
pkill -9 nginx
找出需要停止的服务,如:Nginx服务
执行
ps -ef|grep nginx
,如:执行
pkill -9 18207
即可停止
10、find:按照文件名查找
语法:find [查找位置] [查找条件] [处理动作]
如:
(1)在根目录下查找文件 httpd.conf
find / -name httpd.conf
/
表示在整个硬盘查找
(2)在 /etc
目录下文件 httpd.conf
find /etc -name httpd.conf
(3)使用通配符 *
(0或者任意多个)
find /etc -name '*srm*'
表示在/etc
目录下查找:文件名中含有字符串srm
的文件
find . -name 'srm*'
表示当前目录下查找:文件名开头是字符串srm
的文件
(4)查找文件夹名为 jenkins
的文件夹
find / -name jenkins -type d
表示当前目录下查找:文件夹名为jenkins
的文件夹
(5)查找以 .txt
结尾的文件
find /var -name "*.txt"
表示在/var
目录下查找:以.txt
结尾的文件
(6)查找以所有字母开头的文件
find /var -name "[a-z]"
表示在/var
目录下查找:以所有字母开头的文件
(7)查找以 abc
开头的文件
find /var -name "abc"
表示在/var
目录下查找:以abc
开头的文件
(8)查找更改时间在3天以内、超过3天的文件
find /var -mtime -3
表示在/var
目录下查找:更改时间在3天以内的文件
find /var -mtime +3
表示在/var
目录下查找:更改时间超过3天的文件
(9)查找文件类型为 d
的目录文件
find /etc -type -d
表示在/etc
目录下查找:文件类型为d
的目录文件
(10)查找文件类型为 l
的链接文件
find /etc -type -l
表示在/etc
目录下查找:文件类型为l
的链接文件
(11)查找在 /var
目录下文件大小大于1M的文件 (字节为单位)
find /var -size +1000000c
表示在/var
目录下查找:文件大小大于1M的文件 (字节为单位)
(12)查找在 /var
目录下所有权限为700的文件,并把其权限设置为777
find /var -perm 700 |xargs chmod 777
表示在/var
目录下查找:所有权限为700的文件,并把其权限设置为777
(13)在 /var
目录下查找出文件并查看文件的详细信息
find /var -type f |xargs ls -l
表示在/var
目录下查找:文件并查看文件的详细信息
11、保存命令(vi
)
使用 vi
进入文本后,按 i
开始编辑文本;退出编辑模式,按 ESC
键,然后使用以下命令可以退出 vi
:q
表示不保存文件,退出vi
编辑
:q!
表示不保存文件,强制退出vi
编辑
:w
表示保存文件,不退出vi
编辑
:w!
表示强制保存,不退出vi
编辑
:wq
表示保存结束,退出vi
编辑
:wq!
表示强制保存结束,退出vi
编辑
:e!
表示放弃所有修改,从上次保存文件开始再编辑
12、which 命令
查看某个工具安装目录
which java
查看JDK安装路径
ps:which Java
是无法定位到java
的安装路径的,只能定位到执行路径;whereis Java
也无法定位,只能展示一部分的java
路径
13、tail 命令
tail
命令的作用是输出文件尾部,默认是打印文件最后10行到标准输出。
若指定多个文件,则会依次处理各给定文件,并以文件名作为头部信息。
tail
命令可用于查看文件的内容,有一个常用的参数 -f
常用于查阅正在改变的日志文件。
tail -f filename
会把 filename
文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename
更新就可以看到最新的文件内容。
命令格式:
tail [参数] [文件]
常用参数:
-f
循环读取
-q
不显示处理信息
-v
显示详细的处理信息
-c<数目>
显示的字节数
-n<行数>
显示文件的尾部 n 行内容
--pid=PID 与-f合用
表示在进程ID,PID死掉之后结束
-q, --quiet, --silent
从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用
表示在每次反复的间隔休眠S秒
简单示例:
- 要显示
notes.log
文件的最后 10 行,请输入以下命令:
tail notes.log
- 要跟踪名为
notes.log
的文件的增长情况,请输入以下命令:
tail -f notes.log
此命令显示 notes.log
文件的最后 10 行。
当将某些行添加至 notes.log
文件时,tail 命令会继续显示这些行。
显示一直继续,直到您按下(Ctrl-C
)组合键停止显示。
- 显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail +20 notes.log
- 显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log
13.1 tail -f
tail -f
会根据文件描述符进行追踪,使用 -f
, –follow
和 –follow=descriptor
是等价的。
实际测试,当文件改名或被删除时,追踪会停止。
13.1 tail -F
tail -F
会根据文件名进行追踪并保持重试,当文件文件被移动或删除后,若再次创建同名文件,则会继续追踪该同名文件。
13.1 tailf
使用 tailf
时,如果文件不增长则不会访问磁盘文件,当然也就不会更新文件的访问时间。该特性对于在笔记本上监控日志文件很有用,当日志打印不那么频繁时,我们希望降低硬盘转速以省电。
14、Grep
grep命令支持三种正则表达式语法:Basic
、Extended
和 Perl-compatible
。
当没有指定正则表达式类型时,grep
命令将搜索模式默认为基本正则表达式。
要搜索多个匹配模式,可以使用 OR( alternation )
运算符。
我们可以用 OR
运算符 |
( pipe ) 指定不同的匹配项,这些匹配项可以是文本字符串,也可以是表达式集。值得注意的是,在所有正则表达式运算符中,这个运算符的优先级是最低的。
使用 grep
命令基本正则表达式搜索多个匹配模式的语法如下:
grep 'pattern1\|pattern2' filename
这里需要注意的是,始终要用单引号将正则表达式括起来,因为单引号内的内容原样输出,被单引号括起的内容不管是常量还是变量不会发生替换。
使用基本正则表达式时,元字符被解释为字面字符。要保留元字符的特殊含义,必须用反斜杠(\
)对它们进行转义。这就是为什么我们要转义 OR
运算符(|
)。
要将模式解释为扩展正则表达式,请调用 grep -E
(或 --extended-regexp
)选项。
使用扩展正则表达式时,不需要对 OR
运算符 (|
) 进行转义:
grep -E 'pattern1|pattern2' file
14.1 Grep 命令搜索多个字符串
通常我们认为,文字字符串是最基本的模式。
接下来我们将示例,搜索某用户日志错误文件中出现的所有 fatalerror
和 critical
字符串。
语法如下:
grep 'fatal\|error\|critical' /var/log/nginx/error.log
还需要注意的是,如果要搜索的字符串包含空格,需要用双引号将其括起来。
下面是使用扩展正则表达式的同一个示例,它不需要转义字符:
grep -E 'fatal|error|critical' /var/log/nginx/error.log
默认情况下,grep
命令是区分大小写的。
要在搜索时忽略大小写,请调用 grep
加 -i
(或 --ignore-case
)选项,示例如下:
grep -i 'fatal|error|critical' /var/log/nginx/error.log
当你只想搜索某个单词时,比如你想搜索的是单词 error
,grep
命令会输出所有包含 error
字符串的行,即它除了会输出包含 error
单词的行,还会输出包含 errorless
或 antiterrorists
等非 error
单词的行,这样是极不方便的。
因此要仅返回指定字符串是整词的行,或者是由非单词字符括起来的行,可以使用 grep
加 -w
(或 --word-regexp
)选项:
grep -w 'fatal|error|critical' /var/log/nginx/error.log
值得注意的是,单词字符包括有字母、数字字符(比如 a-z
、a-Z
和 0-9
)以及下划线( _
),所有其他字符都被视为非单词字符。
15、查看服务是否已经启动
如:查看
docker
是否启动成功1、利用
systemctl list-units
命令;该命令可以查看当前已经启动的服务;2、利用
systemctl
命令,该命令用于进行服务管理,当参数设置为status
时就可以查看当前服务的状态,语法为systemctl status docker
。现在最新的Linux系统都统一使用
systemctl
进行服务的管理
15.1 管理服务 systemctl (root权限)
systemctl 管理指令
基本语法:
systemctl [start | stop | restart | status] 服务名
systemctl
指令管理的服务在/usr/lib/systemd/system
查看
systemctl [opt] xxx.service
status
查看当前服务状态start
启动服务stop
关闭服务restart
重启服务enable
设置开机启动disable
设置开机不启动reload
后面不接具体服务名,重新加载配置文件mask
注销服务unmask
取消注销示例如下:
运行级别的分类 runlevel
- 运行级别0:系统停机状态
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS)
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台
- 运行级别6:系统正常关闭并重启
15.2 一些常用命令 systemctl
- 查看当前已经启动的服务
systemctl list-units
- 查看所有服务
systemctl list-unit-files
- 查看服务有哪些依赖
systemctl list-dependencies xx.service
- 查看服务有哪些依赖(反向)
systemctl list-dependencies --reverse xx.service
更多推荐
所有评论(0)