自动化运维之Liunx命令使用(三)

763 阅读5分钟

不要嫌弃父母对你的唠叨,这是他们和你仅剩的交流方式

父亲节快乐

Liunx命令

一、Linux命令入门

1、命令介绍

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

2、终端说明

首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

介绍:

[root@WangCaiChen ~]#

  • root:当前登录用户#:身份识别符
  • @:"at"符号,表示分割的
  • WangCaichen:当前登录的主机名
  • ~:当前工作目录
  • #表示管理员,$表示普通用户

3、命令与选项

什么是linux命令

指在linux终端(命令行)中输入的内容就成为命令

一个完整的命令标准格式:linux通用格式

# 命令  [选项]  [参数]

注意:“[ ]”包裹的表示该项目为可选项

4、常用命令

ls

ls (list, 列出)

用法一:# ls

含义:列出当前工作路径下的文档名称

示例代码:

用法二:#ls 路径

关于路径:路径分为绝对路径和相对领
绝对路径:不管当前工作路径在哪,目标路径都会从"/"磁盘根下开始
相对路径:除绝对路径之外的路径称之为相对路径,相对路径得有一个相对物做参照。
../:上级目录
./:当前目录
总结:看到路径以"/"开头表示绝对路径, 其他相对路径

示例代码:

用法三:# ls 选项 【路径】

含义:列出指定路径下文件/文件夹名称时,以指定格式进行显示

常见语法:

# ls -l 【路径】

# ls -la 【路径】 【linux命令语法中,多个选项可以合并为-abcd这种形式】

选项说明:

-l : 表示以详细列表的形式进行展示

详情说明:

  • 档案类型及权限:权限管理时会详细说明。
  • 连接数:文件的引用计数代表该文件的硬链接个数,目录的引用计数为该目录下有多少个子目录
  • 所有者:文件属于哪个用户。默认所有者是文件的创建用户。
  • 所属组:文件属于哪个组,默认是文件建立用户的有效组。就是建立用户的所在组。
  • 容量:文件的大小,默认单位是字节,如果想显示M加-h
  • 档案最后修改时间:文件最后的修改时间
  • 档案名:文件或目录名称

-a: all, 表示显示所有文件/文件夹(包含了隐藏文件/文件夹)

说明:
在linux中隐藏文档的名称一般都是以"."开头,
上图中第一列的第一个字符,"d"表示目录,"-"表示文件
"."表示当前鲁宁,".." 表示上级路径(相对当前路径)
目录颜色一般是蓝色,文件一般是黑色(颜色指的是终端中默认的颜色)

扩展命令:# ll,ll等价于“# ls -l”

用法四:# ls -lh 路径

含义:列出指定路径下的文档结构,以指定方式显示

选项说明:

-l : 表示以列表形式显示

-h: 表示以较高可读性(文档大小)的形式展示

注意:单位不一定是k,系统会获取其大小之后为文档找到一个合适的单位,因此单位可能是"K、M、G、T"或者是没有单位。

文件属性

pwd

用法: # pwd (print working directory, 打印当前工作目录)

作用:打印当前所在的路径

cd

命令:cd (change directory, 改变目录)

作用:切换当前德工作目录

语法:# cd [路径]

说明:路径可选,写路径表示切换到指定路径,不写表示切换到当前用户家目录

第一种用法:加路径

第二种用法:不加路径

含义:表示切换到当前用户的家目录

特殊用法:和不加路径效果相同

含义:表示切换到当前用户的家目录

说明:
linux中有一个特殊的符号"~",表示当前用户的家目录,等价于直接cd

clear

命令:clear (清除)

作用:用于清除终端信息(清屏)

whoami

命令:whoami

作用:获取当前用户的用户名

reboot

命令:reboot

作用:重启操作系统

shutdown

命令:shutdown

作用:关机

用法一:# shutdown -h 0 或 now 立即关机

扩展命令:halt

和用法一作用相同

用法二:#shutdown -h 10

含义:延迟关机,10分钟后关机

二、Linux基本命令

、目录操作

创建目录

命令:mkdir(make directory, 创建目录)

