1. ls (list) 查看列表
ls [参数] [目录或文件]
#显示当前目录下的文件和文件夹
1.1 常用参数
-l
:以长格式显示文件和目录的详细信息,包括文件类型、权限、所有者、大小、修改时间等。- 输出示例:
-rw-r--r-- 1 user group 1024 Jan 10 10:00 file1.txt
drwxr-xr-x 2 user group 4096 Jan 15 15:00 dir1
(第一列表示文件类型和权限,-表示普通文件,d表示目录;r可读,w可写,x可执行。可后面的字符分别表示所有者、所属组和其他用户的权限)
-h
:与-l选项一起使用时,以人类可读的格式显示文件大小,例如1K、2M、3G等。-a
:显示所有文件和目录,包括隐藏文件(以.开头的文件)-t
:按修改时间排序,从新到旧显示文件-r
:翻转排序结果,一般和-t一起使用,按时间从旧到新显示文件
2. cd (change directory) 更改目录
- 绝对路径从根目录 / 开始,完整地描述了目录的位置:
cd [绝对路径]
- 例如:
cd /home/user/Documents
- 例如:
- 相对路径是相对于当前工作目录的路径:
cd [相对路径]
- 返回上一级目录,可以使用 … 表示上一级目录:
cd ..
- 切换到当前用户的主目录:
cd ~
或cd
- 切换到上一次所在的工作目录:
cd -
- 返回上一级目录,可以使用 … 表示上一级目录:
- 根目录下常见目录及其作用
/bin
:存放着许多用户级别的可执行命令,如 ls(列出目录内容)、cd(切换目录)、cp(复制文件或目录)等。这些命令是系统正常运行所必需的基本命令,无论是普通用户还是系统管理员在终端中都经常使用到。/sbin
:主要存储系统管理命令,例如 init(系统初始化进程)、ifconfig(配置网络接口)、fdisk(磁盘分区工具)等。这些命令通常需要管理员权限才能执行,用于系统管理和维护任务。/etc
:这个目录保存了系统的各种配置文件,像 passwd(用户账户信息)、group(用户组信息)、network(网络配置文件)以及各种服务的配置文件等。系统在启动和运行过程中会读取这些配置文件,以确定系统的运行参数和服务的运行方式。/home
:普通用户的主目录所在位置,每个用户都有一个以自己用户名命名的子目录,用于存储个人文件、配置文件等。例如,/home/user1 就是用户 user1 的主目录,用户可以在自己的主目录中自由创建、修改和删除文件。/root
:系统管理员(root 用户)的主目录。与普通用户的 home 目录类似,但只有 root 用户具有访问和操作权限,用于存储 root 用户的个人文件和配置信息。/var
:用于存放系统运行时不断变化的数据,如日志文件(/var/log)、邮件文件(/var/mail)、缓存文件(/var/cache)等。日志文件记录了系统和各种服务的运行信息,对于故障排查和系统监控非常重要。/tmp
:临时文件目录,所有用户都可以在此目录中创建和删除临时文件。系统会在适当的时候自动清理该目录中的文件,通常用于存储程序运行过程中产生的临时数据,如临时下载的文件、程序的临时缓存等。/usr
:包含了大量的用户级应用程序、库文件和文档。它进一步分为多个子目录,如 /usr/bin(用户应用程序)、/usr/lib(库文件)、/usr/share(共享数据,如帮助文档、图标等)。这个目录类似于 Windows 系统中的 Program Files 目录,用于安装和存放各种软件包。
3. 文件(夹)相关操作
3.1 创建文件
- 方法一:
echo "文件内容" >文件名
- 方法二:
touch "文件内容" >文件名
(touch用来更新文件修改时间,若无会创建这个文件)
3.2 cp (copy) 复制文件
cp [选项] 源文件或目录 目标文件或目录
3.2.1 常用选项
-r
或-R
:递归复制目录及其子目录和文件,当你需要复制整个目录树时,就需要使用这个选项,否则 cp 命令默认只能复制文件,不能直接复制目录。-i
:在覆盖目标文件之前给出提示,让用户确认是否覆盖-v
:显示详细的复制过程信息,让你清楚地知道哪些文件正在被复制-p
:保留源文件的权限、所有者、时间戳等属性。
3.2.2 用法
- 将 file1.txt 复制到当前目录下并命名为 file2.txt:
cp file1.txt file2.txt
- 将 file1.txt 和 file2.txt 复制到 /home/user/Downloads 目录下:
cp file1.txt file2.txt /home/user/Downloads
- 将 file1.txt 复制到 /home/user/Documents 目录下:
cp file1.txt
/home/user/Documents
- 将 source_dir 目录及其内容递归复制到 destination_dir 目录下:
cp -r source_dir destination_dir
3.3 mv (move)移动文件
3.3.1 常用选项
-i
:在覆盖目标文件之前给出提示,询问用户是否确认覆盖。这能避免误操作覆盖重要文件-v
:显示详细的操作过程信息,让你清楚知道哪些文件正在被移动或重命名-f
:强制移动文件,即使目标文件已存在也不会给出提示,直接覆盖。使用时要谨慎,因为这可能会导致数据丢失
3.3.2 用法一:移动文件或目录
- 将 file1.txt 从当前目录移动到 /home/user/Documents 目录下:
mv file1.txt /home/user/Documents
- 把 source_dir 目录移动到 destination_dir 目录下:
mv source_dir destination_dir
3.3.3 用法二:重命名文件或目录
- 将 old_name.txt 重命名为 new_name.txt,因为目标只是指定了新的文件名,而路径仍为当前目录:
mv old_name.txt new_name.txt
- 将 old_dir 目录重命名为 new_dir:
mv old_dir new_dir
3.4 rm (remove)删除文件
rm [选项] 文件或目录
3.4.1 常用选项
-f
:强制删除,不提示确认。在确定要删除且不想被反复询问时使用,如 rm -f important.txt
,但使用需谨慎,避免误删重要数据。-i
:交互式删除,在删除前会逐一询问是否确认删除,可防止误删,如rm -i file1.txt
。-r
:递归删除目录及其子目录、文件 。如删除一个包含多层子目录和文件的目录结构时需加此选项。-v
:显示删除操作的详细信息,会打印出正在删除的文件名等,如rm -v file2.txt
,可看到 removed ‘file2.txt’ 提示。
4. 目录相关操作
4.1 mkdir 创建目录
- 常用选项
-p
:递归创建目录。当你要创建的目录的上级目录不存在时,使用这个选项可以一并创建缺失的上级目录:mkdir -p parent_dir/child_dir/grandchild_dir
-m
:设置新建目录的权限。你可以用数字形式指定权限,例如 755 代表所有者有读、写、执行权限,所属组和其他用户有读、执行权限。mkdir -m 755 new_directory (r:4,w:2,x:1)
4.2 rmdir 删除目录
- rmdir 只能删除空目录。若目录不为空,执行该命令会提示 “Directory not empty” 错误。若要删除非空目录,可使用 rm -r 命令,但要谨慎操作,因为这会递归删除目录及其所有内容,且删除操作通常不可逆
- 你需要有删除指定目录的权限,否则会收到权限不足的错误提示
5. 通配符的使用
*
可匹配零个或多个任意字符 ,是最常用的通配符之一。比如:- 列出当前目录下所有文件:执行
ls *
,会列出当前目录下所有文件(不包括隐藏文件 )。 - 匹配特定后缀文件:
ls *.txt
,能列出当前目录下所有扩展名为 .txt 的文件。 - 匹配指定开头文件:
ls data*
,可列出当前目录下所有以 data 开头的文件。
- 列出当前目录下所有文件:执行
?
用于匹配单个任意字符 。例如:- 匹配单个字符文件名:
ls?.txt
,会列出当前目录下以一个任意字符开头且扩展名为 .txt 的文件。 - 匹配特定格式文件名:
ls a?.txt
,能列出当前目录下以 a 开头,后面跟一个任意字符,且扩展名为 .txt 的文件。
- 匹配单个字符文件名:
- [] 匹配方括号内的任意一个字符 。具体用法:
- 匹配指定字符开头文件:
ls [abc]*
,会列出以 a 、b 或 c 开头的文件。 - 匹配特定位置字符文件:若想匹配文件名中第二个字符为数字的文件,可使用类似
ls?[0-9]*
的命令 ,这里 [0-9] 表示匹配 0 - 9 中的任意一个数字。还可使用诸如 [a-z] 匹配任意小写字母、[A-Z] 匹配任意大写字母 。
- 匹配指定字符开头文件:
- 排除特定字符:在方括号内用
! 或(^)
表示排除,如ls [^0-9]*
,会列出不以数字开头的文件。 - {} 用于匹配多个选项中的任意一个 ,也可用于批量生成文件名。例如:
- 匹配指定文件名:
ls file{1,2,3}.txt
,会列出 file1.txt 、file2.txt 、file3.txt 这几个文件(前提是这些文件存在 )。 - 批量创建文件:
touch file{1..5}.txt
,可一次性创建 file1.txt 到 file5.txt 这 5 个文件。
- 匹配指定文件名:
6. 管道符号的使用 |
- 作用:连接多个命令,把上一命令的标准输出作为后面命令的标准输入,若上一命令错误,则传递为0
- 语法:
命令A | 命令B | 命令C...
- 本质:管道不保存数据,只是实时传递数据流。
7. echo 输出
echo [选项] [字符串或变量]
7.1 常用选项
-n
:输出内容后不换行。默认情况下,echo 输出内容后会自动换行,使用 -n 可阻止换行。例如:
echo -n "Hello, "
echo "world!"
# 输出:Hello, world!("Hello, " 后面没有换行)
-e
:启用反斜杠转义字符的解析。echo 命令默认不解析字符串中的反斜杠转义字符,使用-e 选项可以让它正确解析这些转义字符。
echo -e "Hello,\nworld!"
# 输出:
# Hello,
# world!
常见的转义字符有:
\n:换行符,使输出内容换行。
\t:制表符,产生一个制表位的缩进效果。
\:输出一个反斜杠字符。
":输出一个双引号字符。
\0xx:输出八进制 ASCII 码对应的字符(xx 是两位八进制数)。
\xhh:输出十六进制ASCII 码对应的字符(hh 是两位十六进制数)。
- –help:显示 echo 命令的帮助信息。不过不同系统中 echo 的帮助信息可能会有所差异。