VPS必备知识!Linux操作系统常用指令,附解释与实例!(仅选取个人常用命令)

VPS必备知识!Linux操作系统常用指令,附解释与实例!(仅选取个人常用命令)
千狐更多命令请参阅Linux 常用命令学习
Linux常用命令
1️⃣ls 命令
就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限) 查看目录信息等等。
- ls -a 列出目录所有文件,包含以.开始的隐藏文件
- ls -A 列出除.及..的其它文件
- ls -r 反序排列
- ls -t 以文件修改时间排序
- ls -S 以文件大小排序
- ls -h 以易读大小显示
- ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls -lhrt
按易读方式按时间反序排序,并显示文件详细信息
ls -lrS
按大小反序显示文件详细信息
ls -l t*
列出当前目录中所有以”t”开头的目录的详细内容
ls | sed “s:^:
pwd
/:”列出文件绝对路径(不包含隐藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
列出文件绝对路径(包含隐藏文件)
2️⃣cd 命令
- cd [目录名]
说明:切换当前目录至 dirName。
cd /
进入主要目录
cd ~
进入 “home” 目录
cd -
进入上一次工作路径
cd !$
把上个命令的参数作为cd参数使用。
3️⃣pwd 命令
- pwd 命令用于查看当前工作目录路径。
pwd
查看当前路径
pwd -P
查看软链接的实际路径
4️⃣mkdir 命令
- mkdir 命令用于创建文件夹。
可用选项:
- -m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
- -p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。
mkdir t
当前工作目录下创建名为 t的文件夹
mkdir -p /tmp/test/t1/t
在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建
5️⃣rm 命令
- rm [选项] 文件…
删除一个目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
rm -i *.log
删除任何 .log 文件,删除前逐一询问确认
rm -rf test
删除 test 子目录及子目录中所有档案删除,并且不用一一确认
rm -- -f*
删除以 -f 开头的文件
6️⃣rmdir 命令
- 从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。
注意:不能删除非空目录
- rmdir -p parent/child/child11
当 parent 子目录被删除后使它也成为空目录的话,则顺便一并删除
7️⃣mv 命令
- 移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命名该文件)。
- 当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
mv test.log test1.txt
将文件 test.log 重命名为 test1.txt
mv llog1.txt log2.txt log3.txt /test3
将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
mv -i log1.txt log2.txt
将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖
mv * ../
移动当前文件夹下的所有文件到上一级目录
8️⃣cp 命令
将源文件复制至目标文件,或将多个源文件复制至目标目录。
- -i 提示
- -r 复制目录及目录内所有项目
- -a 复制的文件与原文件时间一样
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
cp -ai a.txt test
复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。
cp -s a.txt link_a.txt
为 a.txt 建立一个链接(快捷方式)
9️⃣ps 命令
命令参数:
- -A 显示所有进程
- a 显示所有进程
- -a 显示同一终端下所有进程
- c 显示进程真实名称
- e 显示环境变量
- f 显示进程间的关系
- r 显示当前终端运行的进程
- -aux 显示所有包含其它使用的进程
linux上进程有5种状态:
- 运行(正在运行或在运行队列中等待)
- 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps 工具标识进程的5种状态码:
- D 不可中断 uninterruptible sleep (usually IO)
- R 运行 runnable (on run queue)
- S 中断 sleeping
- T 停止 traced or stopped
- Z 僵死 a defunct (”zombie”) process
ps -ef
显示当前所有进程环境变量及进程间关系
ps -A
显示当前所有进程
ps -aux | grep apache
与grep联用查找某进程
ps aux | grep ‘(cron|syslog)’
找出与 cron 与 syslog 这两个服务有关的 PID 号码
🔟top 命令
常用参数:
- -c 显示完整的进程命令
- -s 保密模式
- -p <进程号> 指定进程显示
- -n <次数>循环显示次数
显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等
打印信息
top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35
Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.9%us, 3.4%sy, 0.0%ni, 90.4%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 32949016k total, 14411180k used, 18537836k free, 169884k buffers
Swap: 32764556k total, 0k used, 32764556k free, 3612636k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28894 root 22 0 1501m 405m 10m S 52.2 1.3 2534:16 java详细说明
前五行是当前系统情况整体的统计信息区
第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:
14:06:23 — 当前系统时间
up 70 days, 16:44 — 系统已经运行了70天16小时44分钟(在这期间系统没有重启过的吆!)
2 users — 当前有2个用户登录系统
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。第二行,Tasks — 任务(进程),具体信息说明如下:
系统现在共有206个进程,其中处于运行中的有1个,205个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。
第三行,cpu状态信息,具体属性说明如下:
5.9%us — 用户空间占用CPU的百分比。
3.4% sy — 内核空间占用CPU的百分比。
0.0% ni — 改变过优先级的进程占用CPU的百分比
90.4% id — 空闲CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中断(Hardware IRQ)占用CPU的百分比
0.2% si — 软中断(Software Interrupts)占用CPU的百分比备注: 在这里CPU的使用比率和windows概念不同,需要理解linux系统用户空间和内核空间的相关知识!
第四行,内存状态,具体信息如下:
32949016k total — 物理内存总量(32GB)
14411180k used — 使用中的内存总量(14GB)
18537836k free — 空闲内存总量(18GB)
169884k buffers — 缓存的内存量 (169M)第五行,swap交换分区信息,具体信息说明如下:
32764556k total — 交换区总量(32GB)
0k used — 使用的交换区总量(0K)
32764556k free — 空闲交换区总量(32GB)
3612636k cached — 缓冲的交换区总量(3.6GB)第六行,空行。
第七行以下:各进程(任务)的状态监控,项目列信息说明如下:
PID — 进程id
USER — 进程所有者
PR — 进程优先级
NI — nice值。负值表示高优先级,正值表示低优先级
VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR — 共享内存大小,单位kb
S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
TIME+ — 进程使用的CPU时间总计,单位1/100秒
COMMAND — 进程名称(命令名/命令行)top 交互命令
h 显示top交互命令帮助信息
c 切换显示命令名称和完整命令行
m 以内存使用率排序
P 根据CPU使用百分比大小进行排序
T 根据时间/累计时间进行排序
W 将当前设置写入~/.toprc文件中
o或者O 改变显示项目的顺序
1️⃣1️⃣kill 命令
常用参数:
- -l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
- -a 当处理当前进程时,不限制命令名和进程号的对应关系
- -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
- -s 指定发送信号
- -u 指定用户
发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用”-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
- kill -9 $(ps -ef | grep pro1)
先使用ps查找进程pro1,然后用kill杀掉
1️⃣2️⃣free 命令
命令参数:
- -b 以Byte显示内存使用情况
- -k 以kb为单位显示内存使用情况
- -m 以mb为单位显示内存使用情况
- -g 以gb为单位显示内存使用情况
- -s<间隔秒数> 持续显示内存
- -t 显示内存使用总合
显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。
显示内存使用情况
free
free -k
free -m以总和的形式显示内存的使用信息
free -t
周期性查询内存使用情况
free -s 10
Linux vi/vim
什么是 vim
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
连 vim 的官方网站 (https://www.vim.org/) 自己也说 vim 是一个程序开发工具而不是文字处理软件。
vim 键盘图
vi/vim 的使用
基本上 vi/vim 共分为三种模式,命令模式(Command Mode)
、输入模式(Insert Mode)
和 命令行模式(Command-Line Mode)
。
命令模式
用户刚刚启动 vi/vim,便进入了命令模式
- i – 切换到输入模式,在光标当前位置开始输入文本。
- x – 删除当前光标所在处的字符。
- : – 切换到底线命令模式,以在最底一行输入命令。
- a – 进入插入模式,在光标下一个位置开始输入文本。
- o:在当前行的下方插入一个新行,并进入插入模式。
- O – 在当前行的上方插入一个新行,并进入插入模式。
- dd – 剪切当前行。
- yy – 复制当前行。
- p(小写) – 粘贴剪贴板内容到光标下方。
- P(大写)– 粘贴剪贴板内容到光标上方。
- u – 撤销上一次操作。
- Ctrl + r – 重做上一次撤销的操作。
- :w – 保存文件。
- :q – 退出 Vim 编辑器。
- :q! – 强制退出Vim 编辑器,不保存修改。
若想要编辑文本,只需要启动 Vim,进入了命令模式,按下 i
切换到输入模式即可。
命令模式只有一些最基本的命令,因此仍要依靠底线命令行模式输入更多命令。
在命令模式下按下 i
就进入了输入模式,使用 Esc
键可以返回到普通模式。
在输入模式中,可以使用以下按键:
- 字符按键以及Shift组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
在命令模式下按下 :
(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有:
- :w 保存文件。
- :q 退出 Vim 编辑器。
- :wq 保存文件并退出 Vim 编辑器。
- :q! 强制退出Vim编辑器,不保存修改。
按 ESC 键可随时退出底线命令模式。