Linux命令
常用的系统工作命令
echo命令
用于在终端输出字符串或变量提取后的值,格式为“echo[字符串|$变量]”。
date命令
格式为“date[选项][+指定的格式]”。
%Y #年
%m #月
%d #天
%H #小时
%M #分钟
%S #秒
%j #今年中的第几天
poweroff
poweroff命令与shutdown等命令作用相同。
wget
用于在终端中下载网络文件,格式为“wget[参数]下载地址”。
-P #下载到指定目录
-p #下载页面所有资源,包括图片、视频等
-b #后台下载模式
-t #最大尝试次数
-c #断点续传
ps
用于查看系统中的进程状态,格式为“ps[参数]”。
-a #显示所有进程(包括其他用户的进程)
-u #用户以及其它详细信息
-x #显示没有控制终端的进程
5种常见的进程状态:
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中端):不响应系统异步信号,即便用kill命令也无法中断。
Z(僵死):进程已经终止,但描述符依然存在,依然占用系统资源。
T(停止):收到停止信号后停止运行。
top
用于动态地监视进程活动与系统负载等信息,类似Windows中的任务管理器。
第一行:系统时间、运行时间、登录终端数、系统负载(三个数值分别表示1、5、15分钟内的平均值)
第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比。
第四行:物理内存总量、内存空闲量、内存使用量、作为内存缓存的内存量。
第五行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
pidof
查询某个指定服务进程的PID值。
kill & killall
kill:终止某个指定PID的服务进程。
killall:终止某个指定名称的服务做对应的全部进程。
在命令后加上一个&符号,命令将进入后天执行。
系统状态检测命令
uname
用于查看系统内核和系统版本等信息,通常使用uname -a。
uptime
用于查看系统的负载信息,显示系统时间、已运行时间、启用终端数以及平均负载等信息。
平均负载指的是最近1、5、15分钟内的压力情况;
负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
free
显示当前系统中内存使用量信息,常用参数为“free -h”。
who
查看登入主机的用户终端信息。
last
查看所有本机的登录记录。
history
显示执行过的命令,默认能显示出当前用户执行过的最近1000条命令,自定义记录数量可修改/etc/profile中的HISTSIZE的值,记录保存在家目录(~)中的“.bash_history”文件中。
清空当前用户的历史记录:
history -c
sosreport
手机系统配置及架构信息并输出诊断文档。
工作目录切换命令
pwd
显示用户当先所处的工作目录。
cd
cd - #返回上一次所处的目录
cd .. #进入上级目录
cd ~username #切换到其他用户的家目录
ls
ls -l #查看文件的属性、大小等详细信息
ls -ld #查看目录属性信息
文本文件编辑命令
cat
cat -n #显示行号
more
查看内容较多的纯文本文件,可使用空格或回车键翻页。
head
查看纯文本文档的前N行,例如:
head -n 6 .bash_profile #查看前6行
tail
查看纯文本文档的后N行或持续刷新内容。例如:
tail -n 6 .bash_profile
还有一种情况是持续刷新一个文件的内容,比如日志文件:
tail -f /var/log/message
tr
用于替换文本文件中的字符。
cat anaconda-ks.cfg | tr [a-z] [A-Z] #将文件中的小写替换为大写。
wc
统计指定文本的行数、字数、字节数。
-l #只显示行数
-w #只显示单词数
-c #只显示字节数
stat
查看文件的具体存储信息和时间等信息。
cut
按列提取文本字符,用-f参数设置需要看的列数,用-d参数设置间隔符号。例如:
[root@localhost etc]# head -n 3 passwd #查看前三行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost etc]# cut -d: -f1 passwd #查看以“:”为间隔符的第一列内容
root
bin
daemon
adm
......
diff
用于比较多个文件的差异。
diff diff a1.txt a2.txt #找出文件内容中的具体不同
diff --brief a1.txt a2.txt #直接输出结果判断结果
diff -c a1.txt a2.txt #描述文件具体的不同
文件目录管理命令
touch
用于创建空白文件或设置文件的时间。
-a #仅修改“读取时间”(atime)
-m #仅修改“修改时间”(mtime)
-d #同时修改atime和mtime
mkdir
创建空白目录。
mkdir还可以结合-p参数递归创建出具有嵌套关系的文件目录:
mkdir -p a/b/c/d/e
cp
用于复制文件或目录,格式为“cp[选项] 源文件 目标文件”。
mv
用于剪切文件或将文件重命名。
剪切操作不同于复制操作,因为它默认会把源文件删除掉,只保留剪切后的文件。
rm
删除文件或目录。
-f #强制删除
-r #删除目录
dd
用于按照指定大小和个数的数据块来复制文件或转换文件。
Linux系统中有一个名为/dev/zero的设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以用作dd的输入文件,用来生成一个指定大小的文件。
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数
[root@localhost Desktop]# dd if=/dev/zero of=56file count=1 bs=56M
1+0 records in
1+0 records out
58720256 bytes (59 MB) copied, 9.14974 s, 6.4 MB/s
file
查看文件的类型,格式为“file 文件名”。
打包压缩与搜索命令
tar
对文件进行压缩或解压。
-c 创建压缩文件
-x 解压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件夹(必须放在最后一位)
-p 保留原始的权限和属性
-P 使用绝对路径压缩
-C 指定解压到的目录
例如:
tar -czvf 压缩包名.tar.gz 要打包的目录
tar -xzvf 压缩包名.tar.gz
grep
用于在文本中执行关键词搜索,并显示匹配的结果。
-b 将可执行文件当作文本文件来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有关键字的行
find
按照指定条件来查找文件,格式为“find[查找路径] 寻找条件 操作”。
-name 匹配名称
-perm 匹配权限(mode为完全匹配,-mode为包含即可)
-user 匹配所有者
-nouser 匹配无所有者的文件
-group 匹配所有组
-nogroup匹配无所有组的文件
-mtime -n +n 匹配修改内容的时间(-n指n天以内,+n指n天以前)
-atime -n +n 匹配访问文件的时间(-n指n天以内,+n指n天以前)
-ctime -n +n 匹配修改文件权限的时间(-n指n天以内,+n指n天以前)
-newer f1 !f2 匹配比文件f1新但比f2旧的文件
--type 匹配文件类型
-size 匹配文件大小
-prune 忽略某个目录
VIM
三种模式
输入模式 命令模式 末行模式(冒号模式)
需要说明一点的是输入模式的三种进入方式(a,i,o,s):
a #在光标后面一位输入
i #在光标当前位置输入
o #在光标的下面创建空行并输入
s #删除光标位置字符并输入
保存退出
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
:q 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
常用命令
dd 剪切光标所在整行
3dd 剪切从光标开始的三行
yy 复制光标所在整行
3yy 复制从光标开始的三行
u 撤销上一步操作
uu 撤销所有更改
p 将之前剪切或复制的内容粘贴到光标之后
0 跳转到行首
$ 跳转到行末
/ 查找字符串