文件与目录操作
ls:列出目录内容。例如,ls -l 显示详细列表信息,ls -a 显示包括隐藏文件在内的所有文件。
cd:改变当前工作目录。例如,cd /home/user 进入用户主目录,cd .. 返回上一级目录。
pwd:显示当前工作目录的路径。
mkdir:创建新目录。例如,mkdir myfolder 创建名为 myfolder 的目录。
rmdir:删除空目录。例如,rmdir myfolder 删除名为 myfolder 的空目录。
rm:删除文件或目录。例如,rm myfile.txt 删除文件,rm -r myfolder 递归删除非空目录。
cp:复制文件或目录。例如,cp file1.txt file2.txt 复制文件并命名为 file2.txt,cp -r folder1 folder2 复制目录。
mv:移动或重命名文件或目录。例如,mv file1.txt /home/user/ 移动文件到用户目录,mv file1.txt file2.txt 重命名文件。
touch:创建空文件或更新现有文件的时间戳。例如,touch newfile.txt 创建新文件。
文件查看与编辑
cat:显示文件内容。例如,cat myfile.txt 显示文件内容。
less 或 more:分页显示文件内容。例如,less myfile.txt 允许滚动查看大文件。
nano 或 vim:文本编辑器。例如,nano myfile.txt 使用 nano 编辑器打开文件。
head 和 tail:分别显示文件的前几行和后几行。例如,head -n 5 myfile.txt 显示文件的前五行。
系统信息
df:显示磁盘空间使用情况。例如,df -h 以人类可读的方式显示。
du:显示目录或文件占用的磁盘空间。例如,du -sh /home/user 显示用户主目录的总大小。
top 或 htop:显示系统运行中进程的状态。htop 提供了更友好的界面。
ps:显示当前进程的状态。例如,ps aux 显示所有用户的进程。
free:显示内存使用情况。例如,free -m 以 MB 为单位显示。
uname:显示系统信息。例如,uname -a 显示所有相关信息。
ifconfig 或 ip addr:显示网络接口配置。ip addr 是较新的命令。
用户与权限
whoami:显示当前用户名。
su:切换用户。例如,su - 切换到 root 用户。
sudo:以超级用户权限执行命令。例如,sudo apt-get update 更新包列表。
chmod:更改文件或目录的权限。例如,chmod 755 myfile.sh 设置执行权限。
chown:更改文件或目录的所有者。例如,chown user:group myfile.txt 更改文件的所有者和组。
软件包管理
apt (Debian/Ubuntu):高级包工具,用于安装、更新、卸载软件包。例如,sudo apt install package_name 安装软件包。
yum (Red Hat/CentOS):另一个包管理器。例如,sudo yum install package_name 安装软件包。
dnf (Fedora):DNF 是 YUM 的替代品,提供更快的依赖解析。例如,sudo dnf install package_name 安装软件包。
1. ripgrep (rg)
ripgrep 是一个非常快速的搜索工具,用于递归搜索文件内容。它比传统的 grep 更快,更容易使用。
安装
Ubuntu/Debian
sudo apt-get install ripgrep
CentOS/RHEL
sudo yum install ripgrep
macOS (using Homebrew)
brew install ripgrep
使用
搜索当前目录及其子目录中包含 "pattern" 的文件
rg "pattern"
搜索特定类型的文件
rg "pattern" --type=js
忽略大小写
rg -i "pattern"
2. fd (fd-find)
fd 是一个简单、快速的文件查找工具,用于替代 find 命令。
安装
Ubuntu/Debian
sudo apt-get install fd-find
CentOS/RHEL
sudo yum install fd-find
macOS (using Homebrew)
brew install fd
使用
查找当前目录及其子目录中的所有 .txt 文件
fd .txt
查找特定目录中的文件
fd .txt /path/to/directory
忽略隐藏文件和目录
fd --hidden .txt
3. bat
bat 是一个 cat 命令的替代品,提供了语法高亮、行号显示等增强功能。
安装
Ubuntu/Debian
sudo apt-get install bat
CentOS/RHEL
sudo yum install bat
macOS (using Homebrew)
brew install bat
使用
显示文件内容
bat file.txt
显示行号
bat -n file.txt
语法高亮
bat file.py
4. exa
exa 是一个现代的 ls 命令替代品,提供了更多的功能和更好的输出格式。
安装
Ubuntu/Debian
sudo apt-get install exa
CentOS/RHEL
sudo yum install exa
macOS (using Homebrew)
brew install exa
使用
列出目录内容
exa
显示详细信息
exa -l
递归列出目录
exa -R
显示隐藏文件
exa -a
5. httpie
httpie 是一个现代的 HTTP 客户端,用于替代 curl,提供了更友好的命令行界面和输出格式。
安装
Ubuntu/Debian
sudo apt-get install httpie
CentOS/RHEL
sudo yum install httpie
macOS (using Homebrew)
brew install httpie
使用
发送 GET 请求
http https://api.example.com
发送 POST 请求
http POST https://api.example.com/data name=value
添加自定义头
http GET https://api.example.com 'Authorization: Bearer token'
6. fzf
fzf 是一个交互式的文件和文本搜索工具,可以用于模糊搜索和选择文件。
安装
Ubuntu/Debian
sudo apt-get install fzf
CentOS/RHEL
sudo yum install fzf
macOS (using Homebrew)
brew install fzf
使用
交互式搜索文件
fzf
与 fd 结合使用
fd .txt | fzf
与 git 结合使用
git ls-files | fzf
7. jq
jq 是一个轻量级的命令行 JSON 处理器,用于解析和操作 JSON 数据。
安装Ubuntu/Debian
sudo apt-get install jq
CentOS/RHEL
sudo yum install jq
macOS (using Homebrew)
brew install jq
使用
解析 JSON 文件
jq . file.json
提取特定字段
jq '.name' file.json
过滤数据
jq '.[] | select(.age > 30)' data.json
8. dive
dive 是一个用于探索 Docker 镜像的工具,可以帮助你分析镜像的每一层。
安装
使用 Docker 安装
docker pull wagoodman/dive
使用 Homebrew (macOS)
brew install dive
使用
分析 Docker 镜像
dive <image-name>
9. htop
htop 是一个交互式的进程查看器,提供了比 top 更丰富的功能和更好的用户体验。
安装
Ubuntu/Debian
sudo apt-get install htop
CentOS/RHEL
sudo yum install htop
macOS (using Homebrew)
brew install htop
使用
启动 htop
htop
10. neofetch
neofetch 是一个系统信息显示工具,可以显示系统信息、硬件信息等。
安装
Ubuntu/Debian
sudo apt-get install neofetch
CentOS/RHEL
sudo yum install neofetch
macOS (using Homebrew)
brew install neofetch
使用
显示系统信息
neofetch
11. ncdu
ncdu 是一个基于 curses 的磁盘使用情况分析工具,提供了比 du 更友好的界面和功能。
安装
Ubuntu/Debian
sudo apt-get install ncdu
CentOS/RHEL
sudo yum install ncdu
macOS (using Homebrew)
brew install ncdu
使用
分析当前目录的磁盘使用情况
ncdu
12. tldr
tldr 是一个简化版的 man 命令,提供了简洁的命令用法示例。
安装
Ubuntu/Debian
sudo apt-get install tldr
CentOS/RHEL
sudo yum install tldr
macOS (using Homebrew)
brew install tldr
使用
查看 git 命令的简明用法
tldr git
13. zoxide
zoxide 是一个快速的目录切换工具,可以替代 cd 命令,提供更智能的目录导航。
安装
使用 Homebrew (macOS)
brew install zoxide
使用 Cargo (Rust)
cargo install zoxide
使用
初始化 zoxide
eval "$(zoxide init ba)"
切换目录
z foo
14. lazygit
lazygit 是一个基于 ncurses 的 Git 界面,提供了更直观的 Git 操作体验。
安装
使用 Homebrew (macOS)
brew install lazygit
使用 Scoop (Windows)
scoop install lazygit
使用
启动 lazygit
lazygit
ls- 列出目录内容
-l:使用长格式输出,显示文件的详细信息,包括权限、链接数、所有者、组、大小和修改日期。
-a:显示所有文件,包括以点(.)开头的隐藏文件。
-h:以人类可读的格式显示文件大小(例如,K、M、G)。
-t:按修改时间排序,最新的文件排在最前面。
-r:反转排序顺序。
-S:按文件大小排序,最大的文件排在最前面。
示例:
ls -lahtS /path/to/directory
cd- 改变当前目录
~:切换到当前用户的家目录。
..:切换到上一级目录。
:切换到上一次所在的目录。
示例:
cd ~
cd ..
cd -
pwd- 显示当前工作目录
mkdir- 创建目录
-p:创建多级目录,如果父目录不存在则自动创建。
示例:
mkdir -p /path/to/new/directory
rmdir- 删除空目录
例:
rmdir /path/to/empty/directory
rm- 删除文件或目录
-f:强制删除,不提示确认。
-i:交互式删除,每删除一个文件都提示确认。
-r或-R:递归删除目录及其内容。
-v:显示删除过程中的详细信息。
示例:
rm -rf /path/to/directory
rm -i file.txt
cp- 复制文件或目录
-r或-R:递归复制目录。
-i:交互式复制,目标文件已存在时提示确认。
-v:显示复制过程中的详细信息。
-p:保留源文件的属性(如时间戳、权限)。
-t:目标和源交换位置
示例:
cp -r source_directory destination_directory
cp -ip file1.txt file2.txt
mv- 移动或重命名文件或目录
-i:交互式移动,目标文件已存在时提示确认。
-v:显示移动过程中的详细信息。
-u:仅当源文件比目标文件新时才移动。
-t:目标和源交换位置
示例:
mv -i file1.txt /path/to/destination/
mv file1.txt file2.txt
touch- 创建空文件或更新文件时间戳
示例:
touch newfile.txt
touch -m file.txt # 仅更新修改时间
cat- 显示文件内容
-n:显示行号。
-b:显示非空行的行号。
-E:显示行尾的结束符($)。
示例:
cat -n file.txt
less- 分页显示文件内容
- 无参数,但在less中可以使用以下命令:
q:退出less。
?string:反向搜索字符串。
/string:正向搜索字符串。
n:重复上次搜索。
N:反向重复上次搜索。
示例:
less file.txt
head和tail- 显示文件的前几行或后几行
-n:指定显示的行数。
-c:指定显示的字节数。
示例
head -n 10 file.txt
tail -n 10 file.tx
df- 显示磁盘空间使用情况
-h:以人类可读的格式显示。
-T:显示文件系统的类型。
示
df -h
df -Th
du- 显示目录或文件占用的磁盘空间
-h:以人类可读的格式显示。
-s:显示总大小。
-a:显示所有文件和目录的大小。
示例:
du -sh /path/to/directory
du -ah /path/to/directory
top和htop- 显示系统运行中进程的状态
- 无参数,但在top中可以使用以下命令:
q:退出top。
k:杀死进程。
r:改变进程优先级。
示例:
top
htop
ps- 显示当前进程的状态
aux:显示所有用户的进程。
-ef:显示所有进程的详细信息。
-C:按命令名称过滤进程。
-u:按用户过滤进程。
示例:
ps aux | grep process_name
ps -ef | grep process_name
free- 显示内存使用情况
-m:以 MB 为单位显示。
-g:以 GB 为单位显示。
-h:以人类可读的格式显示
示例:
free -m
free -h
uname- 显示系统信息
-a:显示所有信息。
-s:显示内核名称。
-r:显示内核版本。
-m:显示机器硬件架构。
-n:显示主机名。
示例:
uname -a
uname -r
ifconfig和ip addr- 显示网络接口配置
- 无参数,但在ip addr中可以使用以下选项:
show:显示指定接口的信息。
add:添加 IP 地址。
del:删除 IP 地址。
示例:
ifconfig
ip addr show eth0
whoami- 显示当前用户名
示例:
whoami
su- 切换用户
:切换到目标用户的环境。
示例:
su - root
sudo- 以超级用户权限执行命令
-i:以目标用户的登录 shell 执行命令。
-u:指定目标用户。
示例:
sudo apt-get update
sudo -u user command
chmod- 更改文件或目录的权限
+x:添加执行权限。
-w:移除写权限。
755:设置权限为 rwxr-xr-x。
示例:
chmod +x script.sh
chmod 755 directory
chown- 更改文件或目录的所有者
user:group:指定新的所有者和组。
-R:递归更改目录及其内容。
示例:
chown user:group file.txt
chown -R user:group directory
apt- 高级包工具
update:更新包列表。
upgrade:升级所有可升级的包。
install:安装包。
remove:卸载包。
search:搜索包。
show:显示包的详细信息。
示例:
sudo apt update
sudo apt upgrade
sudo apt install package_name
sudo apt remove package_name
yum- 包管理器
install:安装包。
update:更新包。
remove:卸载包。
list:列出可用包。
search:搜索包。
示例:
sudo yum install package_name
sudo yum update
sudo yum remove package_name
dnf- DNF 包管理器
install:安装包。
update:更新包。
remove:卸载包。
list:列出可用包。
search:搜索包。
示例:
sudo dnf install package_name
sudo dnf update
sudo dnf remove package_name