28、常见 Linux 命令及实用工具详解

常见 Linux 命令及实用工具详解

在 Linux 系统的使用中,掌握常见的命令和实用工具是非常重要的。下面将为你详细介绍一系列常见的 Linux 命令。

常用命令概述

有一些命令是日常使用中最为频繁的,以下是按字母顺序排列的十个常见命令:
1. cat
2. cd
3. cp
4. find
5. grep
6. ls
7. more
8. rm
9. tar
10. vi

一般来说,在 Linux 里有一些命名规则:如果想修改已存在的内容,命令通常以 ch 开头;如果是首次进行某项操作,命令一般以 mk 开头;若要完全删除某事物,命令通常以 rm 开头。例如,创建新目录用 mkdir 命令,删除目录则用 rmdir 命令。

具体命令介绍
  • . 命令 :该命令告诉 shell 执行传递给它作为参数的文件中的所有命令。在 bash 或 pdksh 中使用,在 tcsh 中与之等效的是 source 命令。示例:
. adobe
  • & 符号 :跟在其他命令后面时,它会让计算机在后台运行该命令。这样用户可以继续使用该 shell 处理其他命令。例如:
command &
  • adduser 命令 :由 root 或有相应权限的人使用,用于创建新用户。示例:
adduser dpitts
  • alias 命令 :用于为命令创建别名或替代名称,通常是实际命令的缩写。示例:
alias dir=ls

单独输入 alias 会列出当前所有别名,可能的输出如下:

svr01:/home/dpitts$ alias
alias d=’dir’
alias dir=’/bin/ls $LS_OPTIONS --format=vertical’
alias ls=’/bin/ls $LS_OPTIONS’
alias v=’vdir’
alias vdir=’/bin/ls $LS_OPTIONS --format=long’
  • apropos 命令 :当后面跟参数时,它会在手册页中搜索包含该参数的条目,相当于 man -k 参数命令。示例:
apropos keyword
  • banner 命令 :将一个大的基于文本的横幅打印到标准输出。如果省略消息,它会提示从标准输入读取一行内容。示例:
$ banner hi

输出如下:

##                                              ###
##                                              ###
#######################################################
#######################################################
#######################################################
#######################################################
#######################################################
##                        ###
###
###
####
####
####
##                       #######
################################
################################
###############################
############################
#########################
##
##                         ##
##                         ##          ####
################################        ########
################################        ########
################################        ########
################################         ######
################################          ####
##
  • bg 命令 :用于强制一个暂停的进程在后台运行。例如,先在前台启动一个命令,之后意识到它会运行很长时间,可按下 Ctrl + Z 暂停该进程,然后输入 bg 让其在后台继续运行。
  • bind 命令 :在 pdksh 中使用,用于更改键组合的行为以进行命令行编辑。示例:
bind `^[[`=prefix-2
bind `^XA`=up-history
bind `^XB`=down-history
bind `^XC`=forward-char
bind `^XD`=backward-char
  • cat 命令 :将文件内容连接并输出到标准输出,通常是屏幕。示例:
cat filename
  • cd 命令 :用于更改目录,有三种常见用法:
    • cd .. :向上移动一级目录。
    • cd ~ :移动到当前用户的主目录,等同于单独输入 cd
    • cd directory name :切换到指定目录,可以是相对于当前位置的目录,也可以是基于根目录的目录。示例:
cd ../tng4321

以下是这些操作的流程图:

graph TD;
    A[当前目录] -->|cd ..| B[上一级目录];
    A -->|cd ~| C[主目录];
    A -->|cd directory name| D[指定目录];
  • chgrp 命令 :用于更改文件或目录权限关联的组。示例:
chgrp new_group file
  • chmod 命令 :用于更改对象(通常是文件或目录)的权限,有数字编码和字母编码两种方式。
    • 字母编码示例:
chmod ug+rx test1
chmod ug-rx test1
- 数字编码示例:
chmod 700 test1
chmod 644 test1

通用格式为:

chmod permissions file
  • chown 命令 :用于更改文件或目录权限关联的用户 ID(所有者)。示例:
