Linux基础命令讲解

# wget命令用于在终端中下载网络文件,格式为:“wget [参数] 下载地址”。

参数 作用
-b 后台下载模式。
-O 下载到指定目录。
-t 最大尝试次数。
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等。

-r 递归下载



# ps命令用于查看系统中的进程状态,格式为:“ps [参数]”,

参数 作用
-a 显示所有的进程(包括其他用户的)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程

Linux系统中时刻运行着许许多多的进程,如果能够合理的管理它们,绝对有益于对系统的性能优化,Linux系统中进程最常见的5种不同的状态是运行、中断、不可中断、僵死与停止,它们的含义分别是:

R(运行):正在运行或在运行队列中等待。

S(中断):休眠中, 在等待某个条件的形成或接收到信号。

D(不可中断):收到信号不唤醒和不可运行, 进程必须等待直到有中断发生。

Z:(僵死):进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。

T:(停止):进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行。

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程的所有者 进程ID号 运算器占用率 内存占用率 虚拟内存使用量(单位是KB) 占用的固定内存量(单位是KB) 所在终端 进程状态 被启动的时间 实际使用CPU的时间 命令名称与参数
root 1 0.0 0.4 53684 7628 ? Ss 07:22 0:02 /usr/lib/systemd/systemd
root 2 0.0 0.0 0 0 ? S 07:22 0:00 [kthreadd]


# top命令前面的五行为系统整体的统计信息,下面为同学们逐行的讲解下:

Linux基础命令讲解_第1张图片
第1行:系统时间,运行时间,登录终端数,系统负载(分别为1分钟、5分钟、15分钟的平均值,数值越小意味着负载越低)。


第2行:进程总数,运行中的,睡眠中的,停止的,僵死的。


第3行:用户占用资源,系统内核占用资源,改变过优先级的进程,空闲的资源,等待输入输出的时间。


此行数据均为CPU数据并以百分比格式显示,例如"99.2 id"意味着有99.2%的CPU处理器资源正在空闲中。


第4行:物理内存总量,使用量,空闲量,作为内核缓存的内存量。


第5行:虚拟内存总量,使用量,空闲量,已被提前加载的内存数据。



# pidof命令用于查询某个指定服务进程的PID号码值,格式为:“pidof [参数] [服务名称]”。

PID值是区别每个进程的唯一号码,每次在计算机上运行相同的服务程序都很少会获得同样值的PID号码,例如查询下本机sshd服务程序的PID进程号码值:
[root@linuxprobe ~]# pidof sshd
2156



# killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数] [进程名称]”。

复杂软件的服务程序通常都会有数个进程协同为用户提供服务,如果逐个去结束PID号码又实在太麻烦,因此便可以使用killall命令来批量结束某个服务程序带有的全部进程。例如结束掉网络服务的全部进程,下面以httpd服务程序为例,默认您的RHEL7系统未安装它,当前同学们只需看操作过程和结果即可:

[root@linuxprobe ~]# pidof httpd
13581 13580 13579 13578 13577 13576
[root@linuxprobe ~]# killall httpd
[root@linuxprobe ~]# pidof httpd
[root@linuxprobe ~]# 



# uptime命令用于查看系统的负载信息,格式为:“uptime”。

这个命令真的很棒,它可以为您显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息数据。平均负载值指的是最近1分钟、5分钟、15分钟的系统压力情况(下面加粗的信息部分),负载值越低越好,尽量不要长期超过1。另外您还可以结合搭配用"watch -n 1 uptime"命令来每秒刷新一次来获得当前的系统负载情况。
以下显示输入uptime的信息:

04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20
  1. 当前时间 04:03:58
  2. 系统已运行的时间 10 days, 13:19
  3. 当前在线用户 1 user
  4. 平均负载:0.54, 0.40, 0.20,最近1分钟、5分钟、15分钟系统的负载


# last命令用于查看所有系统的登入记录,格式为:"last [参数]"。

使用last命令可以看到本机的登录记录,但由于这些信息都是被以日志文件的形式保存在系统中的数据内容,骇客们很轻易的便可对内容进行篡改,所以千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!

