常用的 Linux 命令
这是一份常用的 Linux 命令列表。其中大部分是基础命令,可供开发人员参考。
文件和目录
- ls => 列出所有文件
- ls -a => 列出所有文件以及隐藏文件
- ls -R => 递归列出所有文件和文件夹
-
ls -l => 以长格式列出列表(显示更多信息)
-
rm {filename} => 删除文件
-
mv {文件名} {目录路径} => 移动文件
-
mv {srcFileName} {destFileName} => 重命名文件
-
cp {srcFileName} {destFileName} => 复制文件
-
cp -R {srcDir} {destDir} => 复制目录
-
cat {filename} => 读取文件内容
-
cat > {filename} => 写入文件
-
touch {filename} => 创建一个文件,touch 主要用于更改文件时间戳。请参考这里。
-
mkdir {目录名} => 创建目录
-
rmdir {目录名} => 删除目录
-
rm -rf {目录名} => 递归删除目录及其文件
-
mv {dirname1} {路径或目录名} => 移动或重命名目录
-
历史记录 => 列出当前会话中使用的所有命令
-
清除 => 清除终端屏幕
-
pwd => 显示当前工作目录的路径。
文件权限
文件权限将按顺序分配给用户、用户组和其他用户。权限名称可以是数字或字母。
r - 读取,w - 写入,x - 执行,
u - 用户,g - 组,o - 其他,a - 全部
0 - 无权限
1 - 执行
2 - 写入
3 - 执行+写入
4 - 读取
5 - 读取+执行
6 - 读取+写入
7 - 全部权限
- chmod {number} {filename} => 授予用户、组和其他用户权限。
例如:chmod 777 ex.txt=> 授予所有用户、组和其他用户所有权限。
“+” - 授予权限;
“-” - 移除权限;
“=” - 赋予给定权限。
例如:chmod u=rw ex.txt=> 授予用户读/写权限
例如:chmod a= ex.txt=> 移除所有用户的所有权限。
- chgrp {组名} {文件名} => 更改文件的组
- chown {user} {filename} => 更改文件的所有者
输入/输出方向
-
'>' 写入(stdout)
例如:ls -al > {filename} => 将“ls -al”的输出写入文件。如果文件已存在,则会被覆盖。 -
'>>' 追加(标准输出)
例如:echo "hi" >> {filename}=> 追加到文件 -
'<' 输入
文件描述符:0 - 标准输入,1 - 标准输出,2 - 标准错误
重定向错误:
这样可以将错误重定向到日志文件,而不是让终端变得杂乱无章。
例如:cat ex.txt 2> error.log=> 尝试读取文件,如果出现任何错误,则会将错误信息写入 error.log 文件。
这里,“2”是 stderr 的文件描述符。
管道作业
页,差不多吧
通过管道将大文本传递给 pg 的 more 或 less 命令,在终端中以可滚动块的形式显示大文本。
例如:cat large_file.txt | less=> 提供一个可滚动的查看器。
grep
通过管道将输出传递给 grep,在输出中搜索字符串。
例如:ls | grep key=> 显示字符串为“key”的文件。
旗帜:
- -i => 不区分大小写
- -c => 仅显示计数
- -n => 显示匹配的行和数字
- -v => 显示不匹配的输出
例如:ls | grep -cv key=> 显示未匹配的输出计数
- grep 也支持正则表达式。请参考这里。
种类
对内容进行排序
例如:ls | sort=> 按字母顺序显示
旗帜:
- -r => 反向
- -n => 数值
- -f => 不区分大小写
例如:ls -l | sort -nk2=> 显示按第二列数值排序的内容。(本例中为硬链接数量)
变量
- VARIABLE=value => 设置会话中的变量。
- $VARIABLE => 获取变量的值。
- unset VARIABLE => 取消设置变量。
网络命令
- ping {ip} => 检查连接
- dig {hostname} => 执行 DNS 查询
- ssh -i {key} {username@ip} => 安全地连接到远程计算机。key 是私钥文件。
- scp -i {key.pem} {source} {dest} => 复制文件。远程位置应为
host:file. - lsof -i {协议:端口} => 列出监听指定端口的所有进程。
例如:lsof -i tcp:3000列出所有监听端口 3000 的进程
流程管理
- top => 列出所有正在运行的进程
- kill {pid} => 终止具有给定进程 ID 的进程
安装装置
- lsblk => 列出所有块设备
- mount {设备 ID} {目录} => 将设备挂载到目录
例如:mount /dev/sda4 /ex/mnt
旗帜:
- -a => 挂载 /etc/fstab 中的所有设备
- -l => 列出所有已挂载的设备
-
-t => 文件系统类型(例如:ext4)
-
umount {设备 ID} => 卸载设备
手动的
- man {命令名称} => 显示命令的用法
封面图片由Sai Kiran Anagani提供
文章来源:https://dev.to/laxmanvijay/useful-linux-commands-3g9m