作用:创建目录

语法:# mkdir 路径(需要包含文件夹名称)

用法一:创建目录

用法二:递归创建目录

语法:# mkdir -p 路径(需要包含目录名称)

作用:创建多层不存在的路径

用法三:同时创建多个目录

语法:# mkdir [-p] 路径1 路径2 ...

删除目录

命令:rmdir

作用:删除空目录

语法:# rmdir 路径 (需要包含目录名称)

用法一:删除空目录

用法二:同时删除多个空目录

用法三:递归删除空目录

语法:# rmdir -p 路径

作用:首先删除子目录,删除成功后,删除上级目录,直至结束

2、文件操作

创建文件

命令:touch

语法:# touch 文件路径【文件路径2 文件路径3 ...】

用法一:创建readme.txt文件

方法二:同时创建多个文件

删除文件/文件夹

命令: rm

作用:删除文件或者文件夹

语法:rm [-rf] 文件或文件夹

选项:

-r:递归删除

-f:强制删除,不提示任何信息。操作前要慎重!

用法一:删除readme.txt 文件

用法二:递归删除目录

用法三:强制删除文件或目录

3、复制剪切

复制操作

命令:cp (copy, 复制操作)

作用:复制文件/文件夹到指定位置

语法:# cp [-r] 被复制的文档路径 文档被复制到的路径

选项:

-r:recursion,递归,表示将文件夹中所有的下属文件、文件夹都复制。复制文件夹-r必须加

示例代码1:复制/root/readme.txt 到 /tmp目录下

示例代码2:复制/root/nginx目录到/tmp目录下

剪切操作

命令:mv (move, 移动,剪切)

作用:剪切移动,重命名

语法:# mv 需要移动的文档路径 需要保存的位置路径

mv与cp的区别:
mv与cp的命令不一样,mv不管是针对文件还是文件夹都不需要加-r选项
在移动的过程中文档名称是不变的,变得是路径

示例代码:

重命名操作

在linux中重命名的命令也是mv,语法和移动语法一样。区别在于重命名一般是路径不变,名称改变。
也可以移动的时候重命名

案例:移动并且重命名

4、压缩解压缩

对于一些大文件,不管是发送邮件附件,还是保存都会占用很大的空间。这个时候我们就需要对文件进行压缩

gzip

压缩:

特点:压缩速度快,压缩率低,cpu开销比较低

语法一:gzip 需要压缩的文件

含义:压缩单个文件

语法二:gzip file1 file2 …

含义: 同时压缩多个文件

解压:

语法一:gunzip file1.gz

语法二:gzip -d file1.gz

bzip2

压缩速度慢,压缩率高,cpu开销大

压缩:

语法:bzip2 需要压缩的文件

解压

语法:bzip2 -d 需要解压的文件

xz

压缩率高,解压速度快,压缩时间较长,cpu消耗相对较大

压缩:

语法:xz 需要压缩的文件

解压:

语法一:unxz 需要解压的文件

语法二:xz -d 需要解压的文件

tar

gzip 、bzip2或xz命令带有多个⽂件作为参数时,执行的操作是将各个⽂件独立压缩,而不是将其放在一起进行压缩。这样就无法产⽣类似于Windows环境下的文件夹打包压缩的效果,为了实现打包压缩的效果,可以使⽤命令 tar 进行文件的打包操作(archive),再进行压缩。

tar命令可以将⽂件打包成文件档案(archive)存储在磁盘/磁带中,打包操作⼀般伴随压缩操作,也可以使用tar 命令对打包压缩后的⽂件解压。

打包

语法:tar 选项 打包文件名 要打包的文件或目录

选项:

-c,create 创建打包文件,可搭配-v来查看打包过程中被打包的文档名

-x, 解包

-v,可视化的意思,即可以看查看创建的过程,可以省略此参数

-f,必填选项,使用档案名字,这个参数是最后一个参数,打包文件名

-r,向压缩归档文件末尾追加文件

示例代码1:创建mytar.tar压缩包

示例代码2:将readme.txt增加到mytar.tar包里。-r 表示增加文件的意思。

