Linux 是一个功能强大的开源操作系统,广泛应用于服务器、桌面计算机和移动设备上。对于新手来说,熟悉 Linux 命令行是掌握这个系统的关键之一。
基本导航命令
在 Linux 中,文件系统的导航是最基本的操作之一。大家起码要知道三个基本导航命令:pwd
、cd
和 ls
。
pwd
(Print Working Directory)
pwd
命令用于显示当前目录的绝对路径。这对于了解你在文件系统中的位置非常有用,特别是在处理多个目录时。
$ pwd
当你打开一个终端时,你通常会从用户的主目录开始。通过输入 pwd
命令,你可以看到当前所在的目录路径,这有助于你确定自己在文件系统中的位置。
cd
(Change Directory)
cd
命令用于在文件系统中导航。你可以使用它来切换到不同的目录。
$ cd documents # 切换到当前目录下的 documents 目录
$ cd /home/user/downloads # 切换到指定的绝对路径
$ cd .. # 切换到上一级目录
$ cd ~ # 切换到用户的主目录
$ cd - # 切换到上一次所在的目录
cd documents
将你切换到当前目录下的documents
目录。cd /home/user/downloads
使用绝对路径切换到downloads
目录。cd ..
返回到当前目录的上一级目录。cd ~
切换到用户的主目录,这通常是你登录时所在的目录。cd -
切换回上一次所在的目录,这对于在两个目录间来回切换非常有用。
ls
(List)
ls
命令用于显示目录内容。你可以使用不同的选项来定制输出格式。
$ ls # 列出当前目录的内容
$ ls snap # 列出指定目录的内容
$ ls -l # 以长格式显示目录内容,包含权限、所有者、大小等信息
$ ls -a # 显示所有文件,包括隐藏文件(以.开头)
$ ls -lh # 以人类可读的格式显示文件大小
$ ls -R # 递归列出所有子目录的内容
ls
命令列出当前目录的所有文件和子目录。
ls snap
列出snap
目录中的所有文件和子目录。
ls -l
提供详细的文件信息,如权限、所有者、文件大小和修改时间。
ls -a
显示所有文件,包括隐藏文件,这些文件通常以点(.
)开头。
ls -lh
将文件大小以人类可读的格式显示,如 KB、MB。
ls -R
递归列出当前目录及其所有子目录的内容。
文件管理
如何创建、复制和删除目录与文件,这些操作是文件管理的核心部分。
mkdir
(Make Directory)
mkdir
命令用于创建新目录。
$ mkdir project # 创建一个名为 project 的新目录
$ mkdir documents/project # 在 documents 目录下创建 project 子目录
$ mkdir -p documents/project/subproject # 创建目录及其所需的父目录
mkdir project
创建一个名为project
的新目录。mkdir documents/project
在documents
目录下创建一个名为project
的子目录。mkdir -p documents/project/subproject
使用-p
选项创建documents/project/subproject
目录,如果父目录不存在则一并创建。
cp
(Copy)
cp
命令用于复制文件和目录。
$ cp file1.txt file2.txt # 复制文件
$ cp documents/report.txt backup/ # 复制文件到指定目录
$ cp -r project backup/ # 递归复制目录及其内容
cp file1.txt file2.txt
复制file1.txt
为file2.txt
。cp documents/report.txt backup/
将report.txt
复制到backup
目录中。cp -r project backup/
递归复制project
目录及其所有内容到backup
目录中。
rmdir
(Remove Directory)
rmdir
命令用于删除空目录。
$ rmdir emptydirectory # 删除一个空目录
$ rmdir -p directory/subdirectory # 删除目录及其父目录
$ rm -r directory_name # 删除目录及其所有内容
rmdir emptydirectory
删除一个名为emptydirectory
的空目录。rmdir -p directory/subdirectory
使用-p
选项删除subdirectory
及其父目录directory
。rm -r directory_name
使用rm -r
命令递归删除目录及其所有内容,适用于非空目录。
权限管理和文本搜索
chmod
(Change Mode)
chmod
命令用于更改文件或目录的权限。
$ chmod u+x file.txt # 为文件所有者添加执行权限
$ chmod 755 directory # 设置目录权限为755,所有者可读写执行,组和其他用户可读执行
$ chmod 644 file1.txt file2.txt # 设置文件权限为644,所有者可读写,组和其他用户只读
chmod u+x file.txt
为文件所有者(用户)添加执行权限。chmod 755 directory
设置目录权限为 755,所有者有所有权限(读写执行),组和其他用户有读和执行权限。chmod 644 file1.txt file2.txt
将多个文件的权限设置为 644,所有者可读写,组和其他用户只读。
grep
(Global Regular Expression Print)
grep
命令用于在文本文件中搜索指定的模式,并打印包含该模式的行。
$ grep pattern input-file # 在文件中搜索模式
$ grep error log.txt # 在 log.txt 文件中搜索 "error"
$ grep '[0-9][0-9][0-9]' input-file # 使用正则表达式搜索三位数字
$ grep -r error /var/log # 递归搜索目录中的文件
grep pattern input-file
在input-file
文件中搜索pattern
并打印匹配的行。grep error log.txt
在log.txt
文件中搜索包含 "error" 的行。grep '[0-9][0-9][0-9]' input-file
使用正则表达式搜索input-file
文件中包含三位数字的行。grep -r error /var/log
递归搜索/var/log
目录及其子目录中的所有文件,查找包含 "error" 的行。
查找文件和内容显示
find
(Find)
find
命令用于根据各种条件在文件系统中搜索文件和目录。
$ find / -name "example.txt" # 搜索文件名为 example.txt 的文件
$ find / -size +100M # 搜索大于100MB的文件
$ find / -mtime +30 # 搜索最近30天未修改的文件
$ find / -type f -name "*.sh" # 搜索所有扩展名为.sh的文件
find / -name "example.txt"
从根目录开始搜索名为example.txt
的文件。find / -size +100M
搜索大于 100MB 的文件。find / -mtime +30
搜
索最近 30 天未修改的文件。
find / -type f -name "*.sh"
搜索所有扩展名为.sh
的文件。
cat
(Concatenate)
cat
命令用于连接文件并显示其内容。它常用于查看文件内容、创建新文件和合并文件。
$ cat file.txt # 显示文件内容
$ cat > newfile.txt # 创建一个新文件并输入内容
This is the first line of text in the new file.
This is the second line of text in the new file.
# 按 CTRL+D 保存并退出
$ cat file1.txt file2.txt # 合并两个文件并显示内容
$ cat -n file.txt # 显示文件内容并带行号
cat file.txt
显示file.txt
文件的内容。cat > newfile.txt
创建一个名为newfile.txt
的新文件并输入内容,按CTRL+D
保存并退出。cat file1.txt file2.txt
显示file1.txt
和file2.txt
的内容。cat -n file.txt
显示file.txt
的内容并带有行号。
总结
命令 | 全称 | 功能描述 |
---|---|---|
pwd |
Print Working Directory | 显示当前目录的路径 |
cd |
Change Directory | 切换目录 |
ls |
List | 列出目录内容 |
mkdir |
Make Directory | 创建新目录 |
cp |
Copy | 复制文件或目录 |
rmdir |
Remove Directory | 删除空目录 |
chmod |
Change Mode | 修改文件或目录权限 |
grep |
Global Regular Expression Print | 在文件中搜索模式 |
find |
Find | 查找文件或目录 |
cat |
Concatenate | 显示文件内容,合并文件 |