简介:ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一。 Linux 文件或者目录名称最长可以有 265 个字符,. 代表当前目录,.. 代表上一级目录,以 . 开头的文件为隐藏文件,需要用 -a 参数才能显示。
| 参数 | 含义 |
|---|
-a | 显示所有文件,包括隐藏文件 |
-l | 以列表方式显示文件的详细信息 |
-h | 配合 -l 以人类可读方式显示文件大小 |
-S | 按文件大小排序 |
-t | 按修改时间排序 |
-r | 逆序排序 |
-R | 递归显示子目录 |
-d | 只显示目录本身(不显示目录内容) |
-i | 显示 inode 号 |
--color | 彩色显示(默认已启用) |
| 通配符 | 含义 | 示例 |
|---|
* | 匹配任意长度的任意字符 | ls *.txt 查找所有 txt 文件 |
? | 匹配单个任意字符 | ls file?.txt 匹配 file1.txt, fileA.txt |
[abc] | 匹配方括号内的任意一个字符 | ls [abc]* 匹配 a/b/c 开头的文件 |
[a-z] | 匹配指定范围内的字符 | ls [a-z]* 匹配小写字母开头的文件 |
[!0-9] | 匹配不在范围内的字符 | ls [!0-9]* 匹配非数字开头的文件 |
\ | 转义字符,使通配符作为普通字符 | ls \*a 查找文件名为 *a 的文件 |
简介:Linux 允许将命令执行结果重定向到一个文件。
ls > test.txt
ls >> test.txt
当信息过长无法在一屏显示时,使用 more 每次只显示一页:
管道:一个命令的输出可以通过管道作为另一个命令的输入。
ls -la | grep "\.txt"
ls -la | more
cat /etc/passwd | cut -d: -f1
简介:cd 用于切换工作目录,后面可跟绝对路径或相对路径。
| 命令 | 含义 |
|---|
cd | 切换到当前用户的主目录 |
cd ~ | 切换到当前用户的主目录 |
cd . | 切换到当前目录 |
cd .. | 切换到上级目录 |
cd - | 切换到上次所在的目录 |
cd / | 切换到根目录 |
cd ~user1 | 切换到 user1 的家目录 |
注意:Linux 所有目录和文件名大小写敏感。
mkdir mydir
mkdir -p parent/child/grand
mkdir -m 755 mydir
mkdir dir1 dir2 dir3
rmdir emptydir
rmdir -p a/b/c
| 参数 | 含义 |
|---|
-i | 交互式删除,逐个确认 |
-f | 强制删除,不提示 |
-r | 递归删除目录及其内容 |
rm file.txt
rm -r dir/
rm -f file.txt
rm -rf dir/
Linux 链接文件类似于 Windows 下的快捷方式。
| 类型 | 命令 | 特点 |
|---|
| 软链接 | ln -s 源 链接 | 不占空间,源删除则失效 |
| 硬链接 | ln 源 链接 | 共享 inode,源删除仍可用 |
ln -s /usr/local/bin/python3 python3
ln file.txt hardlink.txt
cat file.txt
cat -n file.txt
cat -b file.txt
cat -s file.txt
cat file1.txt file2.txt
cat > newfile.txt
| 参数 | 含义 |
|---|
-v | 显示不包含匹配文本的行 |
-n | 显示匹配行及行号 |
-i | 忽略大小写 |
-c | 只统计匹配行数 |
-r | 递归搜索 |
-w | 匹配整个单词 |
| 表达式 | 含义 |
|---|
^a | 行首匹配,查找以 a 开头的行 |
ke$ | 行尾匹配,查找以 ke 结尾的行 |
[Ss] | 匹配 S 或 s |
. | 匹配任意单个字符 |
* | 重复前一个字符 0 次或多次 |
.* | 匹配任意字符串 |
grep -n "error" log.txt
grep -v "^#" config.conf
grep -r "TODO" /project/
grep -c "error" log.txt
ps aux | grep nginx
| 命令 | 含义 |
|---|
find . -name "test.sh" | 查找当前目录下名为 test.sh 的文件 |
find . -name "*.sh" | 查找当前目录下所有 .sh 文件 |
find . -name "[A-Z]*" | 查找大写字母开头的文件 |
find /tmp -size 2M | 查找 /tmp 下等于 2M 的文件 |
find /tmp -size +2M | 查找大于 2M 的文件 |
find /tmp -size -2M | 查找小于 2M 的文件 |
find . -size +4k -size -5M | 查找 4k 到 5M 之间的文件 |
find . -perm 777 | 查找权限为 777 的文件 |
find . -type f -name "*.log" -delete | 找到并删除 .log 文件 |
find . -type f -exec chmod 644 {} + | 批量改权限 |
| 参数 | 含义 |
|---|
-a | 保留链接、文件属性,递归复制(归档) |
-f | 覆盖已存在的目标文件而不提示 |
-i | 交互式复制,覆盖前确认 |
-r | 递归复制目录 |
-v | 显示复制进度 |
-p | 保留文件属性(权限、时间戳) |
-u | 只复制更新的文件 |
cp file.txt /backup/
cp -r dir/ /backup/
cp -a source/ dest/
| 参数 | 含义 |
|---|
-f | 强制覆盖,不提示 |
-i | 交互式,覆盖前确认 |
-v | 显示移动进度 |
-u | 只移动更新的文件 |
mv file.txt /new/path/
mv oldname.txt newname.txt
mv *.txt /target/
| 参数 | 含义 |
|---|
-c | 创建归档文件 |
-x | 解开归档文件 |
-v | 显示过程 |
-f | 指定归档文件名(必须放最后) |
-t | 列出归档内容 |
-z | 通过 gzip 压缩/解压 |
-j | 通过 bzip2 压缩/解压 |
-J | 通过 xz 压缩/解压 |
-C | 解压到指定目录 |
tar -cvf archive.tar dir/
tar -czvf archive.tar.gz dir/
tar -cjvf archive.tar.bz2 dir/
tar -xvf archive.tar
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2
tar -xzvf archive.tar.gz -C /dir/
gzip file.txt
gzip -d file.txt.gz
gzip -r dir/
gzip -l file.txt.gz
tar + gzip 组合:tar -zcvf file.tar.gz dir/
bzip2 file.txt
bzip2 -d file.txt.bz2
tar + bzip2 组合:tar -jcvf file.tar.bz2 dir/
zip -r archive.zip dir/
zip archive.zip file1 file2
unzip archive.zip
unzip archive.zip -d /target/
unzip -l archive.zip
which ls
which python3
which -a ls