这个快速参考备忘单提供了使用 Linux 常用命令的使用清单
:--- | :--- |
---|---|
uname | 显示 linux 系统信息 |
uname -r | 显示内核版本信息 |
cat /etc/os-release | 显示 linux 系统详细信息 |
uptime | 显示系统运行的时间(包括平均负载) |
hostname | 显示系统主机名 |
hostname -i | 显示系统的IP地址 |
last reboot | 显示系统重新启动历史记录 |
date | 显示当前系统日期和时间 |
timedatectl | 查询和更改系统时钟 |
cal | 显示当前日历的月份和日期 |
w | 显示系统中当前登录的用户 |
whoami | 显示您的登录身份 |
finger username | 显示有关用户的信息 |
sed -ri 's/.*swap.*/#&/' /etc/fstab && swapoff -a | 关闭swap |
:--- | :--- |
---|---|
dmesg | 显示启动消息 |
cat /proc/cpuinfo | |
cat /proc/meminfo | |
df -h | G ) |
hdparm -i /dev/xda | |
lshw | 显示有关系统硬件配置的信息 |
lsblk | 显示块设备相关信息 |
free -m | 显示系统中空闲和使用的内存,-m (MB),-g (GB) |
lspci -tv | 在树状图中显示 PCI 设备 |
lsusb -tv | 以树状图的形式显示 USB 设备 |
dmidecode | 显示BIOS中的硬件信息 |
hdparm -tT /dev/xda <:code> | 在设备xda上进行读速度测试 |
badblocks -s /dev/xda | 测试磁盘上不可读的块 |
:--- | :--- |
---|---|
id | 显示活动用户的详细信息,如uid、gid和组 |
last | 显示系统中的最后一次登录 |
who | 显示谁已登录到系统 |
groupadd "admin" | 添加组"admin" |
adduser "Sam" | 添加用户 Sam |
userdel "Sam" | 删除用户 Sam |
usermod | 用于更改/修改用户信息 |
:--- | :--- |
---|---|
ssh user@host | 使用指定用户安全连接到主机 |
ssh -p port_number user@host | 使用指定端口安全地连接到主机 |
ssh host | 通过SSH默认端口22安全连接到系统 |
telnet host | 通过telnet默认端口23连接到主机 |
:--- | :--- |
---|---|
ls -al | 列出文件-包括常规文件和隐藏文件以及它们的权限 |
tree | 以树形结构列出文件,常用参数有:-d 查看目录,-L num 查看num层文件,-a 查看隐藏文件 |
pwd | 显示当前目录文件路径 |
mkdir 'directory_name' | 创建一个新目录 |
rm file_name | 删除一个文件 |
rm -f filename | 强制删除文件 |
rm -r directory_name | 递归地删除一个目录 |
rm -rf directory_name | 强制并递归地删除一个目录 |
cp file1 file2 | 将file1的内容复制到file2 |
cp -r dir1 dir2 | 递归地将dir1复制到dir2。如果dir2不存在,则创建它 |
mv file1 file2 | 将file1重命名为file2 |
ln -s /path/to/file_name link_name | 创建到file_name的软链接 |
touch file_name | 创建一个新文件 |
cat > file_name | 从键盘创建一个文件 |
more file_name | 输出文件的内容 |
head file_name | 显示文件的前10行 |
tail file_name | 显示文件的最后10行 |
gpg -c file_name | 加密一个文件 |
gpg file_name.gpg | 解密文件 |
wc | 打印文件中的字节、单词和行数 |
xargs | 从标准输入执行命令 |
:--- | :--- |
---|---|
ps | 显示当前活动的进程 |
ps aux | grep 'telnet' | 搜索进程'telnet'的id |
pmap | 显示进程的内存映射 |
top | 显示所有正在运行的进程 |
kill pid | 使用给定的pid终止进程 |
killall proc | 杀死/终止所有名为proc的进程 |
pkill process-name | 向具有其名称的进程发送信号 |
lsof | 列出进程打开的文件 # |
renice 19 PID | 使进程以非常低的优先级运行 |
pgrep firefox | 查找Firefox进程ID |
pstree | 在树模型中可视化过程 |
:--- | :--- |
---|---|
rpm -i pkg_name.rpm | 安装 rpm 包 |
rpm -e pkg_name | 删除 rpm 包 |
dnf install pkg_name | 使用 dnf 工具安装软件包 |
:--- | :--- |
---|---|
chmod octal filename | 将文件权限更改为八进制 |
chmod 777 /data/test.c | 将rwx权限设置为owner、group和everyone(其他可以访问服务器的人) |
chmod 755 /data/test.c | 将rwx设置为所有者,将r_x设置为组和所有人 |
chmod 766 /data/test.c | 为所有者设置rwx,为组和每个人设置rw |
chown owner user-file | 更改文件的所有权 |
chown owner-user:owner-group file_name | 更改文件的所有者和组所有者 |
chown owner-user:owner-group directory | 更改目录的所有者和组所有者 |
:--- | :--- |
---|---|
./configure | 检查系统,以获得构建程序所需的软件。它将构建包含有效构建项目所需的指令的Makefile |
make | |
make install | 编译后,该命令将二进制文件安装在默认/修改的路径中 |
:--- | :--- |
---|---|
tar -cf home.tar home<:code> | 创建名为"home"的存档文件。tar文件’home' |
tar -xf files.tar | 解压档案文件"files.tar" |
tar -zcvf home.tar.gz source-folder | 从源文件夹创建压缩的tar存档文件 |
gzip file | 压缩扩展名为.gz的文件 |
zip -r compressed.zip folder/ | 递归压缩目录folder 为压缩文件compressed.zip |
unzip compressed.zip -d folder/ | 在目录folder 下解压文件 |
unzip -v compressed.zip | 查看但不解压文件 |
:--- | :--- |
---|---|
grep ‘pattern’ files | 在文件中搜索给定的模式 |
grep -r pattern dir | Search recursively for a pattern in a given directory |
locate file | 查找文件的所有实例 |
find /home/ -name "index" | 在/home文件夹中查找以’index’开头的文件名 |
find /home -size +10000k | 在主文件夹中查找大于10000k的文件 |
:--- | :--- |
---|---|
ip addr show | 显示IP地址和所有网络接口 |
ip address add 192.168.0.1/24 dev eth0 | 将IP地址192.168.0.1分配给接口eth0 |
ifconfig | 显示所有网络接口的IP地址 |
ping host | ping命令发送ICMP回送请求以建立到服务器/PC的连接 |
whois domain | 检索有关域名的更多信息 |
dig domain | 检索关于域的DNS信息 |
dig -x host | 对域执行反向查找 |
host google.com | 执行域名的IP查找 |
hostname -i | 显示本地IP地址 |
wget file_name | 从在线资源下载文件 |
netstat -pnltu | 显示所有活动监听端口 |
:--- | :--- |
---|---|
scp file1.txt server2/tmp | 安全地将file1.txt复制到/tmp目录中的server2 |
rsync -a /home/apps /backup/ | 将/home/apps目录中的内容与/backup目录进行同步 |
:--- | :--- |
---|---|
df -h | 显示安装系统上的空闲空间 |
df -i | 显示文件系统上的空闲inode |
fdisk -l | 显示磁盘分区、大小和类型 |
du -sh | 以人类可读的格式显示当前目录中的磁盘使用情况 |
findmnt | 显示所有文件系统的目标挂载点 |
mount device-path mount-point | 挂载设备 |
:--- | :--- |
---|---|
cd .. | 在目录树结构中向上移动一层 |
cd | 将目录更改为$HOME目录 |
cd /test | 将目录更改为/test目录 |
:--- | :--- |
---|---|
0 | 标准输入 |
1 | 标准输出 |
2 | 错误输出 |
/dev/null | Linux的空设备文件,俗称“黑洞” |
:--- | :--- |
---|---|
> | 覆盖运算符 |
>> | 追加运算符 |
>& | 重定向合并运算符 |
command > filename | 标准输出覆盖写入新文件 |
command 1> filename | 标准输出覆盖写入新文件(同上) |
command 2> filename | 标准错误覆盖写入新文件 |
command >> filename | 标准输出追加到新文件 |
command 1>> filename | 标准输出追加到新文件(同上) |
command 2>> filename | 标准错误追加到新文件 |
2>&1 | 标准错误重定向到标准输出 |
1>&2 | 标准输出重定向到标准错误 |
:--- | :--- |
---|---|
command & | 使用后台进程模式执行 command |
Ctrl+Z | 将当前进程放到后台(但程序是Stopped状态) |
jobs | 查看任务(状态、ID等) |
fg n | 将jobID为n的任务切到前台运行 |
bg n | 将jobID为n的任务切到后台运行 |
:--- | :--- |
---|---|
nohup command & | 后台执行 command,标准输出到 nohup.out |
nohup command > log_file & | 后台执行 command,标准输出到 log_file |
nohup command > log_file 2>&1 & | 后台执行 command,标准输出和错误输出到 log_file |
nohup command > log_file 2>err_log & | 后台执行 command,标准输出到 log_file,错误输出到 err_log |
ps/kill | 查看进程/结束进程 |
:--- | :--- |
---|---|
screen -S my_session | 创建一个名为 my_session 的会话 |
screen -ls | 列出当前所有的 session |
screen -r my_session | 重新连接 my_session 这个会话 |
screen -d my_session | 脱离 my_session 这个会话 |
Ctrl+a+d | 在 screen 中,脱离当前会话 |
exit | 在 screen 中,退出并删除当前 screen |
-X -S my_session quit | 删除 my_session 这个会话 |
screen -wipe | 删除所有已经失效的会话 |
:--- | :--- |
---|---|
Tab | 自动补全 |
Ctrl +A | 移动光标到命令行首 |
Ctrl +E | 移动光标到命令行尾 |
Ctrl +Left | 光标左移一个单词 |
Ctrl +Right | 光标右移一个单词 |
Ctrl +K | 删除光标之后所有字符 |
Ctrl +U | 清空当前键入的命令 |
Ctrl +W | 删除光标前的单词 |
Ctrl +Y | 粘贴 Ctrl + W 或 Ctrl + K 删除的内容 |
Ctrl +D | 删除当前光标所在字符 (在没有字符时会关闭终端) |
Ctrl +B (Left) | 光标左移(后退) |
Ctrl +F (Right) | 光标右移(前进) |
Ctrl +H (Backspace) | 删除光标的前一个字符 |
:--- | :--- |
---|---|
Ctrl +L | 清屏 |
Ctrl +C | 中断正在执行的程序 |
Ctrl +R | 按字符串寻找历史命令 |
Ctrl +Z | 将当前进程放到后台(但程序是Stopped状态) |
Shift +Insert | 粘贴 |
Ctrl +PageUp | 屏幕输出向上翻页 |
Ctrl +PageDown | 屏幕输出向下翻页 |
Ctrl +P (Up) | 上一条命令 |
Ctrl +N (Down) | 下一条命令 |
:--- | :--- |
---|---|
du -h / | sort -rh | head -20 | 最大20个文件 |
grep -Ev '^\s*($|#|;)' example.conf | 查看去掉注释和空行 |
echo <passwd> | passwd root --stdin | 单行改密码 |
find /data/app/tmp -mtime +30 -name "*.flv" -exec rm -Rf {} \; | 删除30天前文件 |
for file in $(ls); do sed -i 's/nmg/sz/g' "$file"; done | 当前目录修改字符串 |
ssh -NfR remote_port:localhost:local_port user@remote_server | ssh代理 |
find . -wholename "*.sh" -exec dos2unix {} \; | 修复脚本格式错误 |