打包并压缩

tar在打包的时候,是支持压缩的,之前讲过的gzip、bzip2、xz压缩工具都可以在tar打包文件中使用。

语法:tar 选项 打包文件名 压缩的文件或目录

选项:

-z,压缩为.gz格式

-j,压缩为.bz2格式

-J,压缩为.xz格式

示例代码1:把1.txt与2.txt压缩为mytar.tar.gz文件

示例代码2:把1.txt与2.txt压缩为mytar.tar.bz2

示例代码3:把1.txt与2.txt压缩为mytar.tar.xz

解压

解压的时候,把压缩命令中的c换成x即可

示例代码1:解压mytar.tar.gz

示例代码2:解压mytar.tar.bz2

示例代码3:解压mytar.tar.xz

扩展

查看压缩文件内容,适用.tar.gz/.tar.bz2/.tar.xz三种压缩文件

语法:tar -tf 打包压缩文件名

选项:

-t,查看打包文件的内容还有那些文档名

示例代码:查看mytar.tar.gz还有那些文件

zip(了解)

兼容windows和linux的压缩类型,可以压缩多个文件或目录

压缩

语法:zip [-r] 压缩后的文件 需要压缩的文件(多个文件)

注意:zip默认压缩后的格式就是.zip,也可以加后缀.zip,一般都加上

用法一: 文件压缩

用法二:文件夹压缩

解压

语法:unzip 要解压的文件名 [-d] 解压目录

用法一:解压到当前目录

用法二:解压到指定目录

5、输出重定向

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

标识符说明

>: 标准输出重定向,覆盖输出,会覆盖原始文件内容

>>:追加输出重定向,追加输出,会在原始文件内容末尾追加内容

使用

语法:有输出的命令 输出重定向符号(>|>>) 输出到的文件路径

说明:文件路径中的文件可以是不存在文件(文件路径需要符号touch创建的要求)

用法一:输出重定向

用法二:echo命令

作用:字符串输出

用法三:使用echo命令向文件中写入自定义内容

6、查看文件内容

cat

用法一: cat 文件名称

作用:正序查看文件内容

用法二:cat 待合并的文件路径1 待合并的文件路径2 … > 合并之后的文件路径

作用:文件内容合并

tac

用法: tac 文件名称

作用:倒序查看文件内容

7、帮助

--help

--help也可以换做-h

作用:查看命令用法

通常用在协助查询曾经用过的指令所具备的选项与参数

示例

man

作用,命令使用手册/系统文件说明

通常用在从来没有用过的命令

用法一:查看命令详细使用

用法二:查看配置文件详解

说明:
如何退出man 命令: 按【q】

五、Linux基本命令(下)

1、磁盘内存相关命令

df

作用:查看磁盘空间

语法:df [-h]

选项:

-h, 以可读性较高的形式展示大小

free

作用:查看内存使用情况

语法:free [-选项]

选项:

-m, 表示以M为单位查看

-h, 以可读性较高的形式展示大小

2、文件内容相关命令

head

作用:查看一个文件的前n行,如果不指定n, 默认显示前10行

语法:head [-n] 文件路径 【n是一个正整数】

示例代码:显示yum.conf的前3行

示例代码2:显示yum.conf的前10行,不指定-n

tail

作用:查看一个文件的末n行,如果不指定默认显示后10行

语法:tail [-n] 文件路径 【n表示正整数】

示例代码1: 显示yum.conf文件最后5行

示例代码2:显示yum.conf文件最后10行

tail命令扩展:

作用:查看一个文件动态变化的内容(非用户手动增加,计算机写入)

语法:tail -f 文件路径

说明:tail -f 一般用于查看系统日志,退出tail -f卡屏状态,按下Ctrl + c键

less

作用:查看大文件,以较少的内容进行输出,按下辅助功能键查看更多,按q退出

功能键:空格向下翻页,"b"键向上翻页,上下键向上向下移动一行

语法:less 需要查看的文件路径

more

作用:查看文件,以较少的内容进行输出,按下辅助功能键查看更多文件内容。按q退出

