03、新手必须掌握的Linux命令

Ⅰ. 常用系统工作命令

1. echo 命令

   echo命令用于在终端输出字符串货变量提取后的值,格式为"echo [字符串 | $变量]"

 例:把指定字符串"LinxuHat"输出到终端屏幕的命令为:

[root@linuxprobe Desktop]# echo LinuxHat

   该命令会在终端屏幕上显示如下信息:

LinuxHat

   使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上:

[root@linuxprobe Desktop]# echo $SHELL

/bin/bash

2. date 命令

   date命令用于显示及设置系统的时间或日期,格式为"date [选项] [+指定的格式]"

参数

作用

%t

跳格

%H

小时(00..23)

%I

小时(01..12)

%M

分钟(00..59)

%S

秒(00..61)

%j

一年中的第几天 (001..366)

   按照默认格式查看当前系统时间的date命令如下所示:

[root@linuxprobe Desktop]# date

Tue Aug 13 17:36:08 CST 2019

   按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间的date命令如下所示:

[root@linuxprobe Desktop]# date "+%Y-%m-%d %H:%M:%S"

2019-08-13 17:37:57

   将系统的当前时间设置为2019年9月1日9点0分的date命令如下所示:

[root@linuxprobe Desktop]# date -s "20190901 9:00:00"

Sun Sep  1 09:00:00 CST 2019

   再次使用date命令并按照默认的格式查看当前的系统时间,如下所示:

[root@linuxprobe Desktop]# date

Sun Sep  1 09:00:43 CST 2019

   date命令中的参数%j可用来查看今天是当年中的第几天

[root@linuxprobe Desktop]# date "+%j"

244

3. reboot 命令

   reboot命令用于重启系统,其格式为reboot:

   由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:

[root@linuxprobe Desktop]# reboot

4. poweroff 命令

   poweroff命令用于关闭系统,其格式为poweroff

   由于关闭计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:

[root@linuxprobe Desktop]# poweroff

5. wget 命令

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

[root@linuxprobe Desktop]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf

6. ps 命令

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

l  -A 列出所有的行程(包括其他用户的进程)

l  -u 用户以及其他详细信息

l  -x 显示没有控制终端的进程

   进程有5种状态,分别为运行、中断、不可中断、僵死与停止

· R(运行):进程正在运行或在运行队列中等待

· S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态

· D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断

· Z(僵死):进程以及终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放

· T(停止):进程收到停止信号后停止运行

[root@linuxprobe Desktop]# ps -aux

进程状态

 

7. top 命令

   top命令用于动态地监视进程活动与系统负载等信息,其格式为top

   top命令相当于Windows任务管理器

[root@linuxprobe Desktop]# top

top命令的运行界面

 

   · 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)

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

   · 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等

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

   · 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

8. pidof 命令

   pidof命令用于查询某个指定服务进程的PID值,格式为"pidof [参数] [服务名称]"

[root@linuxprobe Desktop]# pidof sshd

1805

9. kill 命令

   kill命令用于终止某个指定PID的服务进程,格式为"kill [参数] [进程PID]"

[root@linuxprobe Desktop]# kill 1805

10. killall 命令

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

[root@linuxprobe Desktop]# pidof httpd

13581 13580 13579 13578 13577 13576

[root@linuxprobe Desktop]# killall httpd

[root@linuxprobe Desktop]# pidof httpd

[root@linuxprobe Desktop]#

Ⅱ. 系统状态监检测命令

1. ifconfig 命令

   ifconfig命令用于获取网卡配置与网络状态等信息,格式为"ifconfig [网络设备] [参数]"

[root@linuxprobe Desktop]# ifconfig

 2. uname 命令

   uname命令用于查看系统内核与系统版本等信息,格式为"uname [-a]"

[root@linuxprobe Desktop]# uname -a

Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

   顺带一提,如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下:

[root@linuxprobe Desktop]# cat /etc/redhat-release

Red Hat Enterprise Linux Server release 7.0 (Maipo)

3. uptime 命令

   uptime命令用于查看系统的负载信息,格式为"uptime"

[root@linuxprobe Desktop]# uptime

 23:51:53 up 49 min,  2 users,  load average: 0.05, 0.15, 0.19