chown new_user_id file
chown new_user_id:new_group_id file
  • chroot 命令 :将文件系统中的根目录 / 更改为其他目录。示例:
chroot original_filesystem_location new_filesystem_location
  • cp 命令 :用于复制对象。示例:
cp file1 file2
  • dd 命令 :用于复制和转换文件格式。示例:
dd if=filename of=/dev/fd0 obs=18k
  • userdel 命令 :用于从系统中删除用户账户。示例:
userdel username
  • env 命令 :用于查看导出的环境变量,输出是一个两列的列表,左边是变量名,右边是关联的值。示例:
svr01:/home/dpitts$ env
HOSTNAME=svr01.mk.net
LOGNAME=dpitts
MAIL=/var/spool/mail/dpitts
TERM=vt100
HOSTTYPE=i386
PATH=/usr/local/bin:/usr/bin:/bin:.:/usr/local/java/bin
HOME=/home2/dpitts
SHELL=/bin/bash
LS_OPTIONS=--8bit --color=tty -F -b -T 0
PS1=\h:\w\$
PS2=>
MANPATH=/usr/local/man:/usr/man/preformat:/usr/man:/usr/lib/perl5/man
LESS=-MM
OSTYPE=Linux
SHLVL=1
  • fc 命令 :用于编辑历史文件,可通过传递参数选择历史文件中的命令范围,然后在编辑 shell 中进行编辑。
  • fg 命令 :用于将一个暂停的进程移到前台运行。
  • file 命令 :通过文件系统测试、魔数测试或语言测试来确定文件类型。示例:
file nquota

输出可能为:

nquota: perl commands text
  • find 命令 :用于在指定目录及其子目录中查找文件,并根据要求处理查找结果。示例:
find . -name *.pl -print

输出可能如下:

./public_html/scripts/gant.pl
./public_html/scripts/edit_gant.pl
./public_html/scripts/httools.pl
./public_html/scripts/chart.no.comments.pl
  • ftp 命令 :使用文件传输协议(FTP)连接到远程系统。
  • grep 命令 :用于在指定对象中搜索指定文本。示例:
grep httools *

也可与其他命令结合使用,如:

ps -ef |grep -v root
ps -ef |grep root
  • groff 命令 :是 groff 文档格式化程序的前端,默认调用 troff 程序。
  • gzip 命令 :GNU 版本的 zip 压缩软件。示例:
gzip filename
  • gunzip 命令 :用于提取用 GNU gzip 软件压缩的存档。示例:
gunzip filename

等同于 gzip -d
- halt 命令 :用于告诉内核关闭系统,这是只有超级用户(root)才能执行的命令。
- hostname 命令 :用于显示当前主机或域名,也可设置主机名。示例:

svr01:/home/dpitts$ hostname
svr01
  • kill 命令 :向指定进程发送指定信号,若未指定信号,则发送 TERM 信号。示例:
svr01:/home/dpitts$kill -9 1438
  • killall 命令 :与 kill 类似,但使用进程名而不是进程 ID。
  • less 命令 :类似于 more 命令,但允许在文件中前后移动,且处理大文件时启动速度更快。
  • locate 命令 :用于根据文件名模式快速查找文件,基于计算机上的索引数据库,比 find 命令更快。示例:
[jray@contempt jray]$ locate server
/etc/X11/xdm/Xservers
/etc/CORBA/servers
/etc/CORBA/servers/gnomecc.gnorba
/etc/CORBA/servers/gmc.gnorba
/etc/CORBA/servers/another_clock_applet.gnorba
...
  • login 命令 :用于登录系统,也可随时切换用户。
  • logout 命令 :用于以当前用户身份注销系统。
  • lpc 命令 :由系统管理员用于控制行式打印机系统的操作,可禁用或启用打印机或打印队列,重新排列作业顺序,查看打印机和队列状态等。
  • lpd 命令 :行式打印机守护进程,通常在系统启动时从 rc 文件调用。
  • lpq 命令 :用于检查 lpd 使用的打印队列的状态,可报告指定作业或与用户关联的所有作业的状态。
  • lpr 命令 :使用假脱机守护进程在设备可用时打印指定文件,若未指定文件名,则从标准输入读取。示例:
lpr /etc/hosts
  • ls 命令 :用于列出目录内容,可通过选项控制输出格式。常见选项 -la 用于列出所有文件(包括隐藏文件)并以长格式显示。示例:
svr01:~$ ls -la
total 35
drwxr-xr-x   7 dpitts   users        1024 Jul 21 00:19 ./
drwxr-xr-x 140 root     root         3072 Jul 23 14:38 ../
-rw-r--r--   1 dpitts   users        4541 Jul 23 23:33 .bash_history
-rw-r--r--   1 dpitts   users          18 Sep 16  1996 .forward
-rw-r--r--   2 dpitts   users         136 May 10 01:46 .htaccess
-rw-r--r--   1 dpitts   users         164 Dec 30  1995 .kermrc
-rw-r--r--   1 dpitts   users          34 Jun  6  1993 .less
-rw-r--r--   1 dpitts   users         114 Nov 23  1993 .lessrc
-rw-r--r--   1 dpitts   users          10 Jul 20 22:32 .profile
drwxr-xr-x   2 dpitts   users        1024 Dec 20  1995 .term/
drwx------   2 dpitts   users        1024 Jul 16 02:04 Mail/
drwxr-xr-x   2 dpitts   users        1024 Feb  1  1996 cgi-src/
-rw-r--r--   1 dpitts   users        1643 Jul 21 00:23 hi
-rwxr-xr-x   1 dpitts   users         496 Jan  3  1997 nquota*
drwxr-xr-x   2 dpitts   users        1024 Jan  3  1997 passwd/
drwxrwxrwx   5 dpitts   users        1024 May 14 20:29_public_html/

以下是部分命令操作的总结表格:
| 命令 | 功能 | 示例 |
| — | — | — |
| adduser | 创建新用户 | adduser dpitts |
| alias | 创建命令别名 | alias dir=ls |
| cd | 更改目录 | cd .. cd ~ cd directory_name |
| cp | 复制对象 | cp file1 file2 |
| find | 查找文件 | find . -name *.pl -print |
| grep | 搜索文本 | grep httools * |
| ls | 列出目录内容 | ls -la |

掌握这些常见的 Linux 命令,能让你在 Linux 系统的使用中更加得心应手,无论是日常的文件操作、系统管理,还是网络连接等方面,这些命令都能发挥重要作用。后续还将介绍更多的命令及其使用场景。

常见 Linux 命令及实用工具详解(续)

更多命令介绍
  • make 命令 :该命令的主要目的是自动确定大型程序中哪些部分需要重新编译,并执行相应的编译命令。通常在从互联网下载源代码并安装到系统时会用到它。
  • man 命令 :用于格式化和显示在线手册页,这些手册页详细描述了指定命令的使用方法。示例:
svr01:~$ man man
man(1)                                       man(1)
NAME
man - format and display the on - line manual pages
manpath - determine user’s search path for man pages
SYNOPSIS
man  [-adfhktwW]  [-m system] [-p string] [-C config_file]
[-M path] [-P pager] [-S section_list] [section] name  .
DESCRIPTION
man  formats  and displays the on - line manual pages. This
version knows about  the  MANPATH  and  PAGER  environment
variables, so you can have your own set(s) of personal man
pages and choose whatever program you like to display  the
formatted  pages.  If section is specified, man only looks
in that section of the manual.  You may also  specify  the
order to search the sections for entries and which prepro -
cessors to run  on  the  source  files  via  command  line
options  or  environment  variables.  If name contains a /
then it is first tried as a filename, so that you  can  do
  • mesg 命令 :由用户运行,用于控制其他用户对与标准错误输出关联的终端设备的写入访问权限。默认情况下允许写入访问,允许后 talk write 等程序可以在终端上显示消息。
  • mkdir 命令 :用于创建新目录。示例:
mkdir new_directory
  • mkfs 命令 :用于在设备(通常是硬盘分区)上构建 Linux 文件系统。语法为 mkfs filesystem ,其中 filesystem 可以是设备名(如 /dev/hda1 )或挂载点(如 / /usr /home )。示例:
mkfs /dev/hda1
  • mkswap 命令 :用于在设备(通常是磁盘分区)上设置 Linux 交换区。设备通常形式为 /dev/hda[1 - 8] /dev/hdb[1 - 8] /dev/sda[1 - 8] /dev/sdb[1 - 8] 。示例:
mkswap /dev/hda2
  • more 命令 :是一个用于逐屏浏览文本的过滤器,只能向下翻页,与 less 命令不同, less 可以前后移动。示例:
more filename
  • mount 命令 :用于将指定的文件系统(通常是设备名)挂载到指定的目录。通常只有超级用户可以执行挂载操作。如果不带参数运行该命令,则会列出当前所有已挂载的文件系统。示例:
svr01:/home/dpitts$ mount
/dev/hda1 on / type ext2 (rw)
/dev/hda2 on /var/spool/mail type ext2 (rw,usrquota)
/dev/hda3 on /logs type ext2 (rw,usrquota)
/dev/hdc1 on /home type ext2 (rw,usrquota)
none on /proc type proc (rw)
  • mv 命令 :用于将对象从一个位置移动到另一个位置。如果最后一个参数是现有目录,则将前面的对象移动到该目录;如果是两个文件,则将第一个文件移动到第二个文件。也可用于重命名文件。示例:
mv file1 file2
mv file1 directory/
  • netstat 命令 :用于显示系统上 TCP、UDP、RAW 或 UNIX 套接字的网络连接状态。 -r 选项可用于获取路由表信息。示例:
svr01:/home/dpitts$ netstat
Active Internet connections
Proto Recv - Q Send - Q Local Address          Foreign Address        (State)
User
tcp        0  16501 www.mk.net:www         sdlb12119.san_net.:3148 FIN_WAIT1
root
tcp        0  16501 auth02.mk.net:www      sdlb12119.san_net.:3188 FIN_WAIT1
root
tcp        0      1 www.anglernet.com:www  ts88.cctrap.com:1070   SYN_RECV
root
tcp        0      1 www.anglernet.com:www  ts88.cctrap.com:1071   SYN_RECV
root
udp        0      0 localhost:domain       *:*
udp        0      0 svr01.mk.net:domain    *:*
udp        0      0 poto.mk.net:domain     *:*
udp        0      0 stats.mk.net:domain    *:*
udp        0      0 home.mk.net:domain     *:*
udp        0      0 www.cmf.net:domain     *:*
Active UNIX domain sockets
Proto RefCnt Flags      Type            State           Path
unix  2      [ ]        SOCK_STREAM     UNCONNECTED     1605182
unix  2      [ ]        SOCK_STREAM     UNCONNECTED     1627039
unix  2      [ ]        SOCK_STREAM     CONNECTED       1652605
  • passwd 命令
    • 普通用户使用时不带参数,命令会先要求输入旧密码,然后要求输入两次新密码以确保输入正确。新密码至少需要六个字符,且至少包含一个大写字母或非字母字符,不能与旧密码相同,也不能与用户 ID 匹配。
    • 超级用户使用时可以跟一个或两个参数。跟单个用户 ID 时,超级用户可以更改该用户的密码;若在用户 ID 后还有一个参数,则该参数成为该用户的新密码。示例:
# 普通用户修改密码
passwd
# 超级用户修改用户密码
passwd username
# 超级用户直接设置用户新密码
passwd username new_password
  • ps 命令 :用于获取当前进程的快照。示例:
svr01:/home/dpitts$ ps -ef
PID TTY STAT  TIME COMMAND
10916  p3 S     0:00 -bash TERM=vt100 HOME=/home2/dpitts PATH=/usr/local/bin:/us
10973  p3 R     0:00  \_ ps -ef LESSOPEN=|lesspipe.sh %s ignoreeof=10 HOSTNAME=s
10974  p3 S     0:00  \_ more LESSOPEN=|lesspipe.sh %s ignoreeof=10 HOSTNAME=svr
  • pwd 命令 :用于打印当前工作目录,告诉你当前所在的目录。示例:
pwd
  • rm 命令 :用于删除指定文件。使用 -r 选项时(注意:这可能很危险),会递归删除文件。例如,以 root 身份运行 rm -r / 会删除所有文件。该命令默认不删除目录。示例:
rm file1
rm -r directory
  • rmdir 命令 :用于删除空目录。示例:
rmdir empty_directory
  • set 命令 :用于临时更改环境变量。在某些 shell 中, set -o vi 命令可以让你调用历史文件中的先前命令,通常会将该命令放在 .profile 文件中。有些环境变量需要使用等号,有些则不需要。示例:
set -o vi
  • shutdown 命令 :用于关闭系统,也可用于重启系统。需要指定关闭系统的时间,通常使用 shutdown now 立即关闭系统。 -r 选项用于重启, -h 选项用于关机。默认情况下,该命令会将系统置于运行级别 1。示例:
# 立即关机
shutdown now
# 立即重启
shutdown -r now
  • su 命令 :允许用户临时成为另一个用户。如果不指定用户 ID,则默认成为超级用户(root)。非 root 用户切换时,如果目标用户有密码,则需要输入密码;root 用户可以无密码切换到任何用户。示例:
# 切换到 root 用户
su
# 切换到指定用户
su username
  • swapoff 命令 :用于停止向文件或块设备进行交换操作。
  • swapon 命令 :用于将交换区设置为指定的文件或块设备,通常在系统启动时执行。示例:
swapon /dev/hda2
  • tail 命令 :用于将给定文件的最后 10 行打印到标准输出。若未指定文件,则从标准输入读取;若指定多个文件,则在每个文件输出前打印包含文件名的标题。可以通过 -### 更改默认的 10 行显示数量。示例:
# 显示文件最后 10 行
tail filename
# 显示文件最后 20 行
tail -20 filename
  • talk 命令 :用于通过终端与他人进行“可视化”讨论,双方的输入会分别显示在对方的终端上。
  • tar 命令 :是一个归档程序,用于存储和从归档文件中提取文件。可以将文件归档到任何介质,如磁带驱动器和硬盘。语法为 tar action optional_functions file(s)/directory(ies) ,如果最后一个参数是目录,则会递归归档该目录及其子目录。示例:
# 创建归档文件
tar -cvf archive.tar file1 file2 directory
# 提取归档文件
tar -xvf archive.tar
  • telnet 命令 :用于使用终端连接到远程计算机,通常用于连接其他 Linux 或 UNIX 计算机。
  • top 命令 :与 ps 命令类似,用于显示系统上正在运行的进程。但 top 提供一个交互式的更新显示,会根据 CPU 使用率对进程进行排序,让你了解哪些程序使计算机变慢。
  • umount 命令 :用于卸载文件系统。示例:
umount /mnt/directory
  • unalias 命令 :用于撤销别名。例如之前使用 alias dir=ls 创建了别名,使用 unalias dir 可以撤销该别名。示例:
unalias dir
  • unzip 命令 :用于列出、测试或从压缩归档文件中提取文件,默认是提取文件。示例:
unzip archive.zip
  • wall 命令 :用于将标准输入的内容显示在所有当前登录用户的终端上,超级用户(root)可以向拒绝消息或使用自动拒绝消息程序的用户终端发送消息。示例:
wall "This is an important message."
  • who 命令 :用于打印当前登录用户的登录名、终端类型、登录时间和远程主机名。如果传递两个非选项参数,则会打印运行该命令的用户的信息。 -u 选项可以查看会话的使用时间。示例:
# 显示所有登录用户信息
who
# 显示当前用户信息
who who who
# 显示登录用户及会话使用时间
who -u
  • write 命令 :用于向系统中已登录的其他用户的显示器发送消息,前提是该用户没有使用 mesg 命令关闭消息接收功能。示例:
write username
  • xhost 命令 :用于为远程程序输出到本地屏幕提供访问控制。通常远程终端无法打开是因为没有运行 xhost + machine_name 命令;使用 xhost - 命令可以关闭所有外部程序的连接能力。示例:
# 允许指定主机连接
xhost + machine_name
# 禁止所有外部程序连接
xhost -
  • xmkmf 命令 :用于为 X 源创建 Imakefiles,实际上是使用一组参数运行 imake 命令。
  • xset 命令 :用于设置 X 窗口会话中的一些选项,如设置铃声( xset b volume frequency duration in milliseconds )、鼠标速度( xset m acceleration threshold )等。示例:
# 设置鼠标加速和阈值
xset m 3 1
  • zip 命令 :用于列出、测试或向压缩归档文件中添加文件,默认是添加文件。示例:
zip archive.zip file1 file2
命令总结与使用建议

为了更清晰地对比和总结这些命令,以下是一个更全面的表格:
| 命令 | 功能 | 示例 |
| — | — | — |
| make | 自动确定程序编译部分并执行编译 | - |
| man | 显示在线手册页 | man man |
| mesg | 控制终端写入访问权限 | - |
| mkdir | 创建新目录 | mkdir new_directory |
| mkfs | 构建 Linux 文件系统 | mkfs /dev/hda1 |
| mkswap | 设置交换区 | mkswap /dev/hda2 |
| more | 逐屏浏览文本 | more filename |
| mount | 挂载文件系统 | mount /dev/hda1 /mnt |
| mv | 移动或重命名文件/目录 | mv file1 file2 |
| netstat | 显示网络连接状态 | netstat |
| passwd | 修改用户密码 | passwd passwd username |
| ps | 获取当前进程快照 | ps -ef |
| pwd | 显示当前工作目录 | pwd |
| rm | 删除文件/目录 | rm file1 rm -r directory |
| rmdir | 删除空目录 | rmdir empty_directory |
| set | 临时更改环境变量 | set -o vi |
| shutdown | 关闭或重启系统 | shutdown now shutdown -r now |
| su | 切换用户 | su su username |
| swapoff | 停止交换操作 | swapoff /dev/hda2 |
| swapon | 设置交换区 | swapon /dev/hda2 |
| tail | 显示文件最后几行 | tail filename |
| talk | 终端可视化讨论 | talk username |
| tar | 归档和提取文件 | tar -cvf archive.tar file1 |
| telnet | 连接远程计算机 | telnet remote_host |
| top | 显示进程状态 | top |
| umount | 卸载文件系统 | umount /mnt |
| unalias | 撤销别名 | unalias dir |
| unzip | 提取压缩文件 | unzip archive.zip |
| wall | 向所有用户发送消息 | wall "message" |
| who | 显示登录用户信息 | who |
| write | 向其他用户发送消息 | write username |
| xhost | 控制远程程序访问 | xhost + machine_name |
| xmkmf | 创建 Imakefiles | - |
| xset | 设置 X 窗口选项 | xset m 3 1 |
| zip | 压缩文件 | zip archive.zip file1 |

下面是一个简单的使用流程图,展示了一些常见操作的命令使用流程:

graph LR;
    A[开始] --> B{文件操作};
    B -->|创建目录| C[mkdir];
    B -->|复制文件| D[cp];
    B -->|移动文件| E[mv];
    B -->|删除文件| F[rm];
    B -->|查找文件| G[find];
    B -->|查看文件内容| H[cat];
    B -->|压缩文件| I[gzip];
    B -->|解压文件| J[gunzip];
    B -->|归档文件| K[tar];
    B -->|提取归档| L[tar -xvf];
    B -->|查看目录内容| M[ls];
    B -->|更改目录| N[cd];
    C --> O[结束];
    D --> O;
    E --> O;
    F --> O;
    G --> O;
    H --> O;
    I --> O;
    J --> O;
    K --> O;
    L --> O;
    M --> O;
    N --> O;

通过掌握这些常见的 Linux 命令,你可以在 Linux 系统上进行各种操作,包括文件管理、系统管理、网络连接等。在实际使用中,建议结合 man 命令查看详细的命令手册,以了解更多的参数和用法。不断练习和实践这些命令,将有助于你更熟练地使用 Linux 系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值