Linux常用命令大全:一杯水时间让你掌握!(附目录和快捷键)

Linux系统
146
0
0
2024-04-26

📑前言

我们在学习Linux系统时,常常会遇到命令繁多、参数众多的问题,让人感到困扰。尽管网上有很多文章,但往往缺乏目录,无法直接跳转到相关内容。为了解决这个问题,我特意整理了一篇有目录的超级详细的Linux基础命令汇总文章!同时还会分享一些非常实用的快捷键。这篇文章绝对是干货满满,让你轻松掌握Linux命令!(应该是最适合用来当Linux指令集合的笔记了)

🌤️Linux系统终端命令格式

☁️Linux系统目录

代码语言:javascript

复制

├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录

☁️终端指令格式

代码语言:javascript

复制

command [-options] [parameter]

说明:

  • command :命令名,相应功能的英文单词或单词的缩写
  • [-options] :选项,可用来对命令进行控制,也可以省略
  • parameter :传给命令的参数,可以是 零个、一个 或者 多个

☁️帮助信息

-help

说明:

  • 显示 command 命令的帮助信息
-man

说明:

  • 查阅 command 命令的使用手册 man 是 manual 的缩写,是 Linux 提供的一个 手册,包含了绝大部分的命令、函数的详细使用
  • 说明 使用 man 时的操作键

在这里插入图片描述

🌤️目录操作

代码语言:javascript

复制

pwd				查看当前工作目录
clear 			清除屏幕
cd ~			当前用户目录
cd /			根目录
cd -			上一次访问的目录
cd ..			上一级目录

☁️查看目录内信息

代码语言:javascript

复制

ll				查看当前目录下内容(LL的小写)

☁️创建目录

代码语言:javascript

复制

mkdir aaa		在当前目录下创建aaa目录,相对路径;
mkdir ./bbb		在当前目录下创建bbb目录,相对路径;
mkdir /ccc		在根目录下创建ccc目录,绝对路径;

☁️递归创建目录(会创建里面没有的目录文件夹)

代码语言:javascript

复制

mkdir -p temp/nginx 

☁️搜索命令

代码语言:javascript

复制

find / -name 'b'		查询根目录下(包括子目录),名以b的目录和文件;
find / -name 'b*'		查询根目录下(包括子目录),名以b开头的目录和文件; 
find . -name 'b'		查询当前目录下(包括子目录),名以b的目录和文件;

☁️重命名

代码语言:javascript

复制

mv 原先目录 文件的名称   mv tomcat001 tomcat 

☁️剪切命令(有目录剪切到制定目录下,没有的话剪切为指定目录)

代码语言:javascript

复制

mv	/aaa /bbb		    将根目录下的aaa目录,移动到bbb目录下(假如没有bbb目录,则重命名为bbb);
mv	bbbb usr/bbb		将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为bbb;
mv	bbb usr/aaa			将当前目录下的bbbb目录,移动到usr目录下,并且修改名称为aaa;

☁️复制目录

代码语言:javascript

复制

cp -r /aaa /bbb			将/目录下的aaa目录复制到/bbb目录下,在/bbb目录下的名称为aaa
cp -r /aaa /bbb/aaa		将/目录下的aa目录复制到/bbb目录下,且修改名为aaa;

☁️强制式删除指定目录

代码语言:javascript

复制

rm -rf /bbb			强制删除/目录下的bbb目录。如果bbb目录中还有子目录,也会被强制删除,

☁️删除目录

代码语言:javascript

复制

rm -r /bbb			普通删除。会询问你是否删除每一个文件
rmdir test01		目录的删除
12

☁️查看当前文件下的树状目录结构

代码语言:javascript

复制

tree ./

☁️批量操作

代码语言:javascript

复制

mkdir dirA dirB  #使用空格分开
touch A1 A2 A3    

🌤️文件操作

☁️删除

代码语言:javascript

复制

rm -r a.java		删除当前目录下的a.java文件(每次回询问是否删除y:同意)

☁️强制删除

代码语言:javascript

复制

rm -rf a.java		强制删除当前目录下的a.java文件
rm -rf ./a*			强制删除当前目录下以a开头的所有文件;
rm -rf ./*			强制删除当前目录下所有文件(慎用);

☁️递归删除.pyc格式的文件

代码语言:javascript

复制

find . -name '*.pyc' -exec rm -rf {} \;

☁️打印当前文件夹下指定大小的文件

代码语言:javascript

复制

find . -name "*" -size 10 -print

☁️递归删除指定大小的文件(10)

代码语言:javascript

复制

find . -name "*" -size 10 -exec rm -rf {} \;

☁️递归删除指定大小的文件,并打印出来

代码语言:javascript

复制

find . -name "*" -size 10 -print -exec rm -rf {} \;

  • “.” 表示从当前目录开始递归查找
  • “ -name ‘*.exe’ "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
  • " -type f "查找的类型为文件
  • “-print” 输出查找的文件目录名
  • -size 10 指定文件的大小
  • -exec rm -rf {} ; 递归删除(前面查询出来的结果)

🌤️文件内容操作

☁️修改文件内容

代码语言:javascript

复制

vim a.java   	进入一般模式
i(按键)   		进入插入模式(编辑模式)
ESC(按键)  		退出
:wq 			保存退出(shift+:调起输入框)
:q!			不保存退出(shift+:调起输入框)(内容有更改)(强制退出,不保留更改内容)
:q				不保存退出(shift+:调起输入框)(没有内容更改)

☁️文件内容的查看

代码语言:javascript

复制

cat a.java		查看a.java文件的最后一页内容;
more a.java		从第一页开始查看a.java文件内容,按回车键一行一行进行查看,
                    按空格键一页一页进行查看,q退出;
less a.java		从第一页开始查看a.java文件内容,按回车键一行一行的看,
                    按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;

more 和 less的区别

  1. less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
  2. less不必读整个文件,加载速度会比more更快
  3. less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容.
  4. 由于more不能后退.

🌤️Linux实用技巧

☁️小技巧:

ctrl + shift + = 放大终端窗口的字体显示 ctrl + - 缩小终端窗口的字体显示

☁️自动补全

在敲出 文件 / 目录 / 命令 的前几个字母之后,按下 tab 键

  • 如果输入的没有歧义,系统会自动补全 如果还存在其他 文件 / 目录 / 命令 ,再按一下 tab 键,系统会提示可能存在的命令小技巧
  • 按 上 / 下 光标键可以在曾经使用过的命令之间来回切换
  • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c

☁️终止当前操作

Ctrl+cCtrl+z都是中断命令,但是作用却不一样。

代码语言:javascript

复制

ctrl+z
ctrl+c

Ctrl+Z就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。 Ctrl+C也扮演类似的角色,强制中断程序的执行。

☁️重定向功能

可以使用 > 或 < 将命令的输出的命令重定向到test.txt文件中(没有则创建一个)

而>>表示追加,会将内容追加到已有文件的末尾

代码语言:javascript

复制

echo 'Hello World' > /root/test.txt

☁️管道 |

  • Linux 允许将 一个命令的输出 可以通过管道 做为 另一个命令的输入
  • 可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里 | 的左右分为两端,左端塞东西(写),右端取东西(读)

常用的管道命令有:

  • more :分屏显示内容
  • grep :在命令执行结果的基础上查询指定的文本

🌤️系统信息相关命令

☁️时间和日期

  • date 查看系统时间
  • cal calendar 查看日历, -y 选项可以查看一年的日历

☁️磁盘信息

  • df -h disk free 显示磁盘剩余空间
  • du -h [目录名] disk usage 显示目录下的文件大小

☁️进程信息

所谓进程,通俗地说就是 当前正在执行的一个程序

  • ps aux process status 查看进程的详细状况
  • top 动态显示运行中的进程并且排序
  • kill [-9] 进程代号 终止指定代号的进程, -9 表示强行终止

ps 默认只会显示当前用户通过终端启动的应用程序 ps 选项说明

选项含义:

  • a 显示终端上的所有进程,包括其他用户的进程
  • u 显示进程的详细状态
  • x 显示没有控制终端的进程

提示:使用 kill 命令时,最好只终止由当前用户开启的进程,而不要终止 root 身份开启的进程,否则可能导致系统崩溃

  • 要退出 top 可以直接输入 q

🌤️压缩和解压缩

在这里插入图片描述

☁️tar压缩(-c)

代码语言:javascript

复制

tar -cvf start.tar a.java b.java		//将当前目录下a.java、b.java打包
tar -cvf start.tar ./*					//将当前目录下的所欲文件打包压缩成haha.tar文件

tar -zcvf start.tar.gz a.java b.java	//将当前目录下a.java、b.java打包
tar -zcvf start.tar.gz ./*				//将当前目录下的所欲文件打包压缩成start.tar.gz文件

☁️tar解压缩(-x)

代码语言:javascript

复制

tar -xvf start.tar						//解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local 		//(C为大写,中间无空格)
										//解压start.tar压缩包,到/usr/local目录下;

tar -zxvf start.tar.gz					//解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local 	//(C为大写,中间无空格)
										//解压start.tar.gz压缩包,到/usr/local目录下;

解压缩tar.xz文件

代码语言:javascript

复制

tar xf node-v12.18.1-linux-x64.tar.xz

☁️压缩zip

代码语言:javascript

复制

zip lib.zip tomcat.jar							//将单个文件压缩(lib.zip)
zip -r lib.zip lib/								//将目录进行压缩(lib.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar		//将多个文件压缩为zip文件(lib.zip)	

☁️解压缩unzip

代码语言:javascript

复制

unzip file1.zip  								//解压一个zip格式压缩包
unzip -d /usr/app/com.lydms.english.zip			//将`english.zip`包,解压到指定目录下`/usr/app/`

🌤️用户权限

☁️组管理

创建组 / 删除组 的终端命令都需要通过 sudo 执行

序号

命令

作用

01

groupadd 组名

添加组

02

groupdel 组名

删除组

03

cat /etc/group

确认组信息

04

chgrp -R 组名 文件/目录名

递归修改文件/目录的所属组

  • 组信息保存在 /etc/group 文件中
  • /etc 目录是专门用来保存 系统配置信息 的目录

☁️用户管理

创建用户 / 删除用户 的终端命令都需要通过 sudo 执行

  • 创建用户的命令:sudo adduser [username]
  • 设置用户密码的命令:sudo passwd [username]
  • 删除用户的命令:sudo deluser [username]
  • 确认用户信息的命令:id [username]

修改其他用户密码的命令:sudo passwd [other_username](需要有管理员权限)

☁️查看用户信息

序号

命令

作用

01

id [用户名]

查看用户 UID 和 GID 信息

02

who

查看当前所有登录的用户列表

03

whoami

查看当前登录用户的账户名

which
  • /etc/passwd 是用于保存用户信息的文件
  • /usr/bin/passwd 是用于修改用户密码的程序 which 命令可以查看执行命令所在位置,例如:

代码语言:javascript

复制

which ls
# 输出
# /bin/ls
which useradd
# 输出
# /usr/sbin/useradd

☁️bin 和 sbin

  • 在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin
  • /bin ( binary )是二进制执行文件目录,主要用于具体应用
  • /sbin ( system binary )是系统管理员专用的二进制代码存放目录,主要用于系统管理
  • /usr/bin ( user commands for applications )后期安装的一些软件
  • /usr/sbin ( super user commands for applications )超级用户的一些管理程序

☁️切换用户

序 号

命令

作用

01

su - 用户名

切换用户,并且切换目录

02

exit

退出当前登录账户

su 不接用户名,可以切换到 root ,但是不推荐使用,因为不安全

☁️修改文件权限

序号

命令

作用

01

chown

修改拥有者

02

chgrp

修改组

03

chmod

修改权限

代码语言:javascript

复制

# 修改文件|目录的拥有者
chown 用户名 文件名|目录名
# 递归修改文件|目录的组
chgrp -R 组名 文件名|目录名
# 递归修改文件权限
chmod -R 755 文件名|目录名

🌤️管理常用命令

☁️关机/重启

序号

命令

对应英文

作用

01

shutdown

选项 时间 shutdown

关机/重新启动

代码语言:javascript

复制

# 重新启动操作系统,其中 now 表示现在
$ shutdown -r now
# 立刻关机,其中 now 表示现在
$ shutdown now
# 系统在今天的 20:25 会关机
$ shutdown 20:25
# 系统再过十分钟后自动关机
$ shutdown +10
# 取消之前指定的关机计划
$ shutdown -c
  • 不指定选项和参数,默认表示 1 分钟之后 关闭电脑
  • 远程维护服务器时,最好不要关闭系统,而应该重新启动系统

☁️ifconfig

ifconfig 可以查看/配置计算机当前的网卡配置信息

代码语言:javascript

复制

# 查看网卡配置信息
$ ifconfig
# 查看网卡对应的 IP 地址
$ ifconfig | grep inet

一台计算机中有可能会有一个 物理网卡 和 多个虚拟网卡,在 Linux 中物理网卡的名字通常以 ensXX 表示127.0.0.1 被称为 本地回环/环回地址,一般用来测试本机网卡是否正常。

☁️ping

ping 一般用于检测当前计算机到目标计算机之间的网络 是否通畅,数值越大,速度越慢。

代码语言:javascript

复制

# 检测到目标主机是否连接正常
$ ping IP地址
# 检测本地网卡工作正常
$ ping 127.0.0.1
  • ping 的工作原理与潜水艇的声纳相似, ping 这个命令就是取自 声纳的声音
  • 网络管理员之间也常将 ping 用作动词 —— ping 一下计算机X,看他是否开着

🌤️全篇总结

​ 本文介绍了Linux常用命令的大全,希望能帮助读者快速掌握Linux操作系统。

☁️ 还有一些常用的快捷键,如Tab键自动补全命令、Ctrl+C中断当前操作、Ctrl+D退出终端等。通过学习和掌握这些常用命令和快捷键,读者可以更加高效地使用Linux操作系统,提高工作效率。

希望本文对读者有所帮助,看到这里了希望给博主留个: 👍 点赞🌟收藏 ⭐️ 关注! 💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖 你们的点赞就是博主更新最大的动力