4. free 命令

   free用于显示当前系统中内存的使用量信息,格式为"free [-h]"

[root@linuxprobe Desktop]# free -h

    · total:内存总量

   · used:已用量

   · free:可用量

   · shared:进程共享的内存量

   · buffers:磁盘缓存的内存量

   · cached:缓存的内存量

5. who命令

   who命令用于查看当前登入主机的用户终端信息,格式为"who [参数]"

[root@linuxprobe Desktop]# who

   · 第1列:登录的用户名

   · 第2列:终端设备

   · 第3列:登录到系统的时间

6. last命令

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

[root@linuxprobe Desktop]# last

 

7. history命令

   history命令用于显示历史执行过的命令,格式为"history [-c]"

说明:

① 使用-c参数则会清空所有的命令历史记录

② 可以使用"!编码数字" 的方式来重复执行某一次的命令

[root@linuxprobe Desktop]# history

8. sosreport命令

   sosreport命令用于手机系统配置及架构信息并输出诊断文档,格式为"sosreport"

[root@linuxprobe Desktop]# sosreport

   · quit:此处敲击回车来确认收集信息

   · name:此处敲击回车来确认主机编号

   · for:此处敲击回车来确认主机编号

Ⅲ. 工作目录切换命令

1. pwd命令

   pwd命令用于显示用户当前所处的工作目录,格式为"pwd [选项]"

[root@linuxprobe ~]# pwd

/root

2. cd命令

   cd命令用于切换工作路径,格式为"cd [目录名称]"

例:切换到/etc目录中

[root@linuxprobe ~]# cd /etc

[root@linuxprobe etc]#

例:切换到/bin目录中

[root@linuxprobe etc]# cd /bin

[root@linuxprobe bin]#

例:返回到上一次的目录(即/etc目录)

[root@linuxprobe bin]# cd -

/etc

[root@linuxprobe etc]#

例:快速切换到用户的家目录

[root@linuxprobe etc]# cd ~

[root@linuxprobe ~]#

3. ls命令

   ls命令用于显示目录中的文件信息,格式为"ls [选项] [文件]"

[root@linuxprobe ~]# ls -al

total 52

dr-xr-x---. 17 root root 4096 Aug 13 23:40 .

drwxr-xr-x. 17 root root 4096 Aug 14  2019 ..

-rw-------.  1 root root 1032 Aug 14  2019 anaconda-ks.cfg

-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout

-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile

-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc

drwx------. 10 root root 4096 Aug 13 23:40 .cache

drwx------. 15 root root 4096 Aug 13 23:37 .config

-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc

drwx------.  3 root root   24 Aug 13 17:40 .dbus

drwxr-xr-x.  2 root root    6 Aug 13 23:40 Desktop

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Documents

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Downloads

-rw-------.  1 root root   16 Aug 13 23:37 .esd_auth

drwx------.  3 root root   19 Aug 13 23:40 .gnome2

drwx------.  2 root root    6 Aug 13 23:40 .gnome2_private

-rw-------.  1 root root  314 Aug 13 23:37 .ICEauthority

-rw-r--r--.  1 root root 1083 Aug 13 17:43 initial-setup-ks.cfg

drwx------.  3 root root   18 Aug 13 23:37 .local

drwxr-xr-x.  4 root root   37 Aug 13 23:40 .mozilla

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Music

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Pictures

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Public

-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Templates

drwxr-xr-x.  2 root root    6 Aug 13 23:37 Videos

   若想查看目录属性信息,则需要额外添加一个-d参数。

例:查看/etc目录的权限与属性信息

[root@linuxprobe ~]# ls -ld /etc

drwxr-xr-x. 132 root root 8192 Aug 13 23:42 /etc

Ⅳ. 文本文件编辑命令

1. cat命令

   cat命令用于查看纯文本文件(内容较少),格式为"cat [选项] [文件]"

[root@linuxprobe ~]# cat -n initial-setup-ks.cfg

 

2. more命令

   more命令用于查看纯文本文件(内容较多的),格式为"more [选项]文件"

[root@linuxprobe ~]# more initial-setup-ks.cfg

 

3. head命令

   head命令用于查看纯文本文档的前N行,格式为"head [选项] [文件]"

