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 /usrC代表指定解压的位置
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 firewalldsystemctl 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 firewalldsystemctl start firewalld.serviceservice firewalld start
ps:若遇到无法开启,先执行:systemctl unmask firewalld.service然后再执行:systemctl start firewalld.service
- 关闭防火墙
systemctl stop firewalldsystemctl stop firewalld.serviceservice 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 --reloadps:添加、移除端口之后都需要重新载入;否则,将不会生效
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
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐





所有评论(0)