常用终端命令
Linux终端命令
explainshell,将自己不懂的命令行语句输入进去查询,即可查到对应释义
系统指令
指令 | 解释 |
---|---|
whoami | 查询系统当前的用户名 |
uname -a | 查询主机名、系统内核/CPU等信息 |
uptime | 查询系统运行时间,用户数、负载 |
env | 查询系统的环境变量 |
iostat | 查询IO速率/CPU使用情况 |
df -h | 查询磁盘使用信息 |
du -sh | 查询指定目录大小 |
last | 查询用户登录记录 |
导航移动指令
绝对路径
大家都知道,在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径,
例如只要看到这个路径:c:/website/img/photo.jpg
我们就知道photo.jpg文件是在c盘的website目录下的img子目录中。
这样完整的描述文件位置的路径就是绝对路径。
我们不需要知道其他任何信息就可以根据绝对路径判断出文件的位置。(也可以认为以/
开头的都为绝对路径)
相对路径
所谓相对路径,顾名思义就是自己相对与目标位置。
不论将这些文件放到哪里,只要他们的相对关系没有变,就不会出错。
另外我们使用../
来表示上一级目录,../../
表示上上级的目录,以此类推。(也可认为不是以/
开头的都是相对路径)
特殊符号 | 作 用 |
---|---|
~ | 代表当前登录用户的主目录 |
~用户名 | 表示切换至指定用户的主目录 |
- | 代表上次所在目录 |
. | 代表当前目录 |
.. | 代表上级目录 |
指令 | 解释 |
---|---|
cd <dir> 或者 cd ~ 或者 cd .. 或者 cd - 或者 cd / | 移动到指定目录 / 移动到当前登录用户的主目录 / 移动到上一级目录 / 返回上一步操作的目录/ 移动到根目录 |
pwd | “print working directory” 打印当前目录的绝对路径 |
clear | 清除终端打印信息 |
ls | 打印当前目录下的文件和目录,加上-a 查看隐藏文件,/ 代表文件系统的根目录,-S 从大到小排序,-r 反向排序,-l 更详细信息 |
rm -rf | 删除文件/目录,-r是递归删除,-f是强行删除 |
cp <source> <dest> | 复制文件,. 代表当前目录,-r是递归复制 |
mv <original> <new> | 移动文件,. 代表当前目录,-r是递归复制,-a复制目录 |
wc | “word count”,-l数行数,-w数字数 |
echo "some string" | 打印输入的字符串 |
ls | wc -l | | 将前一命令的输出转为后一命令的输入 左边的作用是”数当前目录下的文件/目录数” |
ls / > directory.txt | > 将命令输出导出为文件 |
\ | 输入长命令时换行 |
mkdir 目录名 | 建立新目录(也可理解为创建文件夹) |
文件相关
指令 | 解释 |
---|---|
ln -s | 创建软连接(快捷方式,源文件被删除,soft link就没用了) |
ln | 创建硬连接(独立文件,源文件被删除,hard link仍然存在;源文件修改,hard link同步修改) |
tar -xzvf files.tar.gz tar -xjvf files.tar.bz2tar -czvf | 解压文件gzip 解压文件bzip2压缩文件gzip |
cat <file> | 查看文件内容,-n标记行数 |
more | 查看长文件内容 |
head -x | 查看文件前x行 |
tail -x | 查看文件后x行 |
grep | 文件中查找关键词,并显示;keyword部分可以是regex |
编辑器
指令 | 解释 |
---|---|
vim | 打开vim编辑器 |
vim <file> | 用vim打开文件;如果不存在,就新建 |
:q | 退出 |
i | 进入输入模式 (insert mode) |
<esc> | 返回默认模式,即命令模式 (command mode) |
:w | 保存文件 |
:wq or :x | 保存并退出 |
:q! | 退出不保存 |
权限与配置
指令 | 解释 |
---|---|
su - | 获取超级用户权限 (prompt changes from $ to #) |
sudo <command> | 以超级用户的权限执行命令(权限不够的时候使用) |
env, printenv | 打印系统环境变量 |
export ENV_NAME=”new” echo $ENV_NAME | 创建新的环境变量 确认变量的更新 |
history | 查询终端命令的历史记录 |
ls -l | 查看文件的所有者,组和其他权限的信息 |
chmod xxx | 修改文件的访问权限;三个数字代表所有者,用户组,其他;每个数字都是3个bit的二进制;read(4), write(2), execute(1) |
echo $PATH | 终端命令存在的目录存在这个环境变量下 |
which | 查看终端命令的执行路径 |
进程相关
指令 | 解释 |
---|---|
ps | “Process Status” 打印当前终端的进程 |
ps aux (for OSX) | -a 显示所有用户的进程,-u 显示进程的所有者/用户,-x 显示和当前终端无关的进程 |
ps aux | grep firefox | 查询和firefox相关的进程 |
kill <pid> | 根据PID杀死进程,-9 硬删除 |
kill -l | 查看所有的Linux信号名 |
top | 显示所有活跃的进程,以及它们的CPU、内存使用情况 |
网络相关
指令 | 解释 |
---|---|
ping <URL> | 查询网络服务的连接情况、传输速度 |
host | 查询网络服务的IP地址 |
dig | 查询DNS记录 |
traceroute | 追踪从主机到host的网络传输路径 |
ssh | 远程登录服务器 |
netstat | 查看网络端口,TCP/UDP状态 |
ifconfig | 网络接口属性 |
route | 查看路由表 |
nslookup | 查询DNS记录相关的IP地址 |
vim
是什么?
vim是Linux环境下一款功能强大、高度可定制的文本编辑工具,类似于Windows下面的source insight、sublime、notepad。
VI是visual interface的缩写,即可视化接口。
vim 即 vi IMproved,在 vi 的基础上做了很多改进,如:增加了多级撤销、多窗口操作、崩溃后也可以恢复、增加了稳定性、关键字自动补全、上下文自动补全等功能。
工作模式
vim一般有6种工作模式。
- 普通模式:使用
vim
打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作。 - 插入模式:也可以叫做编辑模式,在普通模式下敲击
i
、a 或 o 就进入插入模式,允许用户通过键盘输入、编辑。 - 命令行模式:在普通模式下,先输入冒号
:
,接着输入命令,就可以通过配置命令对vim进行配置了,如改变颜色主题、显示行号等,这些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打开默认配置执行。 - 可视化模式:在普通模式下敲击前盘上的
v
键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作。 - 替换模式:如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击
R
键就可以直接替换。 - EX模式:类似于命令行模式,可以一次运行多个命令
vim的各种工作模式可以通过不同的键进行切换,用户统一使用ESC
键返回到普通模式。
命令
光标移动命令
1 | 单个字符移动: |
滚屏与跳转
1 | 半屏滚动 ctrl+u/ctrl+d |
文本插入操作
1 | i 在当前光标的前面插入字符 |
文本删除操作
1 | 字符删除 |
文本复制、剪切与粘贴
1 | y 复制,p 粘贴 |
文本的修改与替换
1 | cw 删除从光标处到单词结尾的文本并进入到插入模式 |
文本的查找与替换
1 | /string 正向查找 |
撤销修改、重做与保存
1 | u 撤销上一步的操作。 |
编辑多个文件
文件和缓冲区的区别
文件是保存在磁盘上的,而打开的文件的文件是在内存中,在内存中有一个缓冲区,用来存放打开的文件。
vim每次打开文件时都会创建一个缓冲区,vim支持打开多个文件
1 | :buffers 查看缓冲区列表==ls |
标签页与折叠栏
1 | 标签页的新建 tabedit file/tab split |
多窗口操作
1 | 分割窗口 |
附:vim键盘命令图
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Leslie Waong!
评论