运维开发网

linux基础高阶命令

运维开发网 https://www.qedev.com 2020-06-13 16:57 出处:网络
10.whoami 显示当前用户 11.ping 向网络主机发送ICMP(检测主机是否在线)常用选项:-c: 发送包的数量-w: 等待时间(当试图检测不可达主机时此选项很有用)-i<间隔秒数> 指定收发信息的间隔时间。[[ema

10.whoami

显示当前用户

11.ping 

向网络主机发送ICMP(检测主机是否在线)

常用选项:

-c: 发送包的数量

-w: 等待时间(当试图检测不可达主机时此选项很有用)

-i<间隔秒数> 指定收发信息的间隔时间。

[[email protected] ~]# ping -c 3 -w 3 www.baidu.com

12. kill

终止进程(kill后面指定pid号码)

kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序

-9: 强制终止

执行-15:

1. 程序立刻停止

2. 当程序释放相应资源后再停止

3. 程序可能仍然继续运行

实例:

[[email protected] ~]# ps

PID TTY TIME CMD

23790 pts/4 00:00:00 bash

24269 pts/4 00:00:00 ps

[[email protected] ~]# kill -9 23790

Connection closed by foreign host.

Disconnected from remote host(172.20.10.6) at 13:11:32.

Type `help‘ to learn how to use Xshell prompt.

[d:\~]$

 实例2:列出所有的信息名称

[[email protected] ~]# kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

 

13.seq

生成数列

实例1:指定结束位置

[[email protected] ~]# seq 5

1

2

3

4

5

实例2:指定起始位置和结束位置

[[email protected] ~]# seq 2 5

2

3

4

5

实例3:指定起始位置和结束位置以及步长

[[email protected] ~]# seq 2 2 10

2

4

6

8

10

 

14.du

文件及目录大小

默认显示一个目录下的所有的文件,最后一行会有大小的总和。

常用选项:

-s: 仅显示总和

-h: 人类易读

实例1:

[[email protected] ~]# du -s /root

117064 /root

实例2:

[[email protected] ~]# du -sh /root

115M /root

 

15.df

报告文件系统磁盘空间的使用情况

-h:人类易读

实例1:

[[email protected] ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/centos-root 17G 5.5G 12G 33% /

devtmpfs 233M 0 233M 0% /dev

tmpfs 245M 0 245M 0% /dev/shm

tmpfs 245M 9.1M 235M 4% /run

tmpfs 245M 0 245M 0% /sys/fs/cgroup

/dev/sr0 56M 56M 0 100% /mnt

/dev/sda1 1014M 130M 885M 13% /boot

 

第一列指定文件系统的名称

第二列指定一个特定的文件系统1K-块1K是1024字节为单位的总内存。用和可用列正在使用中,分别指定的内存量。

使用列指定使用的内存的百分比

而最后一栏"安装在"指定的文件系统的挂载点。

 

16.free

显示系统中已用和未用的内存空间总和

常用选项:

-m: 以m为单位

-h: 人类易读

-s<间隔秒数> 持续观察内存使用状况。

实例1:

[[email protected] ~]# free -m

total used free shared buff/cache available

Mem: 488 373 21 1 93 76

Swap: 2047 423 1624

实例2:

[[email protected] ~]# free -h

total used free shared buff/cache available

Mem: 488M 373M 21M 1.8M 93M 76M

Swap: 2.0G 423M 1.6G

 实例3:

[email protected] ~]# free -s 2

total used free shared buff/cache available

Mem: 1015828 100988 753768 7252 161072 750276

Swap: 2097148 0 2097148

total used free shared buff/cache available

Mem: 1015828 101012 753744 7252 161072 750252

Swap: 2097148 0 2097148

 

17. date

 打印或设置系统日期和时间

常用选项:

-s: 根据 STRING 设置时间

 

%Y     年(用 4 位表示) (1970...)

%m     月份(用两位表示) (01..12)

%d     (月份中的)几号(用两位表示) (01..31)

 

%H     小时(按 24 小时制显示,用两位表示) (00..23)

%M     分钟数(用两位表示) (00..59)

%S     秒数(用两位表示)(00..60)

 

%T 时间,按 24 小时制显示(hh:mm:ss)

%F 显示 %Y-%m-%d

 

实例1:

[[email protected] ~]# date ‘+%F %T‘

2019-01-13 13:29:56

实例2:

[[email protected] ~]# date -s "2019-01-13 13:30:00"

Sun Jan 13 13:30:00 CST 2019

[[email protected] ~]# date

Sun Jan 13 13:30:01 CST 2019

 

输出重定向

 

场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。

>:覆盖输出,会覆盖掉原先的文件内容

>>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

2>:错误输出,会覆盖掉原先的文件内容

2>>:错误追加输出,会覆盖掉原始文件内容,会在原始内容末尾继续添加

&>:将标准输出与错误输出共同写入到文件中。覆盖原有内容

&>>:将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

 

标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入。

标准输出重定向(STDOUT,文件描述符为1):默认输出到屏幕。

错误输出重定向(STDERR,文件描述符为2):默认输出到屏幕。

 

案例1:使用覆盖输出(覆盖原文内容)

[[email protected] ~]# vim test

[[email protected] ~]# cat test

this is ken

[[email protected] ~]# echo "this is oscar" > test

[[email protected] ~]# cat test

this is oscar

 

案例2:使用追加输出(原文中追加)

[[email protected] ~]# cat test

this is oscar

[[email protected] ~]# echo "this is ken" >> test

[[email protected] ~]# cat test

this is oscar

this is ken

 

案例3:使用错误输出重定向

默认错误输出会输出倒终端之上

[[email protected] ~]# cat klkl > test #使用输出重定向无法使错误输出导入到文本中

cat: klkl: No such file or directory

[[email protected] ~]# cat klkl 2> test #需要使用2>错误输出重定向

[[email protected] ~]# cat test

cat: klkl: No such file or directory

 

案例4:将标准输出与错误输出共同写入到文件中

[[email protected] ~]# cat klkl &> test

[[email protected] ~]# cat test

cat: klkl: No such file or directory

 

输入重定向

 

工作中用到的比较少,了解即可,输入重定向的作用是把文件直接导入到命令中。

案例:统计文本行数

[[email protected] ~]# wc -l < /etc/passwd

28

 

管道符

 

管道命令符(|)的作用是把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入。

例如我们需要统计passwd文件包含root的行数

[[email protected] ~]# cat /etc/passwd | grep "root" | wc -l

2

把搜索命令的输出值传递给统计命令,即把原本要输出到屏幕的用户信息列表再交给wc命令作进一步的加工,因此只需要把管道符放到两条命令之间即可

 

通配符

 

linux运维人员,我们有时候也会遇到明明一个文件的名称就在嘴边但就是想不起来的情况。如果就记得一个文件的开头几个字母,想遍历查找出所有以这个关键词开头的文件,该怎么操作呢?

通配符就是通用的匹配信息的符号,比如

1. 星号(*)代表匹配零个或多个字符(可以为0个)

2. 问号(?)代表匹配单个字符(单个字符必须存在)

3. 中括号内加上数字[0-9]代表匹配0~9之间的单个数字的字符,

4. 中括号内加上字母[abc]则是代表匹配a、b、c三个字符中的任意一个字符。

案例1:查看dev目录下所有以sda开头的文件

[[email protected] ~]# ls /dev/sda*

/dev/sda /dev/sda1 /dev/sda2

 

案例2:查看dev目录下以sda开头,后面有一个字符的文件

[[email protected] ~]# ls /dev/sda?

/dev/sda1 /dev/sda2

加上问号之后/dev/sda就匹配不到了

 

案例3:查看dev下以sda开头,后面跟上数字的文件

匹配不到sda

[[email protected] ~]# ls /dev/sda[0-9]

/dev/sda1 /dev/sda2

 

案例4:查看dev下以sda开头,后面跟上字母的文件

[[email protected] ~]# ls /dev/sda[a-z]

ls: cannot access /dev/sda[a-z]: No such file or directory

匹配不到任何文件,也匹配不到/dev/sda,后面跟上字符必须存在才能匹配到。

 

三种引号的作用

 

1. 单引号(‘‘):转义其中所有的变量为单纯的字符串。

2. 双引号(""):保留其中的变量属性,不进行转义处理。

3. 反引号(``):把其中的命令执行后返回结果。

 

案例1:单引号,不解释变量即所见即所得

[[email protected] ~]# age=10

[[email protected] ~]# echo ‘my age is $age‘

my age is $age

 

案例2:双引号,解释变量

[[email protected] ~]# age=10

[[email protected] ~]# echo "my age is $age"

my age is 10

 

案例3:反引号,用来执行命令

[[email protected] ~]# name=`ls /root`

[[email protected] ~]# echo $name

10.txt 11.txt 12.txt 13.txt 14.txt 1.txt 2.txt 3.txt 4.txt 5 =5 5.txt 6.txt 7.txt 8.txt 9.txt anaconda-ks.cfg elasticsearch-6.4.0.tar.gz elasticsearch-6.4.0.tar.gz.1 ken kenken nohup.out redis-manager-1.1 redis-manager-1.1-release.tar.gz test test1.sh test.sh

 

软连接、硬连接

 

软连接

软连接:就是相当于windows下面的快捷方式

【软链接相当于快捷方式,硬链接相当于复制粘贴】

创建完成后,源文件、软链接和硬链接均可以查看到文件内容。

编辑源文件,软、硬链接跟着动。

删除源文件,软链接失效,硬链接无影响。再重新建一个与源文件同名的文件,软链接就直接链接到新的文件,而硬链接不变。因为软链接是按着名称进行链接。

ln -s

-s:指定源文件是谁  后面接 连接目标文件

[[email protected] ~]# ln -s ken kenken

[[email protected] ~]# ls

elasticsearch-6.4.0.tar.gz ken nohup.out redis-manager-1.1-release.tar.gz

elasticsearch-6.4.0.tar.gz.1 kenken redis-manager-1.1

 

往连接文件添加一些内容

[[email protected] ~]# echo "this is ken" > kenken

[[email protected] ~]# cat kenken

this is ken

[[email protected] ~]# cat ken

this is ken

发现源文件内容同步

 

删除连接文件

[[email protected] ~]# rm -rf kenken

[[email protected] ~]# cat ken

this is ken

源文件不变

 

删除源文件

[[email protected] ~]# rm -rf ken

[[email protected] ~]# cat kenken

cat: kenken: No such file or directory

连接文件失效

 

再次创建源文件

[[email protected] ~]# touch ken

[[email protected] ~]# cat kenken

[[email protected] ~]# cat ken

再重新建一个与源文件同名的文件,软链接就直接链接到新的文件。因为软链接是按着名称进行链接

 

总结:

软连接

ln - s 原路径 目标路径

特点:

1、就是相当于win中的快捷方式

2、删除链接文件,源文件无影响

3、删除源文件,链接文件失效

4、修改源文件\链接文件,内容都发生改变

 

硬链接

ln 源文件 目标文件

[[email protected] ~]# ln ken ken1

[[email protected] ~]# ls

elasticsearch-6.4.0.tar.gz ken kenken redis-manager-1.1

elasticsearch-6.4.0.tar.gz.1 ken1 nohup.out redis-manager-1.1-release.tar.gz

 

总结:

1、删除链接文件,源文件无影响

2、删除源文件,链接文件无影响

3、修改源文件\链接文件,内容都发生改变

 

一切从“/”开始

 

linux系统中,目录、字符设备、块设备、套接字等都被抽象成了文件,linux系统中一切都是文件。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在linux系统中并不存在C/D/E/F等盘符,linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。linux系统中的

文件存储结构如图6-1所示。

 FHS是根据以往无数linux系统用户和开发者的经验而总结出来的,是用户在linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。                           linux系统中常见的目录名称以及相应内容目录名称 应放置文件的内容/boot 开机所需文件—内核、开机菜单以及所需配置文件等/dev 以文件形式存放任何设备与接口/etc 配置文件/home 用户主目录/bin 存放单用户模式下还可以操作的命令/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数/sbin 开机过程中需要的命令/media                                          用于挂载设备文件的目录                                                                                 /opt 放置第三方的软件/root 系统管理员的家目录/srv 一些网络服务的数据文件目录/tmp 任何人均可使用的“共享”临时目录/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等/usr/local 用户自行安装的软件/usr/sbin linux系统开机时不会使用到的软件/命令/脚本/usr/share 帮助与说明文件,也可放置共享文件/var 主要存放经常变化的文件,如日志/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里 绝对路径vs相对路径 在linux系统中另外还有一个重要的概念—路径。路径指的是如何定位到某个文件,分为绝对路径与相对路径。绝对路径指的是从根目录(/)开始写起的文件或目录名称相对路径则指的是相对于当前路径的写法。

0

上一篇:

:下一篇

精彩评论

暂无评论...
验证码 换一张
取 消