1.4 基础 Linux 工具
Linux 几乎为任何任务都准备了命令,而且大多数命令都很直观且易于使用。获取 Linux 帮助
| 命令 | 用途 |
|---|
man <name> | 阅读 name 的手册页 |
man <section> <name> | 阅读与给定章节相关的 name 手册页 |
man -k <editor> | 输出所有手册页中包含 <editor> 的软件 |
man -K <keyword> | 输出所有包含 <keyword> 的手册页 |
apropos <editor> | 输出所有单行描述匹配 editor 一词的应用程序。当无法回忆应用程序名称时使用此命令 |
help | 在 Bash shell 中,显示所有可用的 bash 内置命令列表 |
help <name> | 在 Bash shell 中,显示关于 <name> bash 内置命令的信息 |
info <name> | 查看关于 name 的所有信息 |
dpkg -l | 输出基于 Debian 的系统上所有已安装包的列表 |
dpkg -L packageName | 列出给定包在 Debian 系统上安装的文件和路径详情 |
dpkg -l \| grep -i <edit> | 返回所有已安装的 .deb 包,包含 <edit>,不区分大小写 |
less /var/lib/dpkg/available | 返回所有可用包的描述 |
whatis vim | 列出 vim 的一行描述 |
<command-name> --help | 显示关于 <tool-name> 的使用信息。有时 command -h 也有效,但并非对所有命令都适用 |
用户识别和系统用户信息
| 命令 | 用途 |
|---|
hostname | 显示系统主机名 |
hostname -f | 显示系统的完全限定域名(FQDN) |
passwd | 更改当前用户密码 |
whoami | 显示登录到终端的用户名 |
who | 列出当前以用户身份登录的所有用户列表 |
w | 显示当前系统状态、时间、持续时间、当前登录系统的用户列表和其他用户信息 |
last | 显示最近使用系统的用户 |
last root | 显示 root 用户上次登录的时间 |
lastb | 显示所有登录系统的失败尝试 |
进程相关信息
| 命令 | 用途 |
|---|
top | 列出所有进程,按当前系统资源使用率排序。持续显示进程更新(默认每 3 秒)。按 q 键退出 top |
ps | 列出当前 shell 会话中正在运行的进程 |
ps -u root | 列出 root 正在运行的所有进程和命令 |
ps aux | 列出当前系统上所有用户的所有进程 |
1.5 按名称/内容模式搜索文件
使用 Linux 命令行(shell)的常见任务是搜索具有特定名称或包含特定文本的文件/目录。你需要熟悉以下两个命令来完成此任务:按名称查找文件
find /var/www -name '*.css'
这将打印出 /var/www 下所有以 .css 结尾的文件的完整路径/文件名。示例输出:/var/www/html/text-cursor.css/var/www/html/style.css
查找包含文本的文件
grep 'font' /var/www/html/style.css
这将打印指定文件中包含模式 font 的所有行。示例输出:font-weight: bold;font-family: monospace;
grep 'font' /var/www/html/
grep: /var/www/html/: Is a directory
grep -R 'font' /var/www/html/
/var/www/html/admin/index.php: echo '<font color=red><b>Error: no dice</b></font><br/>';/var/www/html/admin/index.php: echo '<font color=red><b>Error: try again</b></font><br/>';/var/www/html/style.css: font-weight: bold;/var/www/html/style.css: font-family: monospace;
注意当 grep 匹配多个文件时,它会在匹配的行前加上文件名。你可以使用 -h 选项来去掉文件名前缀。1.6 文件操作
文件和目录(文件夹的另一个名称)是 Linux 的核心,因此能够从命令行创建、查看、移动和删除它们非常重要且功能强大。这些文件操作命令允许你执行与图形文件浏览器相同的任务。将 myFile 重命名为 myFirstFile:创建名为 myFirstDirectory 的空目录:创建多级目录路径:(创建两个目录,src 和 myFirstDirectory)mkdir -p src/myFirstDirectory
mv myFirstFile myFirstDirectory/
user@linux-computer:~$ mv myFirstFile secondFileName
将当前工作目录更改为 myFirstDirectory:注意删除目录时,要删除的是 ./ 而不是 /,后者会清空你的整个系统!1.7 文件/目录详情
详情/权限
-l 选项显示文件权限、大小和最后修改日期。因此如果根目录包含一个名为 test 的目录和一个文件 someFile,命令:user@linux-computer:~$ ls -l
-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txtdrwxrwxrwx 2 user users 4096 Jul 21 07:18 test
权限格式为 drwxrwxrwx。第一个字符表示文件类型,d 表示目录,- 表示其他。接下来的三个 rwx 是用户对文件的权限,再接下来的三个是组对文件的权限,最后三个是其他所有人对文件的权限。rwx 中的 r 表示文件是否可读,w 表示文件是否可修改,x 表示文件是否可执行。如果任何权限未被授予,则会在 r、w 或 x 的位置显示 -。因此从上面的例子可以看出,用户可以读取和修改 someFile.txt,但组只有只读权限。要更改权限,如果你拥有 sudo 权限,可以使用 chmodfileName 命令。r 用值 4 表示,w 用 2 表示,x 用 1 表示。因此如果只有你希望能够修改 test 目录的内容:
drwxr-xr-x 2 user users 4096 Jul 21 07:20 test
可读大小
与 -l 选项一起使用时,-h 选项以人类可读的格式显示文件大小。运行:user@linux-computer:~$ ls- lh
total 4166-rw-r--r-- 1 user users 70 Jul 22 13:36 someFile.txtdrwxrwxrwx 2 user users 4.0K Jul 21 07:18 test
隐藏文件
user@linux-computer:~$ ls-a
. .. .profile someFile.txt test
目录总大小
要查看当前目录的大小,使用 -s 选项(-h 选项也可以一起使用以使大小更易读)。total 4166someFile.txt test
递归查看
假设 test 目录中有一个文件 anotherFile,你想从根文件夹看到它,你可以使用 -R 选项,它将列出递归树。user@linux-computer:~$ ls -R
.:someFile.txt test./test:anotherFile