常用Linux命令

通过 man 命令 或者 命令 --help 可以直接查看命令说明

sudo 命令:暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级用户的密码

使用 Ctrl+C 强制结束当前命令

当命令的参数一行写不下或者为了使命令更容易解读时,可使用反斜杠 \ 对命令参数进行换行,开启新的一行继续输入命令参数

系统管理

echo

用于字符串的输出,通常用作为文件末尾添加内容,比如为配置文件添加配置项或者添加环境变量等

命令格式

echo [参数] [字符串]

用法示例

# 添加rabbitmq的环境变量,将echo命令的输出追加到文件/etc/profile末尾
echo 'export PATH=$PATH:/usr/local/rabbitmq_server-3.8.22/sbin' >> /etc/profile

source

在当前bash环境下读取并执行给定shell文件中的命令,通常用来执行环境变量文件以刷新环境变量

命令格式

source [参数] [shell文件]

用法示例

# 刷新环境变量
source /etc/profile

ping

网络包探索器,用于测试网络连接量的程序

命令格式

ping [参数] [主机名或域名或IP地址]

常用参数

使用man或help命令查看

用法示例

# 检测当前系统与百度的网络连接情况
ping www.baidu.com

curl

curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具并且支持文件的上传和下载

命令格式

curl [参数] [URL]

常用参数

使用man或help查看

用法示例

# 会将百度首页的html文件内容展示到命令行
curl www.baidu.com

ifconfig

用于显示或设置网络设备

命令格式

ifconfig [参数]

常用参数

是同man或help查看

用法示例

# 显示所有网络设备情况
ifconfig

ps

用于显示当前进程的状态,类似于 windows 的任务管理器

命令格式

ps [参数]

常用参数

参数 意义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的信息
-aux 显示所有进程的详细信息
-t 显示所有与指定终端有关的进程

用法示例

# 显示所有进程的详细信息
ps -aux
# 查看与终端pts/0有关的所有进程信息
ps -t /dev/pts/0

netstat

用于显示与IP、TCP、UDP和ICMP协议相关的统计数据

命令格式

netstat [参数]

常用参数

参数 意义
-a(all) 显示所有socket(默认:已连接)
-n(name) 不要解析名字
-l(listening) 显示监听服务器套接字
-p 显示套接字的PID /程序名称

用法示例

# 查看所有套接字情况
netstat -anlp
# 查看端口监听情况
netstat -tlunp

free

用于显示系统内存使用情况

命令格式

free [参数]

常用参数

参数 意义
-m 以MB为单位显示
-h 自适应大小单位显示

top

用于实时显示系统内存使用情况

命令格式

top

systemctl

用于管理系统服务

命令格式

systemctl [参数] [服务名]

常用参数

参数 意义
start 启动服务
status 查看服务状态
stop 停止服务
restart 重启服务
enable 配置服务开机启动
disable 关闭服务开机启动
daemon-reload 刷新服务配置文件

用法示例

# 启动docker,可以省略.service后缀
systemctl start docker.service

clear

清屏

命令格式

clear

用户管理

who

用于显示系统中有哪些使用者,显示的资料包含了使用者ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU使用量、动作等等

命令格式

who [参数]

常用参数

使用man或help查看

用法示例

# 查看系统中有哪些使用者
who

useradd

添加用户

命令格式

useradd [用户名]

passwd

更改用户密码

命令格式

passwd [用户名]

userdel

删除用户,推荐加上 -r 参数,否则下次创建同名用户会提示用户已创建

命令格式

userdel [用户名]

常用参数

参数 意义
-r 删除与该用户相关的文件及目录

文件及目录操作

ls

列出目录内容,该命令有一个带参别名 ll ,相当于 ls -l

命令格式

ls [参数] [目录]

常用参数

参数 意义
-a(all) 列出文件下所有的文件,包括以“.”开头的隐藏文件
-l 列出文件的详细信息,如创建者、创建时间、文件的读写权限列表等
-F 在每一个文件的末尾加上一个字符说明该文件的类型。“@”表示符号链接、“|”表示FIFOS、“/”表示目录、“=”表示套接字
-s(size) 在每个文件的前面打印出文件的大小
-t(time) 按时间进行文件的排序
-A 列出除了“.”和“..”以外的文件
-R 将目录下所有子目录的文件都列出来,相当于程序设计中的“递归”实现
-L(Link) 列出文件的连接名
-S 按文件的大小进行排序
-i 列出文件的i节点

用法示例

# ls的带参别名,相当于ls -l .
ll .
# 查看用户主目录下文件的详细信息
ls –l ~
# 查看当前目录下所有文件的详细信息,包括隐藏文件
ls –al
# 查看根目录下的所有文件的详细信息,包括i节点
ls –lia /

mkdir

建立子目录

命令格式

mkdir [参数] [目录]

常用参数

参数 意义
-m 设定权限<模式>
-v 每次创建新目录都返回信息
-p(parents) 如果命令后所跟的目录中有不存在的父级目录则在没有错误的情况下创建必要的父目录

用法示例

# 在当前目录下创建目录dir1
mkdir dir1
# 在当前目录下的dir1目录下创建目录dir11
mkdir dir1/dir11
# 在当前目录dir2下创建目录dir23,失败,因为mkdir命令要求创建的目录的所有父目录必须存在,而根目录下没有名为dir2的目录,所以创建失败
mkdir dir2/dir23
# 创建成功,因为–p参数代表在没有错误的情况下创建必要的父目录
mkdir –p dir3/dir31/dir311/dir3111

rmdir

删除目录,当且仅当目录中为空

命令格式

rmdir [目录]

常用参数

参数 意义
-p(parents) 在没有错误的情况下删除必要的父目录
-v 为处理的每个目录输出诊断信息

用法示例

# 等同于 rmdir a/b/c a/b a
rmdir -p a/b/c

cd

切换当前工作目录,当前工作目录指的是需要指定目录参数的命令在没有指定目录参数的情况下使用时将当前所处的工作目录作为默认参数

命令格式

cd [目录]

用法示例

# cd命令默认移动到用户主目录
cd
# 移动到当前目录的父目录
cd ..
# 移动到根目录
cd /
# 移动到当前目录
cd .
# 移动到当前用户主目录
cd ~

gedit

文本编辑器

命令格式

gedit [文件]

用法示例

# 打开并编辑文件feb.c
gedit feb.c

mv

移动文件、给文件或目录改名

命令格式

mv [文件] [目标目录]
mv [文件] [目标文件名]
mv [目录名] [目标目录名]

用法示例

# 移动文件16xg123.csv和xg13.txt到当前目录的dir1目录下
mv 16xg123.csv xg13.txt dir1
# 将文件temp.txt文件改名为123.txt
mv temp.txt 123.txt

cp

将文件或目录复制到其他目录中

命令格式

cp [文件或目录] [目标目录]

用法示例

# 复制指定路径下的文件16xg123.csv到当前目录下
cp /var/materials/16xg123.csv ./

rm

删除目录或文件(默认删除文件)

命令格式

rm [参数] [文件]

常用参数

参数 意义
-r 指示将参数中列出的全部目录和子目录均递归删除
-f 忽视不存在的文件,不给予提示

用法示例

# 错误,dir2是一个目录
rm dir1
# 删除目录dir1及其下的所有内容,针对每个需要删除的目录或文件都提示用户是否确认删除
rm –r dir1
# 删除目录dir1及其下的所有内容且不提示
rm -rf dir1

grep

在指定文件中搜索特定的内容,并将含有这些内容的行标准输出,多用于过滤其他命令的输出内容

命令格式

# 参数多为正则表达式
grep [参数] [文件]

常用参数

参数 意义
-v 显示不包含匹配文本的所有行
-n 显示匹配行及行号

用法示例

# 显示文本文件xg13x.txt中包含“信息131”内容的行
grep 信息131 xg13x.txt
# 显示文本文件xg13x.txt中以“2011”开头的行
grep ^2011 xg13x.txt
# 显示文本文件xg13x.txt中以“133”结尾的行
grep 133$ xg13x.txt
# 显示文本文件xg13x.txt中匹配所给出的正则表达式的行的数量
grep -n 2013013[0-9][0-9][13579] xg13x.txt
# 显示text.txt文件中匹配关键字keyword的内容
cat text.txt | grep keyword

zgrep

查看.tar.gz文件内容(不需要解压),看日志神器

find

在目录中搜索文件

命令格式

find [目录] [参数] [参数值]

常用参数

参数 意义
-name 按照文件名查找
-user 按照文件拥有者查找

用法示例

# 找出/home下属于“zb”这个用户的文件
find /home –user zb	

查看一个或多个文件的开始内容

命令格式

head [参数] [文件]

常用参数

参数 意义
-c n n为正整数,显示文件的前n个字节内容
-n 显示开始的n行

用法示例

# 默认显示文件前10行
head temp.txt
# 显示文件的前5行
head -5 file.txt

tail

显示一个或多个文件的结尾内容

命令格式

tail [参数] [文件]

常用参数

参数 意义
+n n为一个正整数,从文件的正数第n行开始显示文件内容
-n n为一个正整数,从文件的倒数第n行开始显示文件内容
-f 显示完文件的最后一行后,如果文件正在被追加,会继续显示追加的行,直到键入 Ctrl+C

用法示例

# 默认显示文件后10行
tail temp.txt
# 显示文件从正数第5行开始的所有行
tail +5 file.txt
# 显示文件从倒数第五行开始的所有行
tail -5 file.txt

wc

统计文件的行数、单词书和字节数

命令格式

wc [参数] [文件]

常用参数

参数 意义
-c 统计文件字节数
-m 统计文件字符数
-l 统计文件行数
-L 统计文件最长行数的长度
-w 统计文件单词数

用法示例

# 显示文件xg13x3.txt的行数、单词数和字节大小
wc xg13x3.txt
# 显示文件xg13x3.txt的行数
wc -l xg13x3.txt

gzip

文件压缩、解压缩,默认进行压缩且压缩文件后原文件自动删除,用此命令压缩生成的文件后缀名为.gz

命令格式

gzip [参数] [文件]

常用参数

参数 意义
-d 对文件进行解压缩
-r 查找指定目录并压缩或解压缩其中的所有文件
-t 检查压缩文件是否完整

用法示例

# 对文件进行解压缩
gzip –d test.c.gz

bzip2

文件压缩、解压缩,默认进行压缩且压缩文件后原文件自动删除,用此命令压缩生成的文件后缀名为.bz2

命令格式

bzip2 [参数] [文件]

常用参数

参数 意义
-d 对文件进行解压缩
-k 压缩文件并保留原文件
-t 检查压缩文件是否完整
-z 强制进行压缩

用法示例

# 对文件进行解压缩
bzip2 –d test1.c.bz2

tar

文件打包、压缩、解压缩,用此命令压缩生成的文件后缀名为.tar

命令格式

tar [参数] [文件]

常用参数

参数 意义
-c 建立一个压缩文件的参数指令
-x 解开一个压缩文件的参数指令
-z 指定文件同时具有gzip的属性
-v 产生压缩过程中详细报告tar处理的文件信息
-j 调用bzip2命令来压缩或解压缩文件
-f 使用档案文件或设备,通常必选

用法示例

# 将文件解压至当前目录下
tar –xvf home.tar

mount/umount

分别用于挂载、卸载指定的文件系统

命令格式

mount [参数] [设备名] [挂载目录]
umount [卸载目录]

常用参数(mount)

参数 意义
-t 指定设备的文件系统类型
-l 显示挂载的驱动卷

用法示例

# 挂载U盘(假设U盘设备名为sda1)中的内容至/mnt/usb下
mount /dev/sda1 /mnt/usb
# 卸载U盘
umount /mnt/usb

pwd

显示当前工作目录

命令格式

pwd

file

确定文件类型

命令格式

file [参数] [文件]

用法示例

# 显示当前工作目录下feb.c文件的类型
file ./feb.c

tree

递归以树形结构列出指定目录及其子目录所有内容,需要安装

命令格式

tree [目录]

常用参数

参数 意义
-a 列出目录中所有内容,包括隐藏文件以及目录下的目录的内容
-d 只列出目录

用法示例

# 列出当前工作目录下所有内容,默认不包括隐藏文件
tree .

cat

连接文件并在标准输出上打印

命令格式

cat [参数] [文件]

用法示例

# 在屏幕上显示文件hello.c的内容
cat hello.c
# 在屏幕上显示文件hello.c和hello.c.bak的内容
cat hello.c hello.c.bak
# 在屏幕上显示名字是以he开头的文件的内容
cat he*
# 在屏幕上显示后缀名为.sh的文件的内容
cat *.sh

zcat

查看.tar.gz文件内容(不需要解压),看日志神器

more

分页显示文件内容

命令格式

more [参数] [文件]

用法示例

# 分页显示文件ex_sh的内容
more ex_sh
# 分页显示文件16xg123.csv的内容
more 16xg123.csv
# 分页依次显示名字以xg开头的文件的内容
more xg*

ln

在文件之间建立链接(类似于windows中的快捷方式),默认建立硬链接,软链接链接的文件可以不存在(此时会与目标文件父目录建立链接),硬链接目文件必须存在