功能键: Ctrl+f(或者空格)向下翻页,Ctrl+b向上翻页,回车向下一行查看

语法:more 需要查看的文件路径

wc

解释:wc (word count)

作用:统计文件内容信息(包含行数、单词数、字节数)

语法:wc - [lwc] 需要统计的文件路径,不写选项,行数、单词数、字节数都显示

选项:

-l :表示lines, 行数(以回车/换行符为标准)

-w:表示words,单词数(以空格为标准)

-c: 表示bytes, 字节数

注意:wc命令选项可以混在一起搭配使用,但选项的顺序不影响结果

第一个是行数

第二个是单词数

第三个是字节数

du

作用:查看文件或目录(递归显示子目录)占用磁盘空间大小

语法:du [-sh] 文件或者目录

选项:

-s,summaries,显示汇总大小

-h,高可读性进行显示

示例代码1:

示例代码2:

find

作用:查找文档

语法:find 路径范围 选项1 选项1值 [选项2 选项2值]

选项:

-name, 按照文档名称进行搜索

-type,按照文档类型进行搜索

文档类型:“-”表示文件(在使用find的时候使用f来替换),d表示文件夹

示例代码1:

示例代码2:*表示通配符

示例代码3:表示查找/etc/yum/ 下的所有文件夹

3、日期时间命令

概念:

在linux系统里有系统时间和硬件时间,系统在启动的时候会去读取硬件时间作为系统时间

date

获取时间

作用:表示获取系统时间

语法1: date

输出形式:2019年 03月 06日 星期三 16:34:12 CST

语法2:date "+%F" 等价于 date “+%Y-%m-%d”

输出形式:2019-03-06

语法3:date "+%F %T" 等价于 date ”+%Y-%m-%d %H:%M:%S“

输出形式:2019-03-06 16:39:46

语法4:获取之前或者之后的某个时间(备份)

# date -d "-1 day" "+%Y-%m-%d %H:%M:%S"

符号的可选值:+(之后) 或者 - (之前) 单位的可选值:day(天)、month(⽉份)、year(年)

符号 格式符 说明
1 %F 表示完整的年月日,形如2019-12-1
2 %T 表示完整的时分秒,形如08:10:11
3 %Y (year)表示四位年份
4 %m (month)表示两位月份
5 %d (day)表示日期
6 %H (hour)表示小时
7 %M (minute)表示分钟
8 %S (second)表示秒数
设置时间

作用:表示设置系统时间

选项:

-s,设置系统时间

hwclock(了解)

获取时间

作用:管理计算机硬件RTC时间

设置时间

选项:

-w, 将linux系统时间保存到硬件RTC中

-s, 将RTC中的时间保存到linux系统时间中

timedatectl

作用:同时设置系统时间和RTC硬件时间,还可以设置时区。

参数:

list-timezones : 列出系统上所有支持的时区名称

set-timezone :设定时区位置

set-time :设定时间(同时设置系统时间和RTC时间)

获取时间:

设置时间:

ntpdate

作用:手动网络校时

语法:ntpdate ntp服务器地址

ntp服务器地址:
1. 国家授时中心:ntp.ntsc.ac.cn
2. 阿里云:ntp.aliyun.com ntp1.aliyun.com

cal(了解)

作用:查看系统日历

语法一: cal等价于 cal -1 输出当前月份日历

语法二:cal -3 输出上个月 + 本月 + 下个月的日历

语法三:cal -y 年份数字 表示输出某一个年份的日历(1-9999)

4、管道命令

管道符

管道符:|

作用:管道一般用于”过滤“

语法:命令A | 命令B,命令A的正确输出作为命令B的操作对象

说明:管道符不能单独使用,必须配合其他命令来一起使用。

举例:想知道/etc/底下有哪些文档,那么可以利用ls /etc来查阅,不过,因为/etc底下的文档太多,导致整个屏幕都塞满了,查看变得不方便,此时我们可以透过less指令协助查看.

[itcast@itcast ~]$ ls /etc | less

过滤功能

grep: 取出含有搜寻字符串的内容行