[root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg

 

4. tail命令

   tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为"tail [选项] [文件]"

[root@linuxprobe ~]# tail -f /var/log/messages

5. tr命令

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

例:把anaconda文件的文本全部替换成大写

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

6. wc命令

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

[root@linuxprobe ~]# wc -l /etc/passwd

38 /etc/passwd

7. stat命令

   stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文档名称"

[root@linuxprobe ~]# stat anaconda-ks.cfg

  File: ‘anaconda-ks.cfg’

  Size: 1032              Blocks: 8          IO Block: 4096   regular file

Device: fd00h/64768d Inode: 68915660    Links: 1

Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)

Context: system_u:object_r:admin_home_t:s0

Access: 2019-08-14 00:27:15.065788018 +0800

Modify: 2019-08-14 01:25:23.744928793 +0800

Change: 2019-08-14 01:25:23.744928793 +0800

 Birth: -

8. cut命令

   cut命令用于按"列"提取文本字符,格式为"cut [参数] 文本"

[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

lp

sync

shutdown

halt

mail

operator

games

ftp

nobody

dbus

polkitd

unbound

colord

usbmuxd

avahi

avahi-autoipd

libstoragemgmt

saslauth

qemu

rpc

rpcuser

nfsnobody

rtkit

radvd

ntp

chrony

abrt

pulse

gdm

gnome-initial-setup

postfix

sshd

tcpdump

linuxprobe

9. diff命令

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

[root@linuxprobe ~]# cat diff_A.txt

[root@linuxprobe ~]# cat diff_B.txt

   使用diff --brief命令显示比较后的结果,判断文件是否相同:

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

   使用带有-c参数的diff命令来描述文件内容具体的不同

[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt

Ⅴ. 文件目录管理命令

1. touch命令

   touch命令用于创建空白文件或设置文件的时间,格式为"touch [选项] [文件]"

   · a  仅修改"读取时间(atime)"

   · m 仅修改"修改时间(mtime)"

   · d  同时修改atime与mtime

[root@linuxprobe ~]# ls -l anaconda-ks.cfg

-rw-------. 1 root root 1032 Aug 14  2019 anaconda-ks.cfg

[root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg

[root@linuxprobe ~]# ls -l anaconda-ks.cfg

-rw-------. 1 root root 1079 Aug 14 00:40 anaconda-ks.cfg

[root@linuxprobe ~]# touch -d "2017-05-04 15:30" anaconda-ks.cfg

[root@linuxprobe ~]# ls -l anaconda-ks.cfg

-rw-------. 1 root root 1079 May  4  2017 anaconda-ks.cfg

2. mkdir命令

   mkdir命令用于创建空白的目录,格式为"mkdir [选项] 目录"

[root@linuxprobe ~]# mkdir linuxprobe

[root@linuxprobe ~]# cd linuxprobe

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

[root@linuxprobe linuxprobe]# cd a

[root@linuxprobe a]# cd b

[root@linuxprobe b]#

说明:结合-p参数来递归创建出具有嵌套叠层关系的文件目录

3. cp命令

   cp命令用于复制文件或目录,格式为"cp [选项] 源文件 目录文件"

说明:在Linux系统中,复制操作具体分为3种情况:

① 如果目标文件是目录,则会把源文件复制到该目录中

② 如果目标文件也是普通文件,则会询问是否要覆盖它

③ 如果目标文件不存在,则执行正常的复制操作

   · -a:相当于-pdr(p、d、r为上述参数)

   · -d:若对象为"链接文件",则保留该"链接文件"的属性

   · -i :若目标文件存在则询问是否覆盖

   · -p:保留原始文件的属性

   · -r :递归持续赋值(用于目录)

[root@linuxprobe b]# touch install.log

[root@linuxprobe b]# cp install.log x.log

[root@linuxprobe b]# ls

c  install.log  x.log

[root@linuxprobe b]#

4. mv命令

   mv命令用于剪切文件或将文件重命名,格式为"mv [选项] 源文件 [目标路径|目标文件名]"

[root@linuxprobe b]# mv x.log linux.log

[root@linuxprobe b]# ls

c  install.log  linux.log

[root@linuxprobe b]#

5. rm命令

   rm命令用于删除文件或目录,格式为"rm [选项] 文件"

[root@linuxprobe b]# rm install.log

rm: remove regular empty file ‘install.log’? y

[root@linuxprobe b]# rm -f linux.log

[root@linuxprobe b]# ls

c

[root@linuxprobe b]#

6. dd命令

   dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为"dd [参数]"

   · if:输入的文件名称

   · of:输出的文件名称

   · bs:设置每个"块"的大小

   · count:设置要复制"块"的个数

[root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M

1+0 records in

1+0 records out

587202560 bytes (587 MB) copied, 1.3667 s, 430 MB/s

例:将光盘制作成ISO格式的镜像文件

[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso

7. file命令

   file命令用于查看文件的类型,格式为"file 文件名"

[root@linuxprobe ~]# file anaconda-ks.cfg

anaconda-ks.cfg: ASCII text

[root@linuxprobe ~]# file /dev/sda

/dev/sda: block special

Ⅵ. 打包压缩与搜索命令

1. tar命令

   tar命令用于对文件进行打包压缩或解压,格式为"tar [选项] [文件]"

   · -c:创建压缩文件

   · -x:解开压缩文件

   · -t:查看压缩包内有哪些文件

   · -z:用Gzip压缩或解压

   · -j:用bzip2压缩或解压

   · -v:显示压缩或解压的过程

   · -f:目标文件名

   · -p:保留原始的权限与属性

   · -P:使用绝对路径来压缩

   · -C:指定解压到的目录

说明:

① 一般使用" tar -czvf 压缩包名称.tar.gz 要打包的目录"来进行文件打包压缩操作

② 一般使用" tar -xzvf 压缩包名称.tar.gz"来进行文件解压操作

例:压缩操作

[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc

例:解压操作

[root@linuxprobe ~]# tar -xzvf etc.tar.gz -C /root/etc

2. grep命令

   grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为"grep [选项] [文件]"

   · -b:将可执行文件(binary)当作文本文件(test)来搜索

   · -c:仅显示找到的行数

   · -i:忽略大小写

   · -n:显示行号

   · -v:反向旋转—仅列出没有"关键词"的行

[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd

3. find命令

   find命令用于按照指定条件来查找文件,格式为"find [查找路径] 寻找条件 操作"

   · -name:匹配名称

   · -perm:匹配权限(mode为完全匹配,-mode为包含即可)

   · -user:匹配所有者

   · -group:匹配所有组

   · -mtime -n +n:匹配修改内容的时间(-n指n天以内,+n指n天以前)

   · -atime -n +n:匹配访问文件的时间(-n指n天以内,+n指n天以前)

   · -ctime -n +n:匹配修改文件权限的时间(-n指n天以内,+n指n天以前)

   · -nouser:匹配无所有者的文件

   · -nogroup:匹配无所有组的文件

   · -newer f1 !f2:匹配比文件f1新但比f2旧的文件

   · --type b/d/e/p/l/f:匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)

   · -size:匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)

   · -prune:忽略某个目录

   · -exec `````` { } \;:后面可跟用于进一步处理搜索结果的命令

例:获取到该目录中所有已host开头的文件列表

[root@linuxprobe ~]# find /etc -name "host*" -print

/etc/avahi/hosts

/etc/host.conf

/etc/hosts

/etc/hosts.allow

/etc/hosts.deny

/etc/selinux/targeted/modules/active/modules/hostname.pp

/etc/hostname

例:在整个系统中搜索权限中包括SUID权限的所有文件

[root@linuxprobe ~]# find / -perm -4000 -print

例:在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录

[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \;

find: ‘/proc/44630/task/44630/fd/6’: No such file or directory

find: ‘/proc/44630/task/44630/fdinfo/6’: No such file or directory

find: ‘/proc/44630/fd/6’: No such file or directory

find: ‘/proc/44630/fdinfo/6’: No such file or directory

cp: cannot create special file ‘/root/findresults/’: No such file or directory

cp: cannot overwrite non-directory ‘/root/findresults/linuxprobe’ with directory ‘/home/linuxprobe’

猜你喜欢

转载自www.cnblogs.com/CSAH/p/11355658.html