pwd # 显示当前目录 ls -la # 列出所有文件(包括隐藏) cd /path/to/dir # 切换目录(绝对路径) cd ~ # 回到家目录 cd .. # 上一级目录 cd - # 回到上次的目录
.
..
~
/
mkdir mydir # 创建目录 mkdir -p a/b/c # 递归创建目录 touch file.txt # 创建空文件 rm file.txt # 删除文件 rm -rf directory # 删除目录(危险!)
cp source.txt dest.txt # 复制文件 cp -r dir1 dir2 # 复制目录 mv old.txt new.txt # 重命名/移动文件
cat file.txt # 输出全部内容 less file.txt # 分页查看(推荐) head file.txt # 前10行 head -n 20 file.txt # 前20行 tail file.txt # 后10行 tail -f log.txt # 实时查看日志
nano file.txt # 简单编辑器 vim file.txt # 高级编辑器
# 按名称查找 find . -name "*.txt" find . -name "*.py" -type f # 按时间查找 find . -mtime -1 # 最近1天修改的 find . -mtime +30 # 30天前修改的 # 按大小查找 find . -size +10M # 大于10MB find . -size +500k -size -10M # 500KB到10MB之间
# 基本搜索 grep "keyword" file.txt # 递归搜索 grep -r "pattern" directory/ # 忽略大小写 grep -i "error" log.txt # 显示行号 grep -n "function" code.py # 反向匹配 grep -v "debug" log.txt # 排除包含 debug 的行
ls -l file.txt # -rwxr-xr-x # ||| | | # ||| | +-- 其他人权限 (r-x: 读和执行) # ||| +----- 组权限 (r-x: 读和执行) # ||+-------- 所有者权限 (rwx: 读写执行) # |+--------- 文件类型 (-: 文件, d: 目录)
755 = rwxr-xr-x
644 = rw-r--r--
chmod 755 script.sh # rwxr-xr-x chmod +x script.sh # 添加执行权限 chmod u+w file.txt # 所有者添加写权限 chmod go-r file.txt # 组和其他人移除读权限
sudo command # 以 root 身份执行 sudo !! # 以 root 执行上一条命令
# 将前一个命令输出传给后一个 ls -l | grep ".txt" cat file.txt | wc -l # 统计行数 ps aux | grep python # 查找进程 history | grep git # 搜索历史命令 # 多个管道连接 cat access.log | grep "ERROR" | wc -l
# 比较两个目录的文件 diff <(ls dir1) <(ls dir2)
# 输出重定向 command > output.txt # 覆盖写入 command >> output.txt # 追加写入 # 错误重定向 command 2> error.log # 只重定向错误 command > out.txt 2>&1 # 合并标准输出和错误 command &> all.log # 简写形式 # 输入重定向 mysql < database.sql
command > /dev/null 2>&1 # 丢弃所有输出
# 通配符 ls *.txt # 所有 .txt 文件 ls file?.txt # file1.txt, file2.txt ls file[12].txt # file1.txt, file2.txt # 花括号展开 echo {1..10} # 1 2 3 ... 10 echo {a..z} # a b c ... z # 多个模式 mv *{.py,.sh} scripts/ # 移动所有 .py 和 .sh 文件