目录
- Linux基本命令
- 命令1:ls (查看指定目录中有哪些内容)
- ls / 相当于查看根目录中的内容,相当于查看我的电脑
- ls -l(小写l,或者使用ll)详细查看目录下所有内容
- ls /usr/lib(ls+目录名称)
- 命令2:pwd(显示用户在哪个目录下(绝对路径))
- 命令3:cd+目录名称(将用户切换到指定目录)
- cd+绝对路径:
- cd+相对路径:
- cd..返回上一级目录
- 小技巧:
- 命令4:touch+文件名称(创建空文件)
- 命令5:echo(主要是写文件)
- echo+字符串(打印内容到控制台)
- echo+字符串+>存在的文件(写文件)
- 注意:如果多次使用echo写文件,文件内容将会覆盖,以最后一次为准
- 命令6:cat+文件(打开指定文件)
- 命令7: mkdir(创建目录)
- 使用mkdir -p 加多级目录(可以直接生成多级目录)
- 命令8:rm(删除文件/目录)
- rm-r +要删除的目录(删除目录)
- 命令9:mv+需要移动的文件+移动到的目录(移动文件)
- mv第二个功能:给文件/目录重命名
- 命令10:cp+需要复制的文件+复制的新路径(复制文件)
- cp-r +复制的目录+复制的路径(复制目录)
- 命令11:man ls(查看各种命令的含义指令)
- 命令12:less+文件名称(分页查看)
- 命令13:vim+文件名称(创建/打开文件(适合长文本的文件进行书写插入))
- 命令14:grep+字符串内容+文件名称(查找文件中是否包含该字符串)
- 命令15:netstat -anp | grep +端口号 (根据端口号查询进程)
- 命令16:kill命令(根据进程PID杀掉进程kill -signal PID)
- 命令17:killall命令
- 命令18:tar命令
- 命令19:cat命令
- 命令20:chmod命令
- 命令21:uptime 系统运行了多久
- 命令22:uname 打印系统信息
- 命令23:lscpu – 显示 CPU 架构信息
- 命令24:lsblk 列出块设备
- 命令25:lsmod – 显示 Linux 内核模块的状态
- 命令26:dmesg 打印或控制内核环缓冲区
- Linux 系统管理命令
- 命令27:sudo – 以其他用户身份执行命令
- 命令28:su – 更改用户 ID 或成为超级用户使用
- 命令29:shutdown – 关闭或重启 Linux
- 命令30:reboot – 重启或重新启动系统
- 命令31:history – 显示当前终端会话中以前使用过的命令
- 命令32:删除以前别名
- 命令33:pwd – 代表“打印工作目录”,它输出您所在目录的绝对路径
- 命令34:../ – 也许 ./ 符号本身不是命令,但在这个列表中值得一提
- 命令35:exit – 自动关闭正在使用的终端
- 命令36:apt、yum、pacman 命令
- 命令37:which – 输出shell命令的完整路径
- 命令38:tail – 打印文件内容后几行
- 命令39:free – 显示可用和已用内存量
- 命令40:df – 报告文件系统磁盘空间使用情况
- 命令41:head – 输出文本文件的前10行。
- 使用 Linux 命令的 7 大技巧
- 小结
————————————————————————————————————————————————————————————
Linux主要是通过命令行来进行操作的。
了解一下主机当中的命令行:
Linux基本命令
命令1:ls (查看指定目录中有哪些内容)
直接使用ls,是查看当前目录:
笔者的当前目录为空。
当然也可以在ls后面加上绝对路径或者相对路径,来获取到指定路径下的目录:
ls / 相当于查看根目录中的内容,相当于查看我的电脑
ls -l(小写l,或者使用ll)详细查看目录下所有内容
ls -l /:
ll / :
ls /usr/lib(ls+目录名称)
命令2:pwd(显示用户在哪个目录下(绝对路径))
命令3:cd+目录名称(将用户切换到指定目录)
cd后面可以加绝对路径也可以加相对路径
cd+绝对路径:
cd+相对路径:
既可以用绝对路径访问lib目录,也可以使用相对路径。
cd…返回上一级目录
小技巧:
使用cd的时候可以使用tab键位进行补全,如果有一个匹配的选项,直接补全,如果有多个,双击tab就可以列出所有的匹配结果(ctrl+l可以进行清屏)
命令4:touch+文件名称(创建空文件)
命令5:echo(主要是写文件)
echo+字符串(打印内容到控制台)
echo+字符串+>存在的文件(写文件)
注意:如果多次使用echo写文件,文件内容将会覆盖,以最后一次为准
从hellolinux覆盖为hello
命令6:cat+文件(打开指定文件)
打开刚刚写入内容的hellolinux.txt文件:
命令7: mkdir(创建目录)
创建java106这个文件夹。然后我们就可以进入该目录:
使用mkdir -p 加多级目录(可以直接生成多级目录)
命令8:rm(删除文件/目录)
使用rm删除的时候,rm只能删除文件,不能删除目录,输入y的时候表示删除,输入n表示不删除。如果想要删除目录,就需要使用rm-r进行操作
rm-r +要删除的目录(删除目录)
成功删除ccc目录。
命令9:mv+需要移动的文件+移动到的目录(移动文件)
成功将text.txt文件移动到222文件夹下面。
mv第二个功能:给文件/目录重命名
给目录222重命名为333
给333下的text.txt改成t.txt
命令10:cp+需要复制的文件+复制的新路径(复制文件)
cp是属于复制+粘贴,并不删除原来的文件,如果想要复制的是目录的话,就需要使用cp-r +复制的目录+复制的路径
cp-r +复制的目录+复制的路径(复制目录)
将目录333复制到目录aaa当中
命令11:man ls(查看各种命令的含义指令)
看完退出输入q即可
命令12:less+文件名称(分页查看)
同样输入q退出即可
命令13:vim+文件名称(创建/打开文件(适合长文本的文件进行书写插入))
vm+文件名称,如果文件名称不存在,则创建文件,存在则打开文件。
如果存在就会打开文件进入普通模式,如果想要进行编辑则需要进入插入模式(输入i)
编辑完成后按下ESC键退出插入模式,然后输入:(冒号)光标会调到最后,再输入wq就成功保存并且退出了。
注意:如果文本没有进行改变,输入:q也是可以直接退出,一旦改变了就会报错
为什么不使用vim查看日志?
因为首先日志一般不需要进行编辑,另外vim没有分页,一次性出现大量的内容容易使服务器出现宕机。
命令14:grep+字符串内容+文件名称(查找文件中是否包含该字符串)
命令15:netstat -anp | grep +端口号 (根据端口号查询进程)
主要是用来查询端口号占用情况。
命令16:kill命令(根据进程PID杀掉进程kill -signal PID)
该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下:
kill -signal PID
signal的常用参数如下:
注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入ctrl+c,中断一个程序的进行
9:SIGKILL,强制中断一个进程的进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行
例如:
#以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程
kill -SIGTERM %1
#重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得
kill -SIGHUP PID
命令17:killall命令
该命令用于向一个命令启动的进程发送一个信号,它的一般语法如下:
killall [-iIe] [command name]
它的参数如下:
-i :交互式的意思,若需要删除时,会询问用户
-e :表示后面接的command name要一致,但command name不能超过15个字符
-I :命令名称忽略大小写
#例如:
killall -SIGHUP syslogd # 重新启动syslogd
命令18:tar命令
该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。它的常用参数如下:
-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
上面的解说可以已经让你晕过去了,但是通常我们只需要记住下面三条命令即可:
压缩:tar -jcv -f filename.tar.bz2 要被处理的文件或目录名称
查询:tar -jtv -f filename.tar.bz2
解压:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
注:文件名并不定要以后缀tar.bz2结尾,这里主要是为了说明使用的压缩程序为bzip2
命令19:cat命令
该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。例如:
cat text | less # 查看text文件中的内容
#注:这条命令也可以使用less text来代替
命令20:chmod命令
该命令用于改变文件的权限,一般的用法如下:
chmod [-R] xyz 文件或目录
-R:进行递归的持续更改,即连同子目录下的所有文件都会更改
同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改。
chmod g+w file # 向file的文件权限中加入用户组可写权限
命令21:uptime 系统运行了多久
uptime 命令显示 Linux 系统自上次重启以来已经运行了多长时间。它会打印出运行时间和当前时间。
只需运行以下命令即可获取系统运行时间数据:
uptime
10:06:39 up 218 days, 17:48, 1 user, load average: 0.00, 0.03, 0.05
这将打印系统正常运行时间,显示系统自上次启动以来的运行时间。
命令22:uname 打印系统信息
uname 命令可打印 Linux 系统内核、硬件架构、主机名和操作系统的详细信息。其中包括版本号和机器信息。
uname(Unix name的缩写)打印可操作的系统信息,当您知道当前的Linux版本时,这些信息很方便。
大多数情况下,您将使用-a(–all)标志,因为默认输出没有那么有用:
uname
# Linux
uname -a
# Linux wboltmanjaro 5.4.138-1-MANJARO #1 SMP PREEMPT Thu Aug 5 12:15:21 UTC 2021 x86_64 GNU/Linux
例子:
uname -a
Linux hostname 5.4.0-48-generic x86_64 GNU/Linux
uname 对于查询这些核心系统详细信息非常有用。一些选项包括:
-a – 打印所有可用的系统信息
-r – 只打印内核版本号
上述命令打印了扩展系统信息,包括内核名称/版本、硬件架构、主机名和操作系统。
uname -r
这将只打印内核版本号。 uname 命令显示 Linux 系统核心组件的详细信息。
命令23:lscpu – 显示 CPU 架构信息
lscpu 命令显示详细的 CPU 架构信息,包括
CPU 内核数
接口数量
型号名称
缓存大小
CPU 频率
地址大小
要使用 lscpu 命令,只需键入:
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
lscpu 详细列出 CPU 架构,如内核数、插口、型号名称、缓存等。
命令24:lsblk 列出块设备
lsblk 命令列出所有可用块设备的信息,包括本地磁盘、分区和逻辑卷。输出包括设备名称、标签、大小和挂载点。
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 80G 0 disk
└─vda1 253:1 0 80G 0 part /
vdb 253:16 0 40G 0 disk
└─vdb1 253:17 0 40G 0 part /mnt
loop0 7:0 0 2.1G 0 loop /KingbaseMysql/KingbaseES
lsblk 列出所有块设备,包括磁盘、分区和逻辑卷。提供存储设备概览。
命令25:lsmod – 显示 Linux 内核模块的状态
lsmod 命令会打印当前加载的内核模块(如设备驱动程序)。这包括 Linux 内核用于连接内部和外部设备的网络、存储和其他硬件相关模块。
lsmod
Module Size Used by
ipv6 406206 27
evdev 17700 0
crct10dif_pclmul 16384 1
crc32_pclmul 16384 0
ghash_clmulni_intel 16384 0
aesni_intel 399871 0
aes_x86_64 20274 1 aesni_intel
可以看到,它列出了当前加载的内核模块(如设备驱动程序)。在本例中,它显示了网络、输入、加密和加密模块的使用情况。
命令26:dmesg 打印或控制内核环缓冲区
dmesg 命令从内核环形缓冲区转储信息。其中包括内核在启动和运行过程中记录的重要系统事件。
dmesg | grep -i error
[ 12.345678] Error receiving batched read response: -110
[ 23.456789] tplink_mdio 0000:03:00.0: Direct firmware load for tplink-mdio/leap_p8_v1_0.bin failed with error -2
[ 40.567890] iwlwifi 0000:09:00.0: Direct firmware load for iwlwifi-ty-a0-gf-a0-59.ucode failed with error -2
搜索 “错误” 会显示加载特定固件时出现的问题。这将打印缓冲的内核日志信息,包括启动、错误、警告等系统事件。
Linux 系统管理命令
系统管理员命令可帮助你以其他用户身份运行程序、关闭或重启系统,以及管理 init 系统和服务。
命令27:sudo – 以其他用户身份执行命令
sudo 命令允许你以另一个用户(通常是超级用户)的身份运行命令。输入 sudo 命令后,系统会提示您输入密码进行身份验证。
这为安装软件包、编辑系统文件、管理服务等任务提供了高级访问权限。
此命令代表“超级用户do”,它允许您在运行特定命令时充当超级用户或根用户。这就是Linux如何保护自己,防止用户意外修改机器的文件系统或安装不合适的软件包。
Sudo通常用于安装软件或编辑用户主目录以外的文件:
sudo apt install gimp
sudo cd /root/
在运行您键入的命令之前,它会要求您输入管理员密码。
又如:
sudo adduser king
[sudo] password for john:
系统已添加用户 “king”。
这将使用 sudo 创建新用户 “king”。如果没有 sudo,普通用户通常无法添加用户。
命令28:su – 更改用户 ID 或成为超级用户使用
su 命令可以切换到另一个用户账户,包括超级用户。必须提供目标用户的密码才能进行身份验证。这样就可以直接在另一个用户的环境中运行命令。
例子:
su king
Password:
king@linux:~$
输入 king 的密码后,该命令会将当前用户切换为用户 “king”。shell 提示符将反映新用户。
命令29:shutdown – 关闭或重启 Linux
shutdown 命令用于在指定计时器后或立即关闭、停止或重启系统。要安全地重启或关闭多用户 Linux 系统,需要使用该命令。
正如您可能猜到的,shutdown命令允许您关闭机器电源。但是,它也可以用来停止和重新启动它。
要立即关闭计算机电源(默认为一分钟),请键入:
shutdown now
您还可以计划以24小时格式关闭系统:
shutdown 20:40
要取消以前的shutdown调用,可以使用-c标志:
shutdown -c
又如:
shutdown -r now
Broadcast message from root@linux Fri 2023-01-20 18:12:37 CST:
The system is going down for reboot NOW!
命令30:reboot – 重启或重新启动系统
reboot 命令可重启 Linux 操作系统,注销所有用户并安全地重启系统。它会同步磁盘,并在重启前干净利落地关闭系统。
例子:
reboot
Restarting system.
reboot 是 shutdown -r 的简单替代方案。
命令31:history – 显示当前终端会话中以前使用过的命令
如果你正在努力记住一个命令,history就会派上用场。此命令显示一个枚举列表,其中包含您过去使用过的命令:
history
命令32:删除以前别名
unalias– 顾名思义,unalias命令旨在从已定义的别名中删除alias。
要删除以前的ls别名,可以使用:
unalias ls
命令33:pwd – 代表“打印工作目录”,它输出您所在目录的绝对路径
例如,如果您的用户名是“john”,并且您位于文档目录中,则其绝对路径将是 /home/john/Documents.要使用它,只需在终端中键入pwd:
pwd
#My result: /home/wbolt/Documents/linux-commands
命令34:…/ – 也许 ./ 符号本身不是命令,但在这个列表中值得一提
它允许shell直接从终端运行可执行文件,并在系统中安装任何解释器。不再双击图形文件管理器中的文件!例如,使用此命令,您可以运行Python脚本或仅以.run格式提供的程序,如XAMPP。运行可执行文件时,请确保它具有可执行(x)权限,您可以使用chmod命令修改该权限。下面是一个简单的Python脚本,以及如何使用 ./ 符号运行它:
#! /usr/bin/python3
#filename: script
for i in range(20):
print(f"This is a cool script {i}")
下面是我们如何将脚本转换为可执行文件并运行它:
chmod +x script
./script
命令35:exit – 自动关闭正在使用的终端
exit命令完全按照其名称执行:使用它,您可以结束shell会话,并且在大多数情况下,可以自动关闭正在使用的终端:
exit
命令36:apt、yum、pacman 命令
无论您使用的是哪个Linux发行版,您都可能使用package管理器来安装、更新和删除您每天使用的软件。您可以通过命令行访问这些package管理器,并根据您的计算机运行的发行版使用其中一个或另一个package管理器。以下示例将安装GIMP,这是一种通常在大多数package管理器中可用的免费开源软件:
- Debian-based (Ubuntu, Linux Mint)
sudo apt install gimp
- Red Hat-based (Fedora, CentOS)
sudo yum install gimp
- Arch-based (Manjaro, Arco Linux)
sudo pacman -S gimp
命令37:which – 输出shell命令的完整路径
which命令输出shell命令的完整路径。如果它不能识别给定的命令,它将抛出一个错误。例如,我们可以使用它来检查Python和Brave web浏览器的二进制路径:
which python
#/usr/bin/python
which brave
#/usr/bin/brave
命令38:tail – 打印文件内容后几行
与cat类似,tail打印文件内容时有一个主要警告:它只输出最后几行。默认情况下,它打印最后10行,但您可以使用-n修改该数字。例如,要打印大型文本文件的最后几行,可以使用:
tail long.txt
要仅查看最后四行,请执行以下操作:
tail -n 4 long.txt
命令39:free – 显示可用和已用内存量
free 命令显示系统中物理内存和交换内存的总量、已用量和空闲量。这将提供可用内存的总体情况。
例子:
free -h
free 命令的一些选项:
-b – 以字节为单位显示输出
-k – 以 KB(而非默认字节)为单位显示输出结果
-m – 以 MB 为单位显示输出,而不是以字节为单位
-h – 以 GB、MB 等人类可读格式打印统计数据,而不是字节。
以人类可读格式(GB、MB 等)打印内存统计数据。当你想快速了解内存容量时,它非常有用。
命令40:df – 报告文件系统磁盘空间使用情况
df 命令显示文件系统的磁盘空间使用情况。它会显示文件系统名称、总/已用/可用空间和容量。
例子:
df -h
上述命令将以人类可读的格式打印磁盘利用率。也可以不带参数运行该命令,以块大小获得相同的数据。
命令41:head – 输出文本文件的前10行。
这是对tail命令的补充。head输出文本文件的前10行,但您可以使用-n标志设置要显示的任意行数:
head long.txt
head -n 5 long.txt
使用 Linux 命令的 7 大技巧
了解你的 shell:Bash、zsh 还是 fish?不同的 shell 都有独特的功能。选择一个最适合你需要的。
掌握核心工具:ls, cat, grep, sed, awk, 等构成了 Linux 工具包的核心。
坚持使用管道:避免过多使用临时文件。巧妙地将程序管道化。
在覆盖前进行验证:在使用 > 和 >> 覆盖文件之前,一定要仔细检查。
跟踪工作流程:记录复杂的命令和工作流程,以便日后重复使用或共享。
自制工具:为经常执行的任务编写简单的 shell 脚本和别名。
不使用sudo启动:最初使用标准用户账户来了解权限。
请记住,要不断在虚拟机或 VPS 服务器上测试新命令,以便在开始在生产服务器上使用这些命令之前,让它们成为你的第二天性。
小结
学习Linux可能需要一些时间,但是一旦你掌握了它的一些工具,它就成了你最好的盟友,你不会后悔选择它作为你的日常司机。
Linux的一个显著之处在于,即使您是经验丰富的用户,您也永远不会停止学习使用它提高工作效率。
有更多有用的Linux命令。如果我们遗漏了一些东西,请在下面的评论中分享您最喜爱的Linux 命令!