shell常用命令
一、Ubuntu终端操作
打开终端进行命令行操作
要打开Ubuntu终端进行命令行操作,可以按下"Ctrl + Alt + T"快捷键,或者按下"Super"键(通常是Windows键)并搜索"Terminal"来打开终端。
二、Shell命令
1、目录信息查看命令ls
ls -a 显示目录所有文件及文件夹,包括隐藏文件,比如以.开头的
ls是Linux系统中用于查看目录信息的命令。使用ls命令可以列出当前工作目录中的文件和目录。默认情况下,ls命令会显示文件和目录的名称。以下是一些常用的ls命令选项:
- ls -l:以长格式显示文件和目录的详细信息,包括文件的权限、所有者、大小、修改日期等。
- ls -a:显示所有文件和目录,包括以点开头的隐藏文件。
- ls -h:以人类可读的格式显示文件和目录的大小。
- ls -R:递归地显示子目录中的文件和目录。
- ls -t:按照修改时间的顺序显示文件和目录。
- ls -S:按照文件大小的顺序显示文件和目录。
可以使用man ls命令查看更多关于ls命令的详细信息和其他选项。
2、目录切换命令cd
cd是一个用于在命令行界面中切换目录的命令。它是"change directory"的缩写。通过cd命令,您可以进入到指定的目录或者返回上一级目录。
以下是一些常用的cd命令示例:
-
进入一个目录: cd 目录名
例如,要进入名为"Documents"的目录,可以输入: cd Documents
-
返回上一级目录: cd ..
例如,如果您当前处于"Documents"目录,想返回上一级目录,可以输入: cd ..
-
进入用户主目录: cd ~
例如,要进入当前用户的主目录,可以输入: cd ~
-
进入根目录: cd /
例如,要进入系统的根目录,可以输入: cd /
这些是一些常见的cd命令用法示例,但实际上cd命令还有很多其他的选项和用法。您可以通过在命令行界面中输入"cd --help"来查看详细的帮助信息。
3、当前路径显示命令pwd
在终端中,输入pwd
命令可以显示当前路径。
#显示当前工作目录的绝对路径:$ pwd
/home/user/Documents#使用-L选项显示逻辑路径,即解析链接:$ pwd -L
/home/user/Documents使用-P选项显示物理路径,即不解析链接:$ pwd -P
/var/www/html使用--help选项显示pwd命令的帮助信息:
$ pwd --help
4、系统信息查看命令uname
uname命令是用来查看系统信息的,主要用于显示内核版本和系统架构。常用的选项如下:
- -a或--all:显示全部信息,包括系统名称、内核名称、主机名、内核版本、操作系统类型、处理器类型等。
- -s或--kernel-name:显示内核名称。
- -r或--kernel-release:显示内核版本。
- -n或--nodename:显示网络节点主机名。
- -m或--machine:显示系统架构。
- -v或--kernel-version:显示内核版本。
- -o或--operating-system:显示操作系统类型。
- --help:显示帮助信息。
示例用法:
$ uname -a
Linux ubuntu 5.4.0-52-generic #57~18.04.1-Ubuntu SMP Thu Oct 15 14:04:49 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux$ uname -s
Linux$ uname -r
5.4.0-52-generic$ uname -n
ubuntu$ uname -m
x86_64$ uname -v
#57~18.04.1-Ubuntu SMP Thu Oct 15 14:04:49 UTC 2020$ uname -o
GNU/Linux
5、清理屏幕命令clear
清理屏幕命令 `clear` 是一个用于清空终端窗口中的所有文本内容的命令。它会将屏幕上的所有文本清除掉,以便于重新开始新的操作。在使用该命令时,屏幕上的所有内容将会被清除,包括之前输入或输出的命令和文本。
6、显示文件内容命令cat
"cat"命令用于显示文件的内容。在命令行中,使用以下语法来显示文件的内容:
cat [选项] 文件名
例如,要显示名为"example.txt"的文本文件的内容,可以使用以下命令:
cat example.txt
这将在命令行中显示该文件的全部内容。如果文件内容很长,可以使用键盘上的方向键进行滚动浏览。
7、切换用户身份命令sudo
sudo命令是Linux系统中的一种特殊命令,用于以超级用户(root用户)身份执行其他命令。它可以切换用户身份并获得更高的访问权限。
要切换用户身份,请在命令前加上sudo,并在sudo后面指定要执行的命令。例如,要切换到root用户身份,请输入以下命令:
sudo su
然后,系统会要求您输入当前用户的密码。输入密码后,您将进入root用户的Shell环境。
除了切换到root用户身份外,您还可以使用sudo命令切换到其他用户身份,只需在sudo后面加上要切换到的用户名。例如,要切换到用户"test"的身份,请输入以下命令:
sudo -u test
然后,系统会要求您输入当前用户的密码。输入密码后,您将以"test"用户的身份执行后续命令。
需要注意的是,只有具有sudo权限的用户才能使用sudo命令切换到其他用户身份。可以通过编辑/etc/sudoers文件来分配sudo权限给指定用户。
8、文件拷贝命令cp
cp命令用于将文件或目录从一个位置复制到另一个位置。它的基本语法为:
cp [选项] 源文件 目标文件
选项:
- -r:递归复制整个目录。
- -i:在复制前询问是否覆盖已存在的文件。
- -a:保持原文件的属性,包括权限、时间戳等。
- -u:只复制源文件比目标文件新或者目标文件不存在的文件。
- -p:保持原文件的权限。
示例:
-
将文件file1.txt复制到目录dir1,并重命名为file2.txt: cp file1.txt dir1/file2.txt
-
将目录dir1及其所有内容复制到dir2: cp -r dir1 dir2
-
复制文件file1.txt到目录dir1,如果目标文件已存在,则询问是否覆盖: cp -i file1.txt dir1/
-
保持文件file1.txt的属性,包括权限和时间戳,并将其复制到目录dir1: cp -a file1.txt dir1/
-
只复制源文件比目标文件新或者目标文件不存在的文件: cp -u file1.txt dir1/
-
复制文件file1.txt到目录dir1,并保持原文件的权限: cp -p file1.txt dir1/
注意:
- 如果目标文件已存在,则默认情况下会直接覆盖。如果想要在覆盖前询问是否覆盖,可以使用选项
-i
。 - 如果复制的源文件是一个目录,需要使用选项
-r
来递归复制整个目录。 - 复制操作会创建一个新的文件,不会影响源文件。
9、切换用户命令su
su命令用于切换到其他用户。在Linux系统中,它需要使用root用户或管理员权限才能执行。以下是su命令的使用方法:
- 打开终端或命令提示符。
- 输入su命令,然后按下Enter键。
- 输入要切换到的用户的用户名,然后按下Enter键。
- 输入该用户的密码,然后按下Enter键。
- 如果密码正确,命令提示符将显示切换到的用户。
- 如果要返回到原始用户,请输入exit命令并按下Enter键。
注意事项:
- 在执行su命令时,请确保您有合法的权限和正确的密码。
- 使用su命令切换到root用户时,要格外小心,因为root用户拥有系统的完全访问权限。
- 在某些系统中,可能需要在su命令前加上sudo,例如:sudo su。这是因为系统配置了sudo权限管理。
- 某些Linux发行版可能禁用了su命令,而仅支持使用sudo命令切换用户。
10、移动文件命令mv
mv命令是用来移动文件或者文件夹的命令,它的基本语法如下:
mv [选项] [源文件或目录] [目标文件或目录]
其中,源文件或目录为要被移动的文件或文件夹的路径,目标文件或目录为移动后的目标路径。
常用选项:
- -f:强制移动,即不进行任何提示。
- -i:交互式移动,如果目标文件路径已经存在,则会询问是否覆盖。
- -u:只会在源文件比目标文件新或者目标文件不存在时才会移动。
- -t:将源文件移动到目标目录下。
示例:
-
将文件file.txt移动到目录/path下: mv file.txt /path
-
将文件file.txt移动并重命名为file2.txt: mv file.txt file2.txt
-
将目录dir1移动到目录dir2下: mv dir1 dir2
-
将文件file.txt和file2.txt移动到目录/path下: mv file.txt file2.txt /path
注意事项:
- 如果目标路径存在同名文件或目录,则会将源文件覆盖到目标路径。
- 如果目标路径不存在,则会将源文件或文件夹重命名为目标路径。
11、创建文件夹命令mkdir
mkdir命令用于创建文件夹(目录)。可以使用以下命令来创建文件夹:
mkdir foldername
其中,foldername是你要创建的文件夹的名称。例如,要创建一个名为"documents"的文件夹,可以使用以下命令:
mkdir documents
此命令将在当前工作目录下创建一个名为"documents"的文件夹。如果要指定路径来创建文件夹,可以在文件夹名称前加上路径:
mkdir /path/to/foldername
其中,/path/to是你要创建文件夹的路径。例如,要在根目录下创建一个名为"files"的文件夹,可以使用以下命令:
mkdir /files
需要注意的是,你需要对所在目录拥有适当的权限才能创建文件夹。
12、创建文件命令touch
在命令行中,touch
命令用于创建一个新的空文件。语法如下:
touch [选项] <文件名>
选项:
-a
:修改文件访问时间。-m
:修改文件修改时间。-c
:不创建文件,只修改文件时间。-t
:使用指定的时间戳(格式为[CC]YY]MMDDhhmm[.ss])创建文件。-r
:使用指定文件的时间戳创建文件。
示例:
- 创建一个新的空文件:
touch file.txt
- 创建多个新的空文件:
touch file1.txt file2.txt file3.txt
- 使用指定的时间戳创建文件:
touch -t 202201011200.00 file.txt
这将创建一个文件,其时间戳为2022年1月1日12点整。
请注意,touch
命令还可以用于修改文件的访问时间和修改时间。
13、删除命令rm
要删除文件或目录,可以使用rm命令。请注意,rm命令是一个非常强大的命令,删除的文件或目录将无法恢复。在执行rm命令之前,请确保你要删除的文件或目录是你想要删除的。
要删除文件,可以使用以下命令:
rm filename
要删除目录及其所有内容,可以使用以下命令:
rm -r directory
请谨慎使用rm命令,以避免意外删除重要文件或目录。
14、目录删除命令rmdir
rmdir命令用于删除空目录。使用该命令时,需要提供要删除的目录的路径。
语法: rmdir [选项] 目录路径
选项: -p:如果要删除的目录路径中包含空目录,则同时删除空目录
-v:显示目录删除的详细信息
示例:
- 删除目录:rmdir /path/to/directory
- 删除目录并显示详细信息:rmdir -v /path/to/directory
- 删除目录及其子目录:rmdir -p /path/to/directory
15、显示网络配置信息命令ifconfig
ifconfig命令用于显示或设置网络配置信息,例如IP地址、子网掩码、网关等。在Linux和Unix系统中,ifconfig是一个常用的命令,可以用来查看和配置网络接口的信息。
在终端中输入ifconfig可以查看当前系统的网络配置信息。例如,可以查看网络接口的名称(如eth0、wlan0等)、IP地址、子网掩码、广播地址、MAC地址等。
示例输出:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fed5:8c0e prefixlen 64 scopeid 0x20<link>
ether 08:00:27:d5:8c:0e txqueuelen 1000 (Ethernet)
RX packets 899625 bytes 477388691 (455.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 213065 bytes 24603303 (23.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
从上述示例输出可以看到,eth0是网络接口的名称,它的IP地址是192.168.1.100,子网掩码是255.255.255.0,广播地址是192.168.1.255等。
除了显示网络配置信息外,ifconfig命令还可以用来配置网络接口的信息,例如设置IP地址、子网掩码、网关等。具体使用方法可以通过在终端中输入man ifconfig命令进行查看。
16、重启命令reboot
重启命令"reboot"是在计算机或服务器中执行的一个命令,用于重新启动系统。当系统出现问题或需要更新配置时,可以使用此命令来重新启动计算机,以使更改生效。
17、关机命令poweroff
关机命令poweroff用于关闭计算机。在终端中键入该命令后,计算机将会立即关闭。请注意,关机前请确保所有的工作已保存并关闭,以避免数据丢失。
18、系统帮助命令man
man命令是用来查看Linux系统中的命令帮助信息的工具。
使用man命令的格式为:man 命令名称
例如,要查看ls命令的帮助信息,可以运行命令:
man ls
man命令将打开一个包含该命令的帮助页面。帮助页面中包含了命令的详细说明、用法示例以及其他相关信息。
在man页面中,可以使用以下快捷键进行操作:
- 空格键:向下翻一页
- Enter键:向下翻一行
- b键:向上翻一页
- q键:退出man页面
man命令有时会将帮助信息分成多个章节。要查看特定章节的帮助信息,可以在命令后面加上章节号,例如:
man 5 passwd
上述命令将显示关于passwd文件的帮助信息。
man命令还可以通过关键字搜索帮助信息。使用/man命令可以进入man命令搜索界面。在搜索界面中,可以输入关键字来查找相关的帮助信息。
man命令是Linux系统中一个非常有用的工具,可以帮助用户快速了解和学习各种命令的用法和功能。
19、数据同步写入磁盘命令sync
sync命令用于将内存中的数据同步写入磁盘。它可以确保文件系统中的所有数据都已写入磁盘,以防止数据丢失或文件系统损坏。
使用sync命令非常简单,只需在终端中输入sync即可。执行命令后,系统会开始将所有待写入的数据同步写入磁盘。请注意,sync命令可能需要一段时间来完成,这取决于系统负载和待写入的数据量。
在Linux和Unix系统中,sync命令通常由系统管理员使用,以便在执行重要操作之前确保数据的完整性。例如,在执行关机或重启操作之前,通常会使用sync命令将所有数据写入磁盘。
20、查找文件命令find
find命令是一个在Linux和Mac系统中用于搜索文件和目录的命令。
基本语法如下:
find [路径] [选项] [操作]
常用选项:
-name
:按照文件名进行搜索。-type
:按照文件类型进行搜索。-size
:按照文件大小进行搜索。-mtime
:按照文件修改时间进行搜索。
常用操作:
-print
:打印文件路径。-ls
:显示文件详细信息。
示例用法:
- 搜索当前目录下所有名为
test.txt
的文件:find . -name test.txt
- 搜索当前目录下所有的目录:
find . -type d
- 搜索当前目录下所有大于1MB的文件:
find . -size +1M
- 搜索当前目录下最近修改时间在7天内的文件:
find . -mtime -7
需要注意的是,find命令是递归搜索的,会搜索指定目录下的所有子目录。如果不指定路径,默认从当前目录开始搜索。
21、查找内容命令grep
grep命令是在Unix和类Unix系统中查找文件中匹配指定模式的行的命令。
常用的grep命令格式为:
grep [选项] 模式 文件名
常用的选项包括:
- -i:忽略大小写。
- -v:显示不匹配模式的行。
- -r:递归地搜索子目录中的文件。
- -l:仅显示匹配模式的文件名。
- -n:显示匹配模式的行及其行号。
- -e:指定多个模式,用于匹配多个模式的行。
以下是一些例子:
- 在文件example.txt中查找包含"apple"的行:
grep "apple" example.txt
- 忽略大小写,在当前目录及其子目录中递归地查找包含"apple"的行:
grep -ri "apple" .
- 查找多个模式,在文件example.txt中查找同时包含"apple"和"orange"的行:
grep -e "apple" -e "orange" example.txt
- 仅显示匹配模式的文件名,在当前目录及其子目录中查找包含"apple"的文件:
grep -rl "apple" .
- 显示匹配模式的行及其行号,在文件example.txt中查找包含"apple"的行,并显示行号:
grep -n "apple" example.txt
以上是一些常见的grep命令的使用方式,你可以根据自己的需求调整选项和参数来查找所需的内容。
22、通配符查找
通配符是一种在文件系统中用于匹配文件名的特殊字符。它可以帮助我们在命令行中快速选择或操作多个文件。
在Unix和类Unix系统中,常用的通配符有以下几种:
-
星号(*):匹配零个或多个字符。 例如,
ls *.txt
会列出当前目录中所有以".txt"结尾的文件。 -
问号(?):匹配一个任意字符。 例如,
ls file?.txt
会列出当前目录中所有名字为"file"加上任意一个字符再加上".txt"的文件。 -
方括号([ ]):匹配方括号中列举的字符之一。 例如,
ls [abc]*.txt
会列出当前目录中以字母"a"、"b"或"c"开头的任意字符再加上".txt"的文件。 -
花括号({ }):用于指定多个选择中的一个。 例如,
mv file{1,2}.txt destination/
会将名字为"file1.txt"和"file2.txt"的文件移动到目录"destination"中。
这些通配符可以与命令结合使用,例如ls
、cp
、mv
等命令,用于选择多个文件进行操作。
需要注意的是,通配符是在Shell中进行文件名匹配的,因此在使用通配符时需要保证文件名匹配的准确性和安全性。如果文件名中包含特殊字符或空格,可以使用引号将文件名括起来,以避免解析错误。
23、文件夹大小查看命令du
du命令是Linux和Unix系统中用于查看文件夹大小的命令。它递归地查看文件夹中所有文件和子文件夹的大小,并给出总大小的报告。
以下是一些常用的du命令选项:
- du -h:以人类可读的格式显示文件夹大小。例如,以KB、MB或GB显示文件夹大小。
- du -s:仅显示文件夹的总大小,而不显示文件和子文件夹的详细信息。
- du -c:在报告的末尾显示总大小。
- du -a:显示文件夹中每个文件和子文件夹的大小。
- du -d <depth>:限制递归查看的深度。例如,du -d 1只查看文件夹中的直接子文件和子文件夹大小。
- du --exclude=<pattern>:排除某些文件或文件夹的大小。可以使用通配符。
以下是一些du命令的例子:
- du -h /path/to/folder:显示指定文件夹的大小,以人类可读的格式。
- du -sh /path/to/folder:仅显示指定文件夹的总大小,以人类可读的格式。
- du -ah /path/to/folder:显示指定文件夹中每个文件和子文件夹的大小。
- du -h --exclude=*.txt /path/to/folder:显示指定文件夹的大小,但排除所有以.txt结尾的文件。
这些是du命令的一些基本用法,还有其他一些选项和用法可供进一步探索。
24、磁盘空间检查命令df
df命令是用于检查磁盘空间使用情况的命令。它会显示文件系统的总空间、已用空间、可用空间以及使用率等信息。
在Linux或Unix系统中,可以通过在终端中输入"df"命令来使用。默认情况下,它会显示所有已挂载的文件系统的空间使用情况。如果想只显示某个特定的文件系统,可以使用"-h"选项来显示以人类可读的方式展示磁盘空间使用情况。
例如: df -h 这个命令会显示所有已挂载的文件系统的空间使用情况,并以人类可读的方式展示磁盘空间使用情况。
在Windows系统中,可以使用"wmic logicaldisk get size,freespace,caption"命令来检查磁盘空间使用情况。这个命令会显示每个磁盘驱动器的总空间、可用空间以及驱动器标签等信息。
例如: wmic logicaldisk get size,freespace,caption 这个命令会显示每个磁盘驱动器的总空间、可用空间以及驱动器标签等信息。
25、使用gedit打开某个文件命令gedit
要使用gedit打开某个文件,可以在终端中输入以下命令:
gedit 文件路径
例如,要打开名为example.txt的文件,可以使用以下命令:
gedit example.txt
这将使用gedit打开位于当前工作目录中的example.txt文件。如果文件位于其他目录中,请提供正确的文件路径。
26、当前的系统进程查看命令ps
ps命令用于查看当前系统上运行的进程。它可以提供进程的详细信息,如进程ID、父进程ID、CPU使用情况、内存使用情况等。
ps命令的一些常用参数及其含义如下:
ps -ef
:显示所有进程的详细信息,包括进程ID、父进程ID、CPU使用情况等。ps -aux
:显示所有进程的详细信息,包括进程ID、父进程ID、内存使用情况等。ps -e
:显示所有进程的简要信息,包括进程ID和命令名称。ps -l
:显示所有进程的长格式信息,包括进程ID、父进程ID、CPU使用情况、内存使用情况等。ps -u user
:显示指定用户的进程信息,其中user
为用户名。
除了以上参数,ps命令还有很多其他参数可以使用,可以通过man ps
命令查看详细的帮助文档。
27、进程实时运行状态查看命令top
命令 top 可以用于实时查看系统的进程运行状态。它会显示系统中运行的进程列表,并按照 CPU 使用率或内存使用率进行排序。
要使用 top 命令,只需要在终端中输入 top,然后按下回车键即可。
top 命令的输出结果包括以下几个部分:
- 第一行是系统的概要信息,包括运行时间、总共运行的进程数、CPU 使用率等。
- 第二行是各个 CPU 核心的使用率。
- 进程列表,按照 CPU 使用率或内存使用率进行排序。每个进程的信息包括进程 ID、父进程 ID、进程状态、CPU 使用率、内存使用率等。
在 top 命令的界面中,可以使用不同的快捷键来进行操作,例如:
- 使用键盘上的方向键可以上下滚动进程列表。
- 按下 k 键可以终止某个进程。
- 按下 q 键可以退出 top 命令。
此外,top 命令还支持一些选项,可以根据需要进行定制,例如:
- 使用 -p 选项可以指定要监视的进程 ID。
- 使用 -n 选项可以指定显示进程列表的次数。
- 使用 -u 选项可以指定要监视的用户。
总之,top 命令是一个非常实用的工具,可以帮助我们实时查看系统的进程运行状态,以及进行进程的管理。
28、文件类型查看命令file
file命令用于查看文件的类型。
语法: file [选项] 文件名
常用选项: -b:以短格式输出文件类型; -i:以mime-type的格式输出文件类型; -L:跟随符号链接; -d:除了文件类型外,也显示文件的详细信息。
示例用法:
-
查看文件类型: file test.txt
输出结果可能为:test.txt: ASCII text
-
查看文件的mime-type: file -i test.txt
输出结果可能为:test.txt: text/plain
-
查看目录的类型: file -d testdir
输出结果可能为:testdir: directory
29、杀死进程kill
要杀死一个进程,可以使用kill
命令。kill
命令通过向进程发送信号来终止进程的执行。默认情况下,kill
命令发送的是SIGTERM
信号,这是一个终止进程的请求信号。如果进程未能响应SIGTERM
信号,可以使用SIGKILL
信号来强制终止进程。
以下是一些常用的杀死进程的命令示例:
- 终止进程通过进程ID(PID):
kill PID
或kill -9 PID
- 终止多个进程:
kill PID1 PID2 PID3
或kill -9 PID1 PID2 PID3
- 通过进程名杀死进程:
killall process_name
或killall -9 process_name
在上述命令中,将 PID
替换为要终止的进程的实际进程ID。将 process_name
替换为要终止的进程的名称。
请注意,使用 kill -9
或 killall -9
命令将会强制终止进程,这可能会导致进程未能正常关闭并可能会丢失数据。只有在其他方法无法正常终止进程时才使用这些命令。
在终止进程之前,请确保您了解该进程的用途和影响,并确保终止该进程是安全和必要的操作。