-
获取shell内部命令的帮助
-
例如:whereis cd,确定是否是shell内部命令
-
例如:help cd,获取内部命令帮助
info
,详细命令帮助
-
回车:进入子帮助页面(带有*号标记)
-
u:进入上层页面
-
n:进入下一个帮助小结
-
p:进入上一个帮助小结
-
q:退出
1. 压缩命令1
zip
命令
-
压缩文件:
zip
压缩文件名 源文件 -
压缩目录:
zip -r
压缩文件名 原目录 -
解压缩:
unzip
压缩文件
.gz
格式压缩,gzip
源文件
- 压缩为
.gz
格式的压缩文件,源文件会消失
gzip -c
源文件 > 压缩文件
- 压缩为
.gz
格式,源文件保留,例如:gzip -c bols > bols.gz
gzip -r
目录
- 压缩目录下所有的子文件,但不能压缩目录
.gz
格式解压缩
-
gzip -d 压缩文件
-
gunzip 压缩文件
.bz2
格式压缩
-
bzip2 源文件
-
压缩为.bz2格式,不保留源文件
bzip2 -k
源文件
-
压缩后保留源文件
-
注意:bzip2命令不能压目录
.bz2
解压缩
-
bzip2 -d
压缩文件 -
解压缩,加上
-k
属性保留压缩文件
bunzip2
压缩文件
- 解压缩,加上-k属性保留压缩文件
2. 压缩命令2
-
.tar.gz
压缩格式 -
其实
.tar.gz
格式是先打包为.tar格式,在压缩为.gz格式
tar -zcvf
压缩包名.tar.gz
源文件
- -z:压缩为.tar.gz格式
tar -zxvf
压缩包名.tar.gz
源文件
- -x:解压缩.tar.gz格式
例如,解压缩nginx的源码包
tar -zxvf nginx-1.12.tar.gz
.tar.bz2
压缩格式
-
tar -jcvf 压缩包名.tar.bz2 源文件
-
-j:压缩为.tar.bz2格式
-
tar -jxvf 压缩包名.tar.bz2 源文件
-
-x:解压缩.tar.bz2格式
打包命令tar
tar -cvf
打包文件名 源文件
-
-c:打包
-
-v:显示过程
-
-f:指定打包后的文件名
-
例如:tar -cvf bols.tar longls
解打包命令
-
tar -xvf 打包文件名
-
-x:解打包
-
例如:
tar -xvf bols.tar
了解关机与重启命令之前,首先看一下系统运行级别:
| 选项 | 含义 |
| — | — |
| 0 | 关机 |
| 1 | 单用户 |
| 2 | 不完全多用户,不含NFS服务 |
| 3 | 完全多用户 |
| 4 | 未分配 |
| 5 | 图形界面 |
| 6 | 重启 |
1. 关机命令
shutdown
命令,shutdown
[选项] 时间
-
-c:取消前一个关机命令
-
-h:关机
-
-r:重启
*.**********************************************分割线***********************************************1
-
其它关机命令:halt,poweroff,init 0
-
其它重启命令:
reboot
,init 6
注意:使用服务器时,不要随意使用关机命令。一旦使用了,会造成不必要的麻烦。
2.重启命令
-
reboot
,执行命令进行重启 -
shutdown -r
,执行命令进行重启
注意:使用logout
命令,养成良好的习惯退出登录
1. 挂载命令格式
mount
[-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
| 内容 | 含义 |
| — | — |
| -t
文件系统 | 加入系统文件类型来指定挂载的类型,可以是ext3
、ext4
、iso9660
等文件系统 |
| -o
特殊选项 | 可以指定挂载的额外选项 |
挂载命令,查询与自动挂载
-
mount
:查询系统中已经挂载的设备 -
mount -a
:依据配置文件/etc/fstb
的内容,自动挂载
mount部分参数说明
| 参数 | 说明 |
| — | — |
| atime/noatime
| 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新。 |
| async/sync
| 异步/同步,默认为异步 |
| auto/noauto
| 自动/手动,执行mount -a命令时,是否会自动安装/etc/fstb文件内容挂载,默认自动。 |
| defaults
| 定义默认值,相当于rw
,suid
,dev
,exec
,auto
,nouser
,async
这七个选项。 |
| exec/noexec
| 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认exec允许。 |
| remount
| 重新挂载已挂载的文件系统,一般用于指定修改特殊权限。 |
| rw/ro
| 读写/只读,文件系统挂载时,是否具有读写权限,默认rw
。 |
| suid/nosuid
| 具有/不具有suid权限,设定文件系统是否具有suid和sgid的权限,默认具有。 |
| user/nouser
| 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认不允许,只有root
可以挂载分区。 |
| usrquota
| 写入代表文件系统支持用户磁盘配额,默认不支持。 |
| grpquota
| 写入代表文件系统支持组磁盘配额,默认不支持。 |
挂载光盘
建立挂载点
mkdir /mnt/cdrom/
挂载光盘,只是习惯在mnt
下建立,media
下建立也行。
指定参数
mount -t iso9660 /dev/cdrom /mnt/cdrom/
不指定参数
mount /dev/sr0 /mnt/cdrom/
卸载命令
umount
【接设备文件名或者挂载点】
例如:
umount /mnt/cdrom/
挂载U盘
fdisk -l
:查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
注意:Linux默认不支持NTFS文件系统
2. 用户登录查看命令
查看用户登录信息:w
接用户名
命令输出
| 符号 | 含义 |
| — | — |
| USER
| 登录的用户名 |
| TTY
| 登录终端 |
| FROM
| 从哪个IP地址登录 |
| LOGIN@
| 登录时间 |
| DILE
| 用户闲置时间 |
| JCPU
| 与该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业占用时间 |
| PCPU
| 当前进程所占用时间 |
| WHAT
| 当前正在运行的命令 |
| w
| 查询登录用户,显示系统时间和运行时间,用户个数以及平均负载。 |
查看登录用户信息,who
用户名
命令输出:
- 用户名,登录终端,登录时间(登录来源IP地址)
whoami
查看当前用户
查询当前登录和过去登录的用户信息,last
-
last
命令默认读取/var/log/wtmp
文件数据 -
命令输出:用户名,登录终端,登录IP,登录时间,退出时间(在线时间)
查看所有用户最后一次登录时间,lastlog
-
lastlog
命令默认读取/var/log/lastlog
文件内容 -
命令输出:用户名,登录终端,登录IP,最后一次登录时间
netstat
命令,查看网络状态
netstat -an | grep ESTABLISHED
1. shell概述
-
shell的两种主要语法类型有
Bourne
和C
,这两种语法彼此不兼容。Bourne家族主要包括:sh、ksh、Bash、psh、zsh; -
C家族主要包括:csh、tcsh
Bash
中其它特殊符号
| 特殊符号 | 含义 |
| — | — |
| ’ ’ | 在单引号中所有特殊符号,如"$“和”`"(反引号)都没有特殊含义 |
| " " | 双引号。在双引号中所有特殊符号除"$
“、”、“、”\
“外都无特殊含义。”$“、”、“、”“拥有"调用变量的值”、"引用命令"和"转义符"的含义 |
| `` | 反引号。反引号括起来的是系统命令,在Bash中会优先执行它。和$
()作用一样,推荐使用$
(),反引号容易误导。 |
| $() | 与反引号作用相同,用来引用系统命令。 |
| # | 在shell脚本中,#代表注释。 |
| $
| 用于调用变量的值,如果需要调用name的值时,需要使用$name获取变量的值。 |
| \ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。例如: 将输出 " 将输出" 将输出""符号,则不会作为变量引用。 |
2. 脚本执行方式
#编写一个简单的linux脚本,使用vim命令
vim /home/hello.sh
#注意你的脚本开头必须加上:#!/bin/bash
#!/bin/bash
echo “hello world” >> /root/hello.log
#赋予读和执行权限
chmod 755 /hello.sh
#使用 sh hello.sh 命令执行
3. 别名与快捷键
查看与设定别名
-
alias
命令,查看系统命令中所有的命令别名 -
alias
别名 = ‘原命令’,设定命令别名,当然这样设置只会临时生效
别名永久生效与删除别名
-
vi ~/.bashrc
,写入环境变量配置文件 -
unalias
别名,删除别名
命令生效顺序
-
第一顺位执行用绝对路径或相对路径执行的命令
-
第二顺位执行别名
-
第三顺位执行Bash的内部命令
-
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
4. 历史命令,history
[选项][历史命令保存文件]
-
-c:清空历史命令
-
-w:把缓存中的历史命令写入历史命令保存文件~/.bash_history
历史命令的调用
-
使用上、下箭头调用以前的历史命令
-
使用"!n"重复执行第n条命令
-
使用"!!"重复执行上一条命令
-
使用"!字符串"重复执行最后一条以该字符串开头的命令
5. 输出重定向
echo
输出命令 [选项][输出内容]
- -e:支持反斜线控制的字符转换
控制字符作用
| 控制符 | 作用 |
| — | — |
| \a | 输出警告音 |
| \b | 退格键,向左删除 |
| \n | 换行符 |
| \r | 回车键 |
| \t | 制表符,TAB键 |
| \v | 垂直制表符 |
| \0nnn | 按照八进制ASCII码输出字符。其中0为数字零,nnn为三位八进制数。 |
| \xhh | 按照十六进制ASCII码输出字符。hh是两位十六进制数。 |
例如:以下命令在后台执行av目录下的cangls.sh脚本,并重定向输入到runls.log文件
nohup /av/cangls.av > runls.log 2>&1 &
表达意义:2>&1,将标准错误输出[2],重定向到标准输出[&1],覆盖的形式再被重定向输入到runls.log文件
| 符号 | 含义 |
| — | — |
| 0 | 标准输入 |
| 1 | 标准输出 |
| 2 | 标准错误输出 |
标准输出重定向:
| 符号 | 作用 |
| — | — |
| 命令 > 文件 | 以覆盖的方式,把命令的正确输出到指定的文件或设备当中 |
| 命令 >> 文件 | 以追加的方式,把命令的正确输出到指定的文件或设备当中 |
| 错误命令 2> 文件 | 以覆盖的方式,把命令的错误输出到指定的文件或设备当中 |
| 错误命令 2>> 文件 | 以追加的方式,把命令的错误输出到指定的文件或设备当中 |
正确输出和错误输出同时保存:
| 符号 | 作用 |
| — | — |
| 命令 > 文件 2>&1 | 以覆盖的方式,把命令的正确和错误输出保存在同一个文件中 |
| 命令 >> 文件 2>&1 | 以追加的方式,把命令的正确和错误输出保存在同一个文件中 |
| 命令 &> 文件 | 以覆盖的方式,把命令的正确和错误输出保存在同一个文件中 |
| 命令 &>>文件 | 以追加的方式,把命令的正确和错误输出保存在同一个文件中 |
| 命令 >> 文件1 2>> 文件2 | 把正确的输出到文件1中,错误的输出到文件2中 |
举例
例如:原有内容cangls,将文件内容覆盖掉变为longls
#输出内容到文件
echo cangls > av.mkv
#覆盖掉
echo longls > av.mkv
命令 >> 文件,以追加的方式,把命令的正确输出到指定的文件或设备当中
例如:原有内容cangls,将bols追加进去。形成多P,爽歪歪。
#输出内容到指定文件
echo cangls > av.mkv
#追加内容
echo bols >> av.mkv
有出重定向,当然也有输入重定向,了解就行。
wc
[选项][文件名]
-
-c:统计字节数
-
-w:统计单词数
-
-l:统计行数
以追加的形式把错误和正确的结果输出到文件中
-
命令 >> 文件 2>&1
-
命令 &>> 文件
-
命令 >> 文件1 2>> 文件2
6. 管道符
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算