Linux是一个强大的操作系统,拥有许多内建的命令。以下是常见的Linux命令及其简单的解释和用法:
-
ls:列出目录内容。
- 来源:list。
- 用法:
ls
、ls -l
、ls -a
-
cd:改变当前目录。
- 来源:change directory。
- 用法:
cd /path/to/directory
-
pwd:显示当前工作目录的路径。
- 来源:print working directory。
- 用法:
pwd
-
mkdir:创建目录。
- 来源:make directory。
- 用法:
mkdir directoryname
-
rmdir:删除空目录。
- 来源:remove directory。
- 用法:
rmdir directoryname
-
rm:删除文件或目录。
- 来源:remove。
- 用法:
rm filename
、rm -r directoryname
-
cp:复制文件或目录。
- 来源:copy。
- 用法:
cp source destination
-
mv:移动或重命名文件/目录。
- 来源:move。
- 用法:
mv source destination
-
cat:显示文件内容。
- 来源:concatenate (and display)。
- 用法:
cat filename
-
echo:显示消息或输出到文件。
- 用法:
echo "message"
、echo "message" > filename
- 用法:
-
man:显示命令的手册页。
- 来源:manual。
- 用法:
man commandname
-
chmod:修改文件或目录的权限。
- 来源:change mode。
- 用法:
chmod permissions filename
-
chown:改变文件或目录的所有者。
- 来源:change owner。
- 用法:
chown owner:group filename
-
ps:查看运行中的进程。
- 来源:process status。
- 用法:
ps
、ps aux
-
kill:终止进程。
- 用法:
kill PID
- 用法:
-
top:实时查看进程活动。
- 用法:
top
- 用法:
-
tar:归档文件工具。
- 来源:tape archive。
- 用法:
tar -cvf archive.tar files
、tar -xvf archive.tar
-
grep:搜索文本。
- 来源:globally search for regular expression and print。
- 用法:
grep "pattern" filename
-
find:在目录中查找文件。
- 用法:
find /path -name filename
- 用法:
-
df:显示磁盘使用情况。
- 来源:disk free。
- 用法:
df -h
-
du:查看目录或文件的大小。
- 来源:disk usage。
- 用法:
du -sh directoryname
以上只是Linux命令的一部分。实际上,Linux提供了上千个命令和工具,帮助用户完成各种任务。在实际使用过程中,可以使用man
命令查看具体命令的详细用法和参数说明。
lsof
是一个在Unix和Unix-like操作系统上的命令行工具,用于列出系统上的打开的文件。它的名称代表 “list open files”,在Linux中,几乎所有事物(如文件、目录、套接字等)都被视为文件,因此 lsof
可用于查询各种类型的“文件”。
当我们使用 lsof -i
命令时,这条命令会显示与Internet相关的所有打开的文件(实际上是网络连接)。
这里的参数 -i
让 lsof
显示所有网络连接。你会看到这样的输出:
- COMMAND: 命令名称/程序名称。
- PID: 进程ID。
- USER: 运行该进程的用户。
- FD: 文件描述符,如
cwd
,txt
,err
,rtd
或者代表实际文件描述符号的数字。 - TYPE: 文件类型,对于网络连接,可能是
IPv4
或IPv6
。 - DEVICE: 设备号。
- SIZE/OFF: 文件的大小或者文件的偏移量。
- NODE: 对于网络文件,这将是IP地址和端口号。
- NAME: 本地主机和端口与远程主机和端口的连接信息。
举例来说,如果你想查看所有打开的TCP连接,你可以使用 lsof -i tcp
。如果你想查看特定端口(例如端口80)上的所有连接,你可以使用 lsof -i :80
。
总之,lsof -i
是一个非常有用的命令,它可以帮助你了解系统上当前的网络连接情况。
除了lsof
命令,以下是其他一些可以用来查看特定端口的命令:
-
netstat:这是一个非常常用的工具,用于显示网络连接、路由表、接口统计等信息。
- 用法:
netstat -tuln | grep <port_number>
。这会列出所有监听在特定端口的进程。
- 用法:
-
ss:这是一个用于查询套接字的实用程序,可以看作是
netstat
的替代品,因为在某些现代的Linux发行版中,netstat
已经被弃用或不再默认安装。- 用法:
ss -tuln | grep <port_number>
。这也会列出所有监听在特定端口的进程。
- 用法:
-
fuser:这个命令可以用来查找哪些进程在使用特定的文件、套接字或挂载点。
- 用法:
fuser <port_number>/tcp
或fuser <port_number>/udp
来查找正在使用特定端口的进程。
- 用法:
-
nc (netcat):虽然它主要用于读取和写入网络连接,但你也可以使用
nc
来检查某个端口是否打开。- 用法:
nc -zv <host_name_or_IP> <port_number>
。如果端口是打开的,它会返回成功。
- 用法:
使用以上命令时,根据你的系统配置和安装的软件包,可能需要具有适当的权限(例如使用sudo)。
netstat -tuln | grep <port_number>
是一个用于查询特定端口是否处于监听状态的命令,其中各个部分的含义如下:
-
netstat
: 是一个命令,用于显示网络连接、路由表和接口统计等网络相关信息。 -
-tuln
: 这是netstat的选项参数,指示它仅显示TCP(-t)和UDP(-u)协议的网络连接,以及不要解析主机名(-n,以IP地址形式显示)。这些选项使得netstat以一种更简洁的方式显示网络连接信息。 -
|
:这是管道操作符,它将命令的输出传递给另一个命令,以便进行进一步处理。 -
grep <port_number>
:是一个用于文本搜索和过滤的命令,它会在前一个命令的输出中查找包含指定端口号的行。
综合起来,netstat -tuln
会显示系统上所有的TCP和UDP端口连接信息,并且以IP地址和端口号的形式显示,而不进行主机名解析。接着,grep <port_number>
会从这些信息中筛选出包含指定端口号的行,如果找到匹配的行,那么就会显示在终端上。
例如,如果你想要查找系统上是否有监听在端口80上的网络连接,你可以运行:
netstat -tuln | grep 80
如果有与端口80相关的网络连接,它们将会被列出。这对于检查特定端口的网络服务是否在运行或者了解网络连接情况非常有用。
-tuln
是 netstat
命令的参数组合,用于指定要显示哪些类型的网络连接信息,各个选项的含义如下:
-
-t
:此选项表示显示TCP协议相关的连接信息。TCP(Transmission Control Protocol)是一种面向连接的协议,通常用于可靠的数据传输。 -
-u
:此选项表示显示UDP协议相关的连接信息。UDP(User Datagram Protocol)是一种无连接的协议,用于快速但不可靠的数据传输。 -
-l
:此选项表示仅显示正在监听(listening)的网络连接。监听状态表示该端口正在等待传入连接请求。 -
-n
:此选项表示不进行主机名解析,而是以IP地址的形式显示连接的本地和远程地址。这有助于加快显示速度并避免DNS查询延迟。
综合起来,netstat -tuln
将显示系统上所有正在监听的TCP和UDP端口连接信息,并且以IP地址和端口号的形式显示,而不进行主机名解析。这可以帮助你查看哪些端口正在监听连接,以及它们的本地和远程地址。
当然可以,下面是更多的常用Linux命令、它们的来源以及用法:
- ifconfig:用于配置和显示所有网络接口的状态。
- 来源:interface configuration。
- 用法:
ifconfig
显示所有接口,ifconfig eth0
显示特定接口(如eth0)。
- ip:一个新的工具,用于显示和操作路由、网络设备、策略路由和隧道。
- 用法:
ip addr
显示地址信息,ip route
显示路由信息。
- ping:发送ICMP ECHO_REQUEST到网络主机,测试网络连通性。
- 来源:模仿声音的“ping”。
- 用法:
ping hostname_or_IP
- wget:用于从网络上下载文件。
- 来源:web get。
- 用法:
wget http://example.com/file.txt
- curl:工具来从或发送数据到服务器,支持多种协议。
- 来源:see URL。
- 用法:
curl http://example.com
- ssh:安全地登录远程主机或执行远程命令。
- 来源:secure shell。
- 用法:
ssh username@hostname_or_IP
- scp:安全地复制文件到远程主机或从远程主机复制文件。
- 来源:secure copy。
- 用法:
scp sourcefile username@hostname_or_IP:/path/to/destination
- diff:比较两个文件的不同之处。
- 来源:difference。
- 用法:
diff file1 file2
- sed:流编辑器,用于执行基本文本转换。
- 来源:stream editor。
- 用法:
sed 's/old_text/new_text/g' filename
- awk:文本分析语言,用于在文件和管道中查找和处理模式。
- 用法:
awk '/pattern/ {print $2}' filename
找到包含特定模式的行并打印第二列。
- cut:删除文件的部分列。
- 用法:
cut -f1 -d',' file.csv
从一个CSV文件中提取第一列。
- head:输出文件的前面几行。
- 来源:文件的“头”部分。
- 用法:
head filename
- tail:输出文件的最后几行。
- 来源:文件的“尾”部分。
- 用法:
tail filename
- sort:排序文本文件的行。
- 用法:
sort filename
- uniq:从文本文件中删除或显示重复的行。
- 用法:
uniq filename
- gzip/gunzip:用于压缩和解压缩文件。
- 来源:GNU zip。
- 用法:
gzip filename
压缩,gunzip filename.gz
解压缩。
- find:在目录树中查找文件。
- 用法:
find /path -name filename
- wc:计算字、词或行的数量。
- 来源:word count。
- 用法:
wc filename
以上是一部分常用的Linux命令,每个命令都有其详细的参数和选项,可以通过man
命令或在线资源深入学习。
当然可以,我会继续列出一些常用的Linux命令:
- du:查看目录和文件的磁盘使用情况。
- 来源:disk usage。
- 用法:
du -sh /path/to/directory
显示指定目录的总磁盘使用情况。
- df:查看文件系统的磁盘使用情况。
- 来源:disk free。
- 用法:
df -h
以人类可读的格式显示所有文件系统的磁盘使用情况。
- ps:显示当前进程的状态。
- 来源:process status。
- 用法:
ps aux
显示系统上所有的运行进程信息。
- top/htop:动态显示系统状态、进程和系统的资源使用情况。
- 用法:
top
:标准的实时系统监控工具。htop
:增强版的top
,提供一个更好的界面和更多的功能。
- kill:发送信号给进程。
- 来源:英语中的 “kill”,意为“杀死”。
- 用法:
kill -9 <PID>
强制结束指定的进程。
- chmod:更改文件或目录的权限。
- 来源:change mode。
- 用法:
chmod 755 filename
设置文件的权限为755。
- chown:更改文件或目录的所有者。
- 来源:change owner。
- 用法:
chown username:groupname filename
- passwd:更改用户的密码。
- 来源:password。
- 用法:
passwd username
- ln:创建硬链接或软链接。
- 来源:link。
- 用法:
ln sourcefile linkname
:创建硬链接。ln -s sourcefile linkname
:创建软链接。
- alias:为命令创建别名。
- 用法:
alias ll='ls -la'
创建一个别名ll
,它执行ls -la
。
- tar:归档工具,用于文件打包和压缩。
- 来源:tape archive。
- 用法:
tar cvf archive.tar files
:将文件打包为archive.tar
。tar xvf archive.tar
:从archive.tar
解包文件。
- gzip/bzip2:文件压缩工具。
- 用法:
gzip filename
:将文件压缩为filename.gz
。bzip2 filename
:将文件压缩为filename.bz2
。
- useradd/userdel:创建和删除用户。
- 用法:
useradd username
:添加一个新用户。userdel username
:删除一个用户。
- groupadd/groupdel:创建和删除用户组。
- 用法:
groupadd groupname
:添加一个新的用户组。groupdel groupname
:删除一个用户组。
这些命令只是Linux中常用命令的一部分,每个命令都有其详细的参数和选项,可以通过man
命令或在线资源深入学习。
两个命令是用于创建和提取tar归档文件的基本命令,下面解释了它们的参数的含义:
tar cvf archive.tar files
:tar
:tar命令本身。c
:表示创建一个新的归档文件。v
:表示详细模式,输出命令执行的详细信息(可选,通常用于调试)。f
:指定要创建的归档文件的名称,后面紧跟着归档文件的名称(在这里是archive.tar
)。files
:是要包含在归档中的文件或目录的列表。
所以,这个命令的作用是创建一个名为archive.tar
的新tar归档文件,将列出的files
(文件或目录)添加到这个归档中。
tar xvf archive.tar
:tar
:tar命令本身。x
:表示提取(解包)已有的归档文件。v
:表示详细模式,输出命令执行的详细信息(可选,通常用于调试)。f
:指定要提取的归档文件的名称,后面紧跟着归档文件的名称(在这里是archive.tar
)。
这个命令的作用是从名为archive.tar
的tar归档文件中提取其中包含的文件和目录,还原到当前工作目录中。
这些参数的来源可以追溯到tar
命令的设计和历史,它们是为了指定和控制tar
命令的行为而引入的。下面解释这些参数的来源:
-
c
参数(create):用于指定创建一个新的归档文件。这个参数最早来自于tar
命令的初始设计,用于将文件和目录打包到一个新的归档中。它表示"create",即创建归档的操作。 -
v
参数(verbose):用于指定详细模式,以便在执行tar
命令时显示更多信息。这个参数可以帮助用户了解正在发生的操作,以及哪些文件被打包或解包。“v"来自于英语单词"verbose”,表示冗长或详细的。 -
f
参数(file):用于指定归档文件的名称。这个参数让用户能够明确告诉tar
命令要操作的归档文件的名称。“f"来自于英语单词"file”,表示文件名。 -
x
参数(extract):用于指定提取(解包)归档文件的操作。这个参数表示"extract",即从归档中提取文件和目录的操作。
这些参数的命名和含义设计得相对直观,使得用户能够轻松理解tar
命令的功能,并按照其需求来使用它。虽然它们的名称来自英语单词,但它们在tar
命令中的使用已经成为了一种标准,广泛被Linux和Unix系统中的tar
工具所采用。