[root@itcast itcast]# grep [-v] ‘搜寻字符串’ filename 
#选项:
-v:反向选择,亦即显示出没有'搜寻字符串'内容行

#示例一:将ls中,出现readme的内容行取出
[root@itcast ~]# ls | grep 'readme'

#示例二:与示例一相反,取出没有readme的内容行
[root@itcast ~]# ls | grep -v 'readme'

练习

问题一:使用学过的命令,统计某个目录下文档的总个数?

#示例:统计/下文档个数
[root@itcast ~]# ls / | wc -l

问题二:统计系统中用户数量

#示例:linux系统中配置文件'/etc/passwd',一个用户会占用一个行配置,使用管道统计用户个数
[root@itcast ~]# cat /etc/passwd | wc -l

5、其他命令

ps

作用:显示系统进程信息

[root@itcast ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.5  53804  5428 ?        Ss   3月06   0:06 /usr/lib/syste
root          2  0.0  0.0      0     0 ?        S    3月06   0:00 [kthreadd]
--省略--
# 列的含义:
USER:该 process 属于哪个使用者账号
PID :该 process 的ID
%CPU:该 process 使⽤掉的 CPU 资源百分⽐
%MEM:该 process 所占⽤的物理理内存百分⽐
VSZ :该 process 使⽤掉的虚拟内存量 (Kbytes)
RSS :该 process 占⽤的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上⾯运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上⾯的登入者程序,若为 pts/0 等等的,则表示为由⽹络连接进主机的程序。 STAT:该程序目前的状态,主要的状态有
R :该程序⽬前正在运作,或者是可被运作
S :该程序⽬前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序⽬前正在侦测或者是停止了了
Z :该程序应该已经终止,但是其父程序却无法正常的终⽌他,造成 zombie (疆⼫尸) 程序的状态 
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令

例子:
[root@localhost ~]# ps aux | grep firefox

kill

作用:杀死进程,指定pid(进程id)

[root@itcast ~]# kill [选项] 进程id

# 示例一 查看firefox进程,杀死该进程
[root@itcast ~]# ps aux | grep firefox
root      60746  3.3 10.6 776008 107236 ?       Sl   14:54   0:00 /usr/lib64/firefox/firefox
root      60801  0.0  0.0 112656   996 pts/1    R+   14:54   0:00 grep --color=auto firefox
[root@itcast ~]# kill 60746
[root@itcast ~]# ps aux | grep firefox
root      60846  0.0  0.0 112656   996 pts/1    R+   14:55   0:00 grep --color=auto firefox

# 示例二
[root@itcast ~]# kill -9 60746   #强制杀死进程

killall

作用:杀死进程,指出下达指令的名称

[root@itcast ~]# killall 指令名称

示例一:
[root@itcast ~]# killall firefox

ifconfig

作用:

[root@itcast ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.99.138  netmask 255.255.255.0  broadcast 172.16.99.255
        inet6 fe80::20c:29ff:fe17:6e52  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:17:6e:52  txqueuelen 1000  (Ethernet)
        RX packets 850237  bytes 1207888409 (1.1 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 258583  bytes 17520886 (16.7 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 304  bytes 27622 (26.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 304  bytes 27622 (26.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
# 说明
eno16777736:网卡名
inet 172.16.99.138: IP地址
lo:回环网卡

六、远程连接工具

我们学习linux操作系统主要运行在服务器环境中,那么服务器一般都放在远程的机房中,这时候我们必须掌握远程连接linux服务器工具的使用

  • MobaXterm
  • Xshell

使用命令远程连接

>  ssh -p22 root@服务器ip地址
>  输入密码

                                       _____        _   _____  _                  
                                      / ____|      (_) / ____|| |                 
                                     | |      __ _  _ | |     | |__    ___  _ __  
                                     | |     / _` || || |     | '_ \  / _ \| '_ \ 
                                     | |____| (_| || || |____ | | | ||  __/| | | |
                                      \_____|\__,_||_| \_____||_| |_| \___||_| |_|
                                                                                  
                                                                                  

好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。

如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!

白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号: