前言

文章基本涵盖了Linux种最常用的,最详细的命令合集。
这篇文章,帮助经常遗忘Linux命令 coder大佬 更上一层楼~~

文件管理命令

【cd】切换工作目录

1
2
3
4
5
6
7
8
9
10
11
12
# 切换到目标位置
cd xxx
# 回到当前用户的家目录
cd
# 回到当前用户的家目录
cd ~
# 前一个工作目录
cd -
# 当前目录
.
# 上一层目录
.. 上一层目录

【ls】列出目录内容

1
2
# 显示所有目录和文件
ls -a
类型 作用
-a 显示所有(all)的目录和文件,包括隐藏的目录和文件
-A 显示几乎所有(Almost all)的目录和文件(“.”和“..”除外)
-d 仅列出目录本身,不列出目录内的文件数据
-f 直接列出结果,而不进行排序
-F 显示目录和文件的名称,并给出文件类型
-h 列出文件大小
-l 以长(Long)格式显示文件的详细信息
-n 列出UID和GID的名称
-r 以逆向(Reverse)排序的次序显示
-R 以递归(Recursive)方式显示该目录的内容和所有子目录的内容
-S 以文件大小(Size)的递降次序排序显示
-t 以文件的最后修改时间(time)排序显示
符号 效果
匹配一个字符
* 匹配所有非隐藏的字符无论多少长短,但不匹配“.”开头的文件,即隐藏文件
{1-10} 1到10
{a..z} a b c ….z
{A..Z} A B C…Z
[123] 取其中之一,有就显示没有就不显示
\ 转义符,表示原来的意思通常是alics后使用
[[:lower:]] 小写字母表示a-z
[[:upper:]] 大写字母表示A-Z
[^zhang] 匹配列表中的所有字符以外的字符
[[:ditsd:]] 任意数字,相当于0-9

【vim】编辑

模式 进入方法
正常模式 vim 文件名,进入正常模式
若文件存在,则打开文件;若文件不存在,则新建并打开文件
正常模式下只能进行读操作
编辑模式 在正常模式下,按ai,进入编辑模式
ESC,退出编辑模式
在编辑模式下可以进行读写操作
命令模式 在正常模式下,输入,进入命令模式
命令模式下,输入q:文件没有做任何修改时退出
wq:保存并退出
q!:不保存强制退出

【rm】删除文件或目录

rm [类型] 要删除的文件或目录

1
2
# 删除新建文件夹
rm -f 新建文件夹
类型 作用
-f 删除文件或目录时不进行提醒,而直接强制删除
-i 删除文件或目录时提醒用户确认
-r 删除目录时必须使用此选项,表示递归删除整个目录树

【cp】复制文件或目录命令

格式:cp [类型] 源文件或目录 目标文件或目录

注:复制多个文件后面只能根文件夹不能根文件,而且目录还要存在

类型 作用
-r 递归持续复制,用于目录的复制操作
-d 若源文件为连接文件的属性,则复制连接文件属性
-f 不询问用户,强制复制
-i 若目标文件存在,则询问是否覆盖
-p 与文件的属性一起复制
-u 若目标文件比原文件旧,则更新目标源文件

小技巧:rename 旧名字 新名字 源文件 批量改名

【mv】移动文件或目录

  • 将指定的文件或目录转移位置
  • 如果目标位置与源位置相同,则相当于执行重命名操作

    格式:mv [类型] 源文件或目录 目标文件目录

【mkdir】创建新目录命令

格式:mkdir [类型] 目录名

1
2
# 创建三级递归目录
mkdir -p folder1 folder2 folder3

类型 作用
-m 对新建目录设置存取权限
-p 直接建立所需要的目录递归

【touch】创建新文件命令(文件内容为空)

格式:touch [文件名]

1
2
# 创建file1.txt
touch file1.txt

【which】查找命令文件存放目录

搜索范围由环境变量PATH决定(echo $PATH)

格式1:which 命令或程序名 默认找到第一个目标后不再查找
格式2:which -a 命令或程序名 在所有搜索路径中查找

使用which查找内部命令时候,找不到对应的程序,type也可以用来查找

【find】查找文件或目录

采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找

格式:find 查找范围 匹配条件 文件名

查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用”*“及”?”通配符
按文件大小查找 -size 根据目标文件的大小进行查找;
一般使用+-号设置超过或小于指定的大小作为查找条件;
常用的容量单位包括kB (注意k是小写) 、MB,GB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件类型进行查找;
文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件©等;
块设备文件(b):成块读取数据的设备(硬盘,内存,光驱);
字符设备文件©:按单个字符读取数据的设备(键盘,鼠标)