命令格式

ln [参数] [文件] [链接名]

常用参数

参数 意义
-s 建立软链接

用法示例

# 建立目录/var/materials的软连接,链接名为ma
ln -s /var/materials ma
# 建立目录/etc/passwd的软连接,链接名为pw
ln -s /etc/passwd pw

文本处理

vim

文本处理程序

命令格式

vim [参数] [文件]

常用参数

参数 意义
+n 从第n行开始编辑文件
+/exp 从文件中匹配字符串exp的第一行开始编辑

命令模式

进入vim编辑界面之后默认处于命令模式,命令由键盘按键序列化组成,完成某些特定动作

移动光标

单字符移动(四个字母键盘上相邻的按键)

  • 光标左移一列——H
  • 光标下移一行——J
  • 光标上移一行——K
  • 光标右移一列——L

多字符移动,命令前加一整数,表示这个命令连续执行多少遍

  • 光标左移5列——5+H
  • 光标下移6行——6+J
  • 光标上移23行——23+K
  • 光标右移10列——10+L

也可以直接使用键盘上的方向键代替这四个字母

命令状态下的按键命令没有回显

翻页

单页翻页

  • 向后翻页(Backward)——Ctrl+B
  • 向前翻页(Forward)——Ctrl+F
  • 向上翻半页(Up)——Ctrl+U
  • 向下翻半页(Down)——Ctrl+D

多页翻页

  • 向前翻6页——6+Ctrl+F
  • 向后翻15页——15+Ctrl+B

vim把文件尾方向定义为向前,文件头方向定义为向后,可以用 PgDn 键代替 Ctrl+F ,用 PgUp 键代替 Ctrl+B

行内快速移动

行尾行首

  • 将光标移至当前行首——^
  • 将光标移至当前行尾——$

移动一个单词

  • 移到右一个单词结尾处——W
  • 移到左一个单词结尾处——B

移动多个单词

  • 移到右6个单词结尾处——6 + W
  • 移到左3个单词结尾处——3+B

删除和复制

删除字符

  • 删除当前字符——X
  • 删除从当前光标开始的5个字符——5 + X

删除行

  • 删除当前行——D + D
  • 删除从当前行开始的3行—— 3 + D + D

复制粘贴

  • 复制一行——Y + Y
  • 粘贴——P

被删除的内容保存在剪贴版

字符替换

R 进入单字符替换状态

  • 将光标处字符替换为a——R+ A

Shift+R 进入多字符替换模式,按 Esc 结束多字符替换

  • 从光标处字符开始,将字符依次替换为abc——Shift+R + A + B + C

取消和恢复

  • 取消上一次的编辑操作(Undo)——U
  • 恢复上一次取消的编辑操作(Redo)——.

插入模式

在命令模式下键入以下按键进入对应的插入模式,允许直接插入文本

  • 在光标处插入文本,直至按Esc键(Insert)——I
  • 光标右移一位后插入文本,直至按Esc键(Append)——A
  • 在当前行的下一行新建一行并在新行的开始插入文本,直至按Esc键——O
  • 退出插入模式到命令模式——Esc

行末模式

行末模式主要用来保存修改内容、退出编辑或对文件内容进行搜索,在命令模式下键入冒号 Shift+; 进入行末模式,在行末模式按 Esc 键退出到命令模式

保存与退出

  • 存盘退出——W+Q+Enter(wq回车)
  • 存盘不退出——W + Enter(w回车)
  • 不存盘退出——Q + Shift+1 + Enter(q! 回车)

Shift+1 表示键入感叹号 ! ,意思是强制执行当前命令,如果有修改会放弃修改直接退出

搜索

行末模式下,输入 /keyword ,命令模式下是这样的 :/keyword

比如搜索user,在命令模式下输入冒号进入行末模式然后输入 /user

按下回车之后,可以看到vim已经把光标移动到该字符处并高亮了匹配的字符串,按下 N 查看下一个匹配,按下 Shift+N 查看上一个匹配

斜杠 / 后面也可以使用正则表达式进行匹配

文件下载

wget

非交互式的网络文件下载工具,它支持断点下载功能,同时支持FTP和HTTP下载方式

命令格式

wget [参数] [URL]

常用参数

使用help或man命令查看

用法示例

# 下载redis
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
posted @ 2021-03-17 10:31  lwh147  阅读(184)  评论(0)    收藏  举报