新手必须掌握的Linux命令

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中的任务管理器。
top.png
第一行:系统时间、运行时间、登录终端数、系统负载(三个数值分别表示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

查看内容较多的纯文本文件,可使用空格或回车键翻页。

查看纯文本文档的前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   跳转到行首
$   跳转到行末
/   查找字符串