Bash 基础命令
理解基础的 Bash 命令(ls、cd、pwd、mkdir、rm)是使用命令行与 Linux 文件系统进行交互的根本。
这些命令允许你列出文件、切换目录、确定当前位置、创建新目录以及删除文件或目录。无论你是从事系统管理、软件开发,还是仅仅进行日常的命令行操作,都应该熟练掌握它们。
1. ls 命令:列出文件和目录
ls (List) 命令用于列出指定位置的文件和目录。在默认情况下,它会显示你当前工作目录中的内容。
1.1 基本用法
直接输入 ls 就会列出当前目录的内容。
ls这会输出一个简单的文件和目录名称列表。
1.2 常用选项
当与各种“选项(Options)”结合使用时,ls 命令会变得异常强大。以下是一些最常用的选项:
-l: 提供长格式(long format)列表,显示每个文件和目录的详细信息,包括:权限、链接数、所有者、所属用户组、文件大小以及最后修改时间。-a: (All) 列出所有文件和目录,包括隐藏文件(那些以.开头的文件)。-t: (Time) 根据修改时间对输出结果进行排序,最近修改的文件会排在最前面。-r: (Reverse) 反转列表的排序顺序。当与-t结合使用时,它会把最旧的文件排在最前面。-h: (Human-readable) 以人类易读的格式显示文件大小(例如 1K、234M、2G),通常配合 -l 使用。-R: (Recursive) 递归地列出所有子目录及其内部的内容。
1.3 实例演示
列出包含详细信息的所有文件:
ls -l此命令将以长格式显示当前目录的内容。输出的每一行代表一个文件或目录,并包含诸如权限、硬链接数量、所有者和组、以字节为单位的文件大小、最后修改时间以及文件/目录名称等详细信息。
列出所有文件(包括隐藏文件)的详细信息:
ls -la此命令结合了 -l(长格式)和 -a(所有文件)选项。它将显示当前目录中的所有内容,包括名称以点 (.) 开头的通常被隐藏的文件。
按修改时间排序文件(最新的在前):
ls -lt此命令将文件和目录按最后修改时间排序,最近修改的排在列表顶部。这对于快速找到你刚刚操作过的文件非常有用。
按修改时间排序文件(最旧的在前):
ls -ltr此命令结合了 -l、-t 和 -r(反转顺序)选项。它同样按时间排序,但倒序显示,因此最旧的文件会出现在列表顶部。
以人类易读的方式显示文件大小:
ls -lh此命令以 K(千字节)、M(兆字节)或 G(吉字节)等直观格式显示文件大小,让你一目了然。
递归列出所有文件和目录:
ls -R此命令从当前目录开始,递归列出所有内容。这意味着它会先列出当前目录,然后深入每个子目录并列出它们的内容,以此类推。
递归列出带有详细信息和易读大小的所有内容:
ls -lR -h这结合了详细列表、递归和易读大小的选项。在包含大量子目录的层级中,输出内容可能会非常庞大。提示: -lR -h 也可以简写为 -lRh。
1.4 实战应用
想象一下你正在管理一个 Web 服务器,需要快速找出某个目录中最大的文件以清理磁盘空间。你可以使用 ls -lhS 来以易读格式列出文件,并按文件大小降序排列(最大的排在最前面)。(注:这里的 -S 选项代表按大小 Size 排序)。
2. cd 命令:切换目录
cd (Change Directory) 命令允许你通过更改当前工作目录,在文件系统中进行导航。
2.1 基本用法
要切换到特定的目录,只需输入 cd 加上目标目录的路径即可。
cd /path/to/directory2.2 特殊情况与快捷操作
cd: 如果不加任何参数直接回车,cd 会直接带你回到你的家目录(Home directory)。cd ..: 向上移动一层,进入父目录。cd -: 返回到你跳转之前的上一个目录。
2.3 实例演示
切换到家目录:
cd无论你当前在文件系统中的哪个位置,这个命令都会带你回家。
切换到指定目录:
cd /var/log这会将当前目录更改为 /var/log(通常存放系统日志文件)。注意:你需要有相应的权限才能进入该目录。
向上移动一级目录:
cd ..假设你原本在 /var/log,然后 cd 到了 /tmp。执行这个命令后,你会瞬间切回 /var/log。
3. pwd 命令:打印工作目录
pwd (Print Working Directory) 命令用于在终端上显示你当前所在工作目录的绝对路径。
3.1 基本用法
只需输入 pwd 并按下回车。
pwd终端会输出你当前在文件系统中的完整路径。
3.2 选项
pwd 的选项非常少,但有一个很有用的选项是 -P (Physical),它会显示物理路径,解析并绕过任何符号链接(软链接)。
3.3 实例演示
显示当前工作目录:
pwd如果你在 /home/user/documents 目录下,输出结果就会是 /home/user/documents。
显示解析了符号链接后的物理路径:
首先,我们创建一个符号链接:
ln -s /home/user/documents link_to_documents
cd link_to_documents
pwd
pwd -P如果你进入了 /home/user/link_to_documents 目录,单独执行 pwd 很可能直接输出 /home/user/link_to_documents。但是,因为 link_to_documents 其实只是一个指向别处的快捷方式(符号链接),执行 pwd -P 则会输出它真实指向的底层物理路径:/home/user/documents。
4. mkdir 命令:创建目录
mkdir (Make Directory) 命令专门用于创建新的文件夹/目录。
4.1 基本用法
要新建目录,输入 mkdir 加上你想要的目录名称。
mkdir directory_name4.2 常用选项
-p: (Parents) 按需创建父目录。如果指定的父级目录不存在,mkdir -p会自动一并创建它们,且不会报错。-v: (Verbose) 详细模式,在创建每个目录时在屏幕上打印提示信息。-m: (Mode) 在创建目录的同时设置其权限级别(例如:mkdir -m 755 directory_name)。
4.3 实例演示
创建一个普通目录:
mkdir my_new_directory这将在当前工作目录下创建一个名为 my_new_directory 的文件夹。
一次性创建多个并列目录:
mkdir dir1 dir2 dir3此命令会同时在当前目录下生成三个目录。
按需创建嵌套的父子目录:
mkdir -p /path/to/new/directory如果 /path/to/new 这一连串的路径原本都不存在,这个命令会依次自动创建 /path、/path/to 和 /path/to/new,最后在里面创建目标 directory。
创建目录并赋予特定权限:
mkdir -m 755 my_directory此命令创建 my_directory 的同时,将其权限设置为 755(采用八进制格式指定)。
5. rm 命令:删除文件和目录
rm (Remove) 命令用于删除文件和目录。请务必谨慎使用此命令,因为在 Linux 中删除的文件通常是无法恢复的(没有回收站)!
5.1 基本用法
要删除一个文件,输入 rm 加上文件名。
rm file_name5.2 常用选项
-r或-R: (Recursive) 递归删除,用于删除整个目录及其内部的所有内容。-f: (Force) 强制删除。忽略不存在的文件,并且绝不弹出任何确认提示。-i: (Interactive) 交互模式。在删除每一个文件或目录前都会停下来询问你是否确认操作。-v: (Verbose) 详细模式,在屏幕上显示正在被删除的文件名单。
5.3 实例演示
删除单个文件:
rm myfile.txt这会从当前目录永久抹除 myfile.txt。
删除多个文件:
rm file1.txt file2.txt file3.txt递归删除整个目录及其内容:
rm -r my_directory危险操作提醒: 此命令会彻底销毁 my_directory 及其包含的所有文件和子目录。
强制删除文件且不提示:
rm -f myfile.txt这会不带任何警告地删除文件,即使你对该文件没有写权限(前提是你对其所在的目录有写权限)。
交互式安全删除:
rm -i file1.txt file2.txt系统会逐一询问你是否真的要删除 file1.txt 和 file2.txt,你需要输入 y (yes) 或 n (no) 来确认。
显示详细的删除过程:
rm -v myfile.txt