自动化运维之Liunx命令使用(三)
2020/6/22 17:27:45
本文主要是介绍自动化运维之Liunx命令使用(三),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
不要嫌弃父母对你的唠叨,这是他们和你仅剩的交流方式
父亲节快乐
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地址 > 输入密码 复制代码
_____ _ _____ _ / ____| (_) / ____|| | | | __ _ _ | | | |__ ___ _ __ | | / _` || || | | '_ \ / _ \| '_ \ | |____| (_| || || |____ | | | || __/| | | | \_____|\__,_||_| \_____||_| |_| \___||_| |_| 复制代码
好了各位,以上就是这篇文章的全部内容了,能看到这里人啊,都是人才。
如果这个文章写得还不错,觉得「王采臣」我有点东西的话 求点赞👍求关注❤️求分享👥 对耿男我来说真的非常有用!!!
白嫖不好,创作不易,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
王采臣 | 文 【原创】 如果本篇博客有任何错误,请批评指教,不胜感激 !微信公众号:
这篇关于自动化运维之Liunx命令使用(三)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解