[root@linuxprobe ~]# last
root pts/0 :0 Mon Aug 24 17:52 still logged in
root :0 :0 Mon Aug 24 17:52 still logged in
(unknown :0 :0 Mon Aug 24 17:50 - 17:52 (00:02)
reboot system boot 3.10.0-123.el7.x Tue Aug 25 01:49 - 18:17 (-7:-32)
root pts/0 :0 Mon Aug 24 15:40 - 08:54 (7+17:14)
root pts/0 :0 Fri Jul 10 10:49 - 15:37 (45+04:47)



# tr命令用于替换文本文件中的字符,格式为:“tr [原始字符] [目标字符]”

例如试试把某个文本内容完整替换成大写英文吧:

[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]



wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。

每当我讲课提到这个命令的时候,总有同学会联想到一种公共设施,哈哈,但其实两者是毫无关系的。Linux系统中的wc命令用于统计文本的行数、字数、字节数等文本内容的命令,如果为了方便自己更快去记忆,其实也可以联想到上厕所时真的好无聊,无聊到竟然数完了整张报纸上有多少行字。

参数 作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数

# cut命令用于按“列”来提取文本字符,格式为:“cut [参数] 文本”。

如何准确的提取出最想要的数据,这也应该是咱们学习研究的方向之一,按基于“行”的方式来提取是比较简单的,只需要设置好要搜索的关键词即可,但是按列搜索的话不仅要使用“-f”参数来设置需要看的列数,还必须使用“-d”参数来设置间隔符号。因为passwd是用于保存用户信息数据的文件且每一项值都是通过冒号来间隔的,因此可以来尝试下提取出passwd文件中的用户名信息吧,即提取以:(冒号)为间隔符号的第一列内容:

[root@linuxprobe ~]# head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@linuxprobe ~]# cut -d: -f1 /etc/passwd
root
bin
daemon
adm


# diff命令用于比较多个文本文件的差异,格式为:"diff [参数] 文件"。

咱们不仅可以使用“--brief”参数来仅仅确认两个文件是否不同,还可以使用“-c”参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。例如先查看下两个文件的内容,然后进行比较:

仅仅显示比较后的结果,判断文件是否相同:

[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt
Files diff_A.txt and diff_B.txt differ

使用详细的上下文输出格式来描述文件内容具体的不同:

[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt
*** diff_A.txt 2017-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2017-08-30 18:08:52.203860389 +0800


# touch命令用于创建空白文件与设置文件的各种时间,格式为:“touch [选项] [文件]”。

这个touch命令可真的是特别好用,它能够创建出空白的文本文件,但这实在太简单不需要去讲,例如“touch linuxprobe”这样就可以创建出一个空白的名为linuxprobe的文本文件,而有难度的操作主要是用于设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)。

咱们可以在修改一个文件前先查看下文件的修改时间,然后再通过touch命令把修改后的文件时间设置伪装成自己没有动过的一样,很多黑客就会这么做呢:

参数 作用
-a 仅修改“访问时间”(atime)
-m 仅修改“更改时间”(mtime)
-d 同时修改atime与mtime

# mkdir命令用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。

在Linux系统中文件夹是最常见的文件类型之一,除了能创建单个目录外,还可以使用“-p”参数来递归创建出具有嵌套叠层关系的文件目录。

[root@localhost]# mkdir -p a/b/c/d/e


# cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。

想必同学们一定对文件复制操作不是很陌生吧,在Linux系统中的复制操作其实具体还分为3种情况,第一种情况是如果目标对象是个目录,则会把源文件复制到该目录中.,第二种情况是如果目标对象也是个普通文件,则会询问是否要覆盖它.最后是第三种的情况了,如果目标文件是不存在的,则会是正常的复制操作啦。

参数 作用
-p 保留原始文件的属性
-d 若对象为"链接文件",则保留该"链接文件"的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p,d,r为上述的参数)


# tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。

而Linux系统中常见的格式比较多,主要使用的是.tar或.tar.gz或.tar.bz2格式,同学们不用担心格式好多而记不住,其实这些大部分都是由tar命令来完成的。首先“-c”参数是用于创建压缩文件的,“-x”参数是用于解压文件的,因此这两个不能同时放一起使用,其次“-z”参数是指定使用Gzip格式来压缩解压文件,“-j”参数是指定使用bzip2格式来压缩解压文件。解压时候则是根据文件的后缀来决定是何种格式参数,而有些打包操作要数个小时,屏幕没有输出的话您一定会怀疑电脑死机了,也不好判断打包的进度情况,因此非常推荐使用“-v”参数来不断显示压缩或解压的过程给用户,“-C”参数用于指定要解压到的哪个指定的目录,而“-f”参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。我会一般使用“tar -czvf 压缩包名称.tar.gz 要打包的目录”命令来把指定的文件来打包压缩,解压的话则是“tar -xzvf 压缩包名称.tar.gz”命令


你可能感兴趣的:(命令相关)