使用find命令实现多个查找条件
各表达式之间使用逻辑运算符
-a表示而且(and
-o表示或者(or

【du】显示当前目录及其子目录所占空间大小

类型 作用
-a 显示所有文件的大小
-s 只显示总计
-h 更人性化的方式(默认以kB计数,但不显示单位)显示出统计结果

【ln】创建链接文件

为文件或目录建立链接文件,类似于Windows的快捷方式

  • 软连接
    ln [-s]
    源文件或目录…链接文件或目标位置——软链接,相当于创建了一个快捷方式
  • 硬链接
    ln
    创建硬链接,相当于复制了一个副本(硬链接在日常工作中基本不会使用)
对比项 硬链接 软链接
本质 本质时同一个文件 本质不是同一个文件
inode 相同 不同
链接数 创建新的硬链接,链接数会增加,删除硬链接链接数会减少 是删除新建不会改变
文件夹 不支持 支持
文件类型 和源文件相同 链接文件和源文件无关
删除源文件 只是链接数减一但链接文件的访问不受影响 无法访问链接文件
文件大小 和源文件相同 源文件的路径的长度

【alias】设置别名

通过别名机制简化日常用的、比较长的命令
alias 命令别名=“xxxxxx”(“=”两边不能有空格)

例如:

1
2
# 打`newName`时,可以默认等于`oldName”`
alias newName="vim /home/myfile/oldName"

注意:此配置为临时修改,重启后会失效,想永久生效需要更改配置文件
使用unalies可以取消别名

【pwd】显示用户当前目录的完整路径

输入pwd之后显示当前用户所在的工作位置

1
pwd

服务管理命令 service、systemctl

systemctl兼容service

防火墙及端口

firewalld命令

我用的是Centos7 ,所以 firewalld 命令替代了 iptables 命令 。( Centos7 默认的防火墙是 firewall )
具体优点在这里就不阐述了,想深入了解可以跳一下这个网址: Home | firewalld
firewalld 也是一种服务

防火墙命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 查看防火墙状态:
systemctl status firewalld

# 开启防火墙:
systemctl start firewalld

# 重启防火墙:
systemctl restart firewalld

# 关闭防火墙:
systemctl stop firewalld

# 重新加载防火墙:
firewall-cmd --reload

# 停用防火墙:
systemctl disable firewalld

# 查看防火墙的端口
firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --zone=public --list-ports

# 开启防火墙端口 (执行后该命令后需要再执行一遍重新加载防火墙命令)
firewall-cmd --permanent --zone=public --add-port=8080/tcp

# 关闭防火墙端口 (执行后该命令后需要再执行一遍重新加载防火墙命令)
firewall-cmd --permanent --zone=public --remove-port=8080/tcp

端口被占用情况

1
2
3
4
5
6
# 查看所有被占用的端口
netstat -lnpt

netstat -t -l -p
# 查看某个端口被占用情况
netstat -lnpt |grep 8080

查看系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 查看Linux系统版本
cat /etc/redhat-release

# 查看Linux内核版本
file /bin/ls

# 用于获取网卡配置与网络状态等信息
ifconfig

# 用于查看系统内核与系统版本等信息
uname

# 用于查看系统的负载信息
uptime

# 用于显示当前系统中内存的使用量信息
free

# 用于查看当前登入主机的用户终端信息
who

# 显示已登录用户
w

# 用于查看所有系统的登录记录
last

# 用于显示历史执行过的命令
history

# 用于收集系统配置及架构信息并输出诊断文档
sosreport

# 显示磁盘空间使用情况
df

# 统计文件大小,目录则取总用量
dh

# 查看系统的磁盘
lsblk

常用系统工作命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 用于在终端输出字符串或变量提取后的值
echo

# 用于显示及设置系统的时间或日期
date

# 用于重启系统
reboot

# 关机并关闭电源
poweroff

# 用于在终端中下载网络文件
wget

# 用于查看系统中的进程状态
ps

# 实时显示进程动态
top

# 用于查询某个指定服务进程的 PID 值
pidof

# 用于终止某个指定 PID 的服务进程
kill

# RPM软件包管理器
rpm

# 安装(rpm包在线安装)
yum

字符编码

先检查下自己Linux系统编码格式 (LC_ALL:默认是为空,否则会覆盖其他的编码)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@ryx ~]# locale 
LANG=zh_CN.GB18030
LC_CTYPE="zh_CN.GB18030"
LC_NUMERIC="zh_CN.GB18030"
LC_TIME="zh_CN.GB18030"
LC_COLLATE="zh_CN.GB18030"
LC_MONETARY="zh_CN.GB18030"
LC_MESSAGES="zh_CN.GB18030"
LC_PAPER="zh_CN.GB18030"
LC_NAME="zh_CN.GB18030"
LC_ADDRESS="zh_CN.GB18030"
LC_TELEPHONE="zh_CN.GB18030"
LC_MEASUREMENT="zh_CN.GB18030"
LC_IDENTIFICATION="zh_CN.GB18030"
LC_ALL=

打开i18n配置文件

如何打开i18n配置文件

1
[root@ryx ~]# vi /etc/sysconfig/i18n

i18n初始化配置

1
2
3
LANG="zh_CN.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
SYSFONT="latarcyrheb-sun16"

修改后的i18n配置文件内容

1
2
3
LANG="zh_CN.GB18030"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"

更新i18n配置文件

1
2
# 立刻更新i18n配置文件
[root@ryx ~]# source /etc/sysconfig/i18n

========== 持续更新 ==========