赞
踩
ll 文件
### 6、帮助命令
#### 6.1 帮助:man 命令
命令名称:man
命令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [命令或配置文件]
(空格) 或f 翻页
(Enter) 换行
q或Q 退出
功能描述:获得帮助信息
范例:
$ man ls
查看ls命令的帮助信息
$ man services
查看配置文件services的帮助信息
#### 6.2 获取简介:whatis 命令
命令:whatis
语法:whatis 命令
功能描述:获得命令的简单介绍信息
范例:whatis ls
#### 6.3 获取帮助:help 命令
命令名称:help
命令所在路径:Shell内置命令
执行权限:所有用户
语法:help 命令
功能描述:获得Shell内置命令的帮助信息
范例:
$ help umask
查看umask命令的帮助信息
### 7、用户管理命令
#### 7.1 添加用户:useradd 命令
命令名称:useradd
命令所在路径:/usr/sbin/useradd
执行权限:root
语法:useradd 用户名
功能描述:添加新用户
范例:
$ useradd zhangdapao
#### 7.2 修改密码:passwd 命令
命令名称:passwd
命令所在路径:/usr/bin/passwd
执行权限:所有用户
语法:passwd 用户名
功能描述:设置用户
范例:
$ passwd zhangdapao
#### 7.3 查看登录用户:who 命令
命令名称:who
命令所在路径:/usr/bin/who
执行权限:所有用户
语法:who
功能描述:查看登录用户信息
范例:
$ who
显示所有登录用户信息
#### 7.4 w 命令
命令名称:w
命令所在路径:/usr/bin/w
执行权限:所有用户
语法:w
功能描述:查看登录用户详细信息
范例:
$ w
#### 7.5 切换用户:su 命令 | 命令 | 含义 | | --- | --- | | su | 切换到root用户 | | su root | 切换到root用户 | | su - | 切换到root用户,同时切换目录到/root | | su - root | 切换到root用户,同时切换目录到/root | | su 普通用户 | 切换到普通用户 | | su - 普通用户 | 切换到普通用户,同时切换普通用户所在的目录 | ### 8、压缩解压缩命令 #### 8.1 压缩:gzip 命令
命令名称:gzip
命令所在路径:/bin/gzip
执行权限:所有用户
语法:gzip [文件]
功能描述:压缩文件
压缩后文件格式:.gz
范例:
gzip text01
#### 8.2 解压缩:gunzip 命令
命令名称:gunzip [= gzip -d]
命令所在路径:/bin/gunzip
执行权限:所有用户
语法:gunzip [压缩文件]
功能描述:解压缩.gz的压缩文件
范例:
$ gunzip text01.gz
tips:只能压缩文件不能压缩目录
#### 8.3 归档管理:tar 命令 > > 压缩语法:tar -zcvf 压缩后文件名 被压缩文件 > 解压缩语法 tar -zxvf 压缩文件名 -C 解压后文件所在目录 > > > * 参数1 > > > > > | 参数 | 描述 | > | --- | --- | > | -z | 操作tar.gz文件需要使用 | > | -x | 解压缩 | > | -c | 压缩 | > | -v | 显示压缩或者解压缩的执行过程信息 | > | -f | 要处理的文件file,必须放在最后 | > > > 参数2:-C 指定解压后的文件存放的位置 > > >
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
命令名称:tar
命令所在路径:/bin/tar 执行权限:所有用户 语法:tar 选项[-zcf] [压缩后文件名] [目录] -c 打包 -v 显示详细信息 -f 指定文件名 -z 打包同时压缩 功能描述:打包目录 压缩后文件格式:.tar.gz 范例: $ tar -zcf Japan.tar.gz Japan 将目录Japan打包并压缩为.tar.gz文件 tar命令解压缩语法: -x 解包 -v 显示详细信息 -f 指定解压文件 -z 解压缩 范例: $ tar -zxvf Japan.tar.gz
#### 8.4 zip 命令
命令名称:zip
命令所在路径:/usr/bin/zip
执行权限:所有用户
语法:
zip 选项[-r] [压缩后文件名] [文件或目录]
-r 压缩目录
功能描述:压缩文件或目录
压缩后文件格式:.zip
范例:
$ zip text01.zip text01
压缩文件
$ zip -r zhang.zip zhang
压缩目录
tips:会保留原文件
#### 8.5 unzip 命令
命令名称:unzip
命令所在路径:/usr/bin/unzip
执行权限:所有用户
语法:unzip [压缩文件]
功能描述:解压.zip的压缩文件
范例:$ unzip text01.zip
### 9、 网络命令
#### 9.1 write 命令
指令名称:write
指令所在路径:/usr/bin/write
执行权限:所有用户
语法:write <用户名>
功能描述:给用户发信息,以Ctrl+D保存结束
范例:
write zhang
#### 9.2 wall 命令
指令名称:wall
命令英文原意:write all
指令所在路径:/usr/bin/wall
执行权限:所有用户
语法:wall [message]
功能描述:发广播信息
范例:
wall HelloWord
#### 9.3 测试网络连通性:ping 命令
命令名称:ping
命令所在路径:/bin/ping
执行权限:所有用户
语法:ping 选项 IP地址
-c 指定发送次数
功能描述:测试网络连通性
范例:
ping 192.168.1.156
#### 9.4 查看和设置网卡信息:ifconfig
命令名称:ifconfig
命令所在路径:/sbin/ifconfig
执行权限:root
语法:ifconfig 网卡名称 IP地址
功能描述:查看和设置网卡信息
范例:
ifconfig
#### 9.5 查看发送电子邮件:mail 命令
命令名称:mail
命令所在路径:/bin/mail
执行权限:所有用户
语法:mail [用户名]
功能描述:查看发送电子邮件
范例:
mail root
#### 9.6 查看登录用户历史信息:last 命令
命令名称:last
命令所在路径:/usr/bin/last
执行权限:所有用户
语法:last
功能描述:列出目前与过去登入系统的用户信息
范例:
last
#### 9.7 显示网络相关信息:netstat 命令
命令名称:netstat
命令所在路径:/bin/netstat 执行权限:所有用户 语法:netstat [选项] 功能描述:显示网络相关信息 选项: -t : TCP协议 -u : UDP协议 -l : 监听 -r : 路由 -n : 显示IP地址和端口号 范例: netstat -tlun 查看本机监听的端口 netstat -an 查看本机所有的网络连接 netstat -rn 查看本机路由表 查看某一端口是否被占用:netstat -tunlp |grep 2181
#### 9.8 配置网络:setup 命令
命令名称:setup
命令所在路径:/usr/bin/setup
执行权限:root
语法:setup
功能描述:配置网络
范例:
setup
#### 9.9 挂载:mount 命令
命令名称:mount
命令位置:/bin/mount
执行权限:所有用户
命令语法:mount [-t 文件系统] 设备文件名 挂载点
范例:
mount -t iso9660 /dev/sr0 /mnt/cdrom
### 10、系统命令(关机重启命令…)
命令名称:shutdown
shutdown [选项] 时间
shutdown now
选项:
-c: 取消前一个关机命令
-h: 关机
-r: 重启
2.查看ip地址
ip a
ip addr
3.ping网络(测试网络连通)
ip 目标机器的ip
4.查看系统时间
date
5.注销
logout
6.重启
reboot
7.清屏
clear
8.静态查看系统进程
ps -aux
9.实时查看系统进程
top
# 快捷键
↑ 下翻
↓ 上翻
q 退出
10.关闭进程
kill 进程id
11.强制关闭进程(谨慎使用)
kill -9 进程id
12.覆盖输出
# 将命令1的执行结果,输出到后面的文件中。
`覆盖写入`
命令1 > 文件
# 例子
date > date.log
### 11、Linux服务
>
> 例如:sshd network firewalld 等
>
>
>
systemctl status 服务名
systemctl start 服务名
systemctl restart 服务名
systemctl stop 服务名
systemctl disable 服务名
systemctl enable 服务名
### 12、ip设置
>
> 服务名:network
>
>
>
[root@centos7 dirnew]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
----------------网卡对应的文件内容---------------------
TYPE=“Ethernet”
PROXY_METHOD=“none”
BROWSER_ONLY=“no”
BOOTPROTO=“none”
DEFROUTE=“yes”
IPV4_FAILURE_FATAL=“no”
IPV6INIT=“yes”
IPV6_AUTOCONF=“yes”
IPV6_DEFROUTE=“yes”
IPV6_FAILURE_FATAL=“no”
IPV6_ADDR_GEN_MODE=“stable-privacy”
NAME=“ens33”
UUID=“0bd5d8a5-fe1b-42de-82bd-bfa7d2984b95”
DEVICE=“ens33”
ONBOOT=“yes”
IPADDR=“192.168.199.8” # 修改这里的ip地址即可
PREFIX=“24”
GATEWAY=“192.168.199.2”
DNS1=“192.168.199.2”
DNS2=“8.8.8.8”
IPV6_PRIVACY=“no”
[root@centos7 dirnew]# systemctl restart network #重启网卡服务
### 13、防火墙
>
> 服务名:firewalld
>
>
>
systemctl start 服务名
systemctl stop firewalld
systemctl disable firewalld
### 14、主机名
hostname
hostnamectl set-hostname 主机名
### 15、ip映射
* 域名解析
* 本地hosts编辑
[root@centos7 ~]# vim /etc/hosts
--------------下面是文件------------------
192.168.199.8 centos7
### 16、SSH
ssh 远程linux的ip或者映射域名
### 17、免密登录
>
> 简介
> ssh登录远程linux,免去输入密码的麻烦
>
>
>
[root@centos7 ~]# ssh-keygen
------------执行结果-----------
[root@centos7 ~]# tree .ssh
.ssh
├── id_rsa # 私钥
├── id_rsa.pub # 公钥
└── known_hosts
`保存公钥的文件为/root/.ssh/authorized\_keys`
[root@centos7 .ssh]# cat id_rsa.pub > authorized_keys
[root@centos7 .ssh]# ssh-copy-id 目标主机的ip
### 18、远程拷贝
scp 本地的文件 root@远程linuxip:/远程linux的文件路径
scp -r 本地的目录 root@远程linuxip:/远程linux的文件路径
## 三、文本编辑器vim ### 1、Vim常用操作 **Vim 简介:** > > Vim是一个功能强大的全屏幕文本编辑器, 是Linux/UNIX上最常用的文本编辑器, 它的作用是建立、编辑、显示文本文件。 > Vim 没有菜单,只有命令。 > > > #### 1.1 插入命令 | 命令 | 作用 | | --- | --- | | a | 在光标所在字符后插入 | | A | 在光标所在行尾插入 | | i | 在光标所在字符前插入 | | I | 在光标所在行行首插入 | | o | 在光标下插入新行 | | O | 在光标上插入新行 | #### 1.2 定位命令 | 命令 | 作用 | | --- | --- | | :set nu | 设置行号 | | :set nonu | 取消行号 | | gg | 到第一行 | | GG | 到最后一行 | | nG | 到第n行 | | :n | 到第n行 | | $ | 移至行尾 | | 0 | 移至行首 | #### 1.3 删除命令 | 命令 | 作用 | | --- | --- | | x | 删除光标所在处字符 | | nx | 删除光标所在处后n个字符 | | dd | 删除光标所在行,ndd删除n行 | | dG | 删除光标所在行到文件末尾内容 | | D | 删除光标所在处到行尾内容 | | :n1,n2d | 删除指定范围的行 | #### 1.4 复制和剪切命令 | 命令 | 作用 | | --- | --- | | yy | 复制当前行 | | nyy | 复制当前行以下n行 | | dd | 剪切当前行 | | ndd | 剪切当前行以下n行 | | p、P | 粘贴在当前光标所在行下或者行上 | #### 1.5 保存和退出命令 | 命令 | 作用 | | --- | --- | | :w | 保存修改 | | :w 文件名 | 另存为指定文件 | | :wq | 保存修改并退出 | | ZZ | 快捷键,保存修改并退出 | | :q! | 不保存修改退出 | | :wq! | 保存修改退出(文件所有者和root均可忽略只读权限强制写入) | > > 配置MobaXterm的默认文本编辑器 > 免去vim命令的麻烦 > > > ## 四、软件安装 ### 1、软件包管理简介 #### 1.1、软件分类 > > 源码包:脚本安装 > > > 二进制包:RPM包 > > > ##### 1.1.1、**源码包** **源码包的优点是:** * 开源,如果有足够的能力,可以修改源代码 * 可以自由选择所需的功能 * 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高 * 卸载方便 **源码包的缺点** * 安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误 * 编译过程时间较长,安装比二进制安装时间长 * 因为是编译安装,安装过程中一旦报错新手很难解决 ##### 1.1.2、**RPM包** **二进制包的优点** * 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载 * 安装速度比源码包安装快的多 **二进制包缺点:** * 经过编译,不再可以看到源代码 * 功能选择不如源码包灵活 * 依赖性 ### 2、rpm命令管理 #### 2.1 、包命名与依赖性 **RPM包依赖性** * 树形依赖: a→b→c * 环形依赖: a→b→c→a * 模块依赖: 模块依赖查询网站:www.rpmfind.net #### 1.2 安装升级与卸载 > > 简介:类似于windows中的.exe程序 > > >
安装rpm软件
语法:rpm -ivh xxx.rpm
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性
查看系统中是否已安装的过该rpm软件
语法:rpm -qa 软件名
卸载rpm软件
语法:rpm -e 软件名
选项:
-e(erase) 卸载
–nodeps 不检查依赖性
升级rpm软件
语法:rpm -Uvh 包全名
选项:
-U(upgrade) 升级
例子:安装tree工具
作用:查看某个目录下的文件信息
tree -L 2 要查看的路径
### 3、yum在线管理 > > yum基于rpm实现的,提供了除了rpm的安装软件、卸载软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。 > > > #### 3.1 yum 命令
1.列出所有可以安装的软件包
yum list
查询所有可用软件包列表
2.查找软件包
yum search all 软件名
yum search 关键字
搜索服务器上所有和关键字相关的包
3.安装软件
yum –y install 包名
选项:
install 安装
-y 自动回答yes
4.升级软件
yum -y update 包名
选项:
update 升级
-y 自动回答yes
5.卸载软件
yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes
#### 3.2 yum软件组管理命令
yum grouplist
列出所有可用的软件组列表
yum groupinstall 软件组名
安装指定软件组,组名可以由grouplist查询出来
yum groupremove 软件组名
卸载指定软件组
## 五、shell 编程 ### 5.1、shell 概述 #### 5.1.1 shell 是什么 * Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 * Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。 #### 5.1.2 shell 的分类 * Bourne Shell:从1979起Unix就开始使用Bourne Shell,Bourne Shell的主文件名为sh。 * C Shell: C Shell主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名 * Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh * Bash: Bash与sh兼容,现在使用的Linux 就是使用Bash作为用户的基本Shell。 ### 5.2、shell 脚本的执行方式 #### 5.2.1 echo 输出命令
命令名称:echo
echo [选项] [输出内容]
选项: -e: 支持反斜线控制的字符转换
| 控制字符 | 作用 | | --- | --- | | \ | 输出\ | | \a | 输出警告音 | | \b | 退格键,向左删除键 | | \c | 取消输出行末的换行符,和“-n”选项一致 | | \e | ESCAPE键 | | \f | 换页符 | | \n | 换行符 | | \r | 回车键 | | \t | 制表符,Tab键 | | \v | 直制表符 | | \0nnn | 按照八进制ASCII码表输出字符,0为数字零,nnn为三位八进制数 | | \xhh | 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数 | **示例:**
[root@zhangRabbitMQ zhang]# echo -e “ab\bc”
ac
[root@zhangRabbitMQ zhang]# echo -e “a\tb\tc\nd\te\tf”
a b c
d e f
#### 5.2.2 编写脚本
[root@zhangRabbitMQ zhang]# vi /tmp/hello.sh
#!/bin/bash
echo “helloword”
#### 5.2.3 执行脚本
[root@zhangRabbitMQ zhang]# chmod 755 /tmp/hello.sh
[root@zhangRabbitMQ zhang]# /tmp/hello.sh
helloword
### 5.3、Bash的基本功能 #### 5.3.1 历史命令与命令补全 > > 历史命令:history > > >
命令名称:history
[root@localhost ~]# history [选项] [历史命令保存文件]
选项:
-c: 清空历史命令
-w: 把缓存中的历史命令写入历史命令保存文件
~/.bash_history
* 历史命令默认会保存1000条,可以在环境变量配置文件/etc/profile中进行修改 **历史命令的调用** * 使用上、下箭头调用以前的历史命令 * 使用“!n”重复执行第n条历史命令 * 使用“!!”重复执行上一条命令 * 使用“!字串”重复执行最后一条以该字串开头的命令 **命令与文件补全** * 在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”键就会自动进行补全 #### 5.3.2 命名别名与常用快捷键 **命令别名**
[root@localhost ~]# alias 别名=‘原命令’
#设定命令别名
[root@localhost ~]# alias
#查询命令别名
**命令的执行顺序** * 1. 第一顺位执行用绝对路径或相对路径执行的命令。 * 2. 第二顺位执行别名。 * 3. 第三顺位执行Bash的内部命令。 * 4. 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。 让别名永久生效,需要把配置写入配置文件/root/.bashrc中 **Bash 常用快捷键**  #### 5.3.3 输入输出重定向  **同时输出正确和错误**  #### 5.3.4 多命令执行与管道符 **多命令顺序执行**   **管道符:|**
命令名称:|
命令格式:
[root@localhost ~]# 命令1 | 命令2
#命令1的正确输出作为命令2的操作对象
例子:
[root@localhost ~]# ll -a /etc/ | more
[root@localhost ~]# netstat -an | grep “ESTABLISHED”
查找aries用户:cat /etc/passwd | grep -n “baizhi”
查找aries组:cat /etc/group | grep -n “baizhi”
查找sshd进程:ps -aux | grep sshd
#### 5.3.5 通配符与其他特殊符号 **通配符**  **其他特殊符号**  ### 5.4、Bash 变量 #### 5.4.1 用户自定义变量 **什么是变量** * 变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使用变量可以保存有用信息,使系统获知用户相关设置,变量也可以用于保存暂时信息。 **变量设置规则** * 变量名称可以由字母、数字和下划线组成,但是不能以数字开头。如果变量名是“2name”则是错误的。 * 在Bash中,变量的默认类型都是字符串型,如果要进行数值运算,则必修指定变量类型为数值型。 * 变量用等号连接值,等号左右两侧不能有空格。 * 变量的值如果有空格,需要使用单引号或双引号包括。 * 在变量的值中,可以使用“\”转义符。 * 如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含“ 变量名”或用 变量名”或用 变量名”或用{变量名}包含。 * 如果是把命令的结果作为变量值赋予变量,则需要使用反引号或$()包含命令。 * 环境变量名建议大写,便于区分。 **变量分类** * 用户自定义变量 环境变量:这种变量中主要保存的是和系统操作环境相关的数据。 * 位置参数变量:这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的。 * 预定义变量:是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的。 **本地变量** * 变量定义
[root@localhost ~]# name=“shen chao”
* 变量叠加
[root@localhost ~]# aa=123
[root@localhost ~]# aa="$aa"456
[root@localhost ~]# aa=${aa}789
* 变量调用
[root@localhost ~]# echo $name
* 变量查看
[root@localhost ~]# set
查看当前系统全部变量
* 变量删除
[root@localhost ~]# unset name
#### 5.4.2 环境变量
**环境变量是什么**
* 用户自定义变量只在当前的Shell中生效,而环境变量会在当前Shell和这个Shell的所有子Shell当中生效。如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的Shell中生效
**设置环境变量**
export 变量名=变量值
申明变量
env
查询变量
unset 变量名
删除变量
**系统常见环境变量**
PATH:系统查找命令的路径
[root@localhost ~]# echo $PATH /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin: /sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PATH=“$PATH”:/root/sh
PATH变量叠加
PS1:定义系统提示符的变量
\d:显示日期,格式为“星期 月 日”
\h:显示简写主机名。如默认主机名“localhost”
\t:显示24小时制时间,格式为“HH:MM:SS”
\T:显示12小时制时间,格式为“HH:MM:SS”
\A:显示24小时制时间,格式为“HH:MM”
\u:显示当前用户名
\w:显示当前所在目录的完整名称
\W:显示当前所在目录的最后一个目录
#:执行的第几个命令
$:提示符。如果是root用户会显示提示符为“#”,如果是普通用户会显示提示符为“$”
示例:
[root@localhost ~]# PS1=‘[\u@\t \w]$ ’
[root@04:50:08 /usr/local/src]#PS1=’[\u@@ \h # \W]$‘
[root@04:53 上午 localhost 31 src]#PS1='[\u@\h \W]$ ’
#### 5.4.3 位置参数变量
**位置参数变量**

示例:
#!/bin/bash
num1=$1
num2=
2
s
u
m
=
2 sum=
2sum=(( $num1 + $num2))
#变量sum的和是num1加num2
echo $sum
#打印变量sum的值
[root@zhangRabbitMQ zhang]# /tmp/sum.sh 1 2
3
#### 5.4.4 预定义变量  ### 5.5、Bash运算符 #### 5.5.1 数值运算与运算符 > > declare声明变量类型 > > > **数值运算**
[root@localhost ~]# declare [+/-][选项] 变量名
选项: -: 给变量设定类型属性 +: 取消变量的类型属性 -i: 将变量声明为整数型(integer) -x: 将变量声明为环境变量 -p: 显示指定变量的被声明的类型 方法1: [root@localhost ~]# aa=11 [root@localhost ~]# bb=22 #给变量aa和bb赋值 [root@localhost ~]# declare -i cc=$aa+$bb 方法2:expr或let数值运算工具 [root@localhost ~]# aa=11 [root@localhost ~]# bb=22 #给变量aa和变量bb赋值 [root@localhost ~]# dd=$(expr $aa + $bb) #dd的值是aa和bb的和。注意“+”号左右两侧必须有空格 方法3:“$((运算式))”或“$[运算式]” (推荐) [root@localhost ~]# aa=11 [root@localhost ~]# bb=22 [root@localhost ~]# ff=$(( $aa+$bb )) [root@localhost ~]# gg=$[ $aa+$bb ]
### 5.6、环境变量配置文件 #### 5.6.1 配置文件简介 **source命令** > > source命令通常用于保留、更改当前shell中的环境变量。 > > >
[root@localhost ~]# source 配置文件
或
[root@localhost ~]# . 配置文件
**环境变量配置文件简介** * 环境变量配置文件中主要是定义对系统的操作环境生效的系统默认环境变量,比如PATH、HISTSIZE、PS1、HOSTNAME等默认环境变量。 * /etc/profile * /etc/profile.d/\*.sh * ~/.bash\_profile * ~/.bashrc * /etc/bashrc #### 5.6.2 环境变量配置文件作用 **配置文件列表如下:** * /etc/profile * /etc/profile.d/\*.sh * ~/.bash\_profile * ~/.bashrc * /etc/bashrc `tips:/etc 目录下的对所有用户都生效` `~/.bash_profile 和 ~/.bashrc -> 每个用户自己的配置文件,只对用户生效。` **配置文件读取顺序**  `上图从左到右如果有叠加。后面的命令会覆盖前面的命令。` **/etc/profile的作用:** * USER变量: * LOGNAME变量: * MAIL变量: * PATH变量: * HOSTNAME变量: * HISTSIZE变量: * umask: * 调用/etc/profile.d/\*.sh文件 **~/.bash\_profile的作用** * 用了~/.bashrc文件。 * 在PATH变量后面加入了“:$HOME/bin”这个目录 #### 5.6.3 其他配置文件和登录信息 **注销时生效的环境变量配置文件** * ~/.bash\_logout **其他配置文件** * ~/bash\_history **Shell登录信息** * 本地终端欢迎信息: /etc/issue ### 5.7、正则表达式 #### 5.7.1 正则表达式与通配符 * 正则表达式用来在文件中匹配符合条件的字符串,`正则是包含匹配`。grep、awk、sed等命令可以支持正则表达式。 * 通配符用来匹配符合条件的文件名,`通配符是完全匹配`。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配了。 **基础正则表达式** 
示例1:“*” 前一个字符匹配0次或多次
● grep "a\*" test_rule.txt
#匹配所有内容,包括空白行
● grep "aa\*" test_rule.txt
#匹配至少包含有一个a的行
● grep "aaa\*" test_rule.txt
#匹配最少包含两个连续a的字符串
● grep "aaaaa\*" test_rule.txt
#则会匹配最少包含四个个连续a的字符串
示例2:“.” 匹配除了换行符外任意一个字符
● grep "s..d" test_rule.txt
#“s..d”会匹配在s和d这两个字母之间一定有两个字符的单词
● grep "s.\*d" test_rule.txt
#匹配在s和d字母之间有任意字符
● grep ".\*" test_rule.txt
#匹配所有内容,0或多个任意字符
示例3: “^” 匹配行首,“$” 匹配行尾
● grep "^M" test_rule.txt
#匹配以大写“M”开头的行
● grep "n$" test_rule.txt
#匹配以小写“n”结尾的行
● grep -n "^$" test_rule.txt
#会匹配空白行
示例4:“[]” 匹配中括号中指定的任意一个字符,只匹配一个字符
● grep "s[ao]id" test_rule.txt
#匹配s和i字母中,要不是a、要不是o
● grep "[0-9]" test_rule.txt
#匹配任意一个数字
● grep "^[a-z]" test_rule.txt
#匹配用小写字母开头的行
示例5:“[^]” 匹配除中括号的字符以外的任意一个字符
● grep "^[â-z]" test_rule.txt
#匹配不用小写字母开头的行
● grep "^[â-zA-Z]" test_rule.txt
#匹配不用字母开头的行 “\” 转义符
● grep "\.$" test_rule.txt
#匹配使用“.”结尾的行
示例6:“{n}” 表示其前面的字符恰好出现n次
● grep "a\{3\}" test_rule.txt
#匹配a字母连续出现三次的字符串
● grep "[0-9]\{3\}" test_rule.txt
#匹配包含连续的三个数字的字符串
示例7:“{n,}” 表示其前面的字符出现不小于n次
● grep "^[0-9]\{3,\}[a-z]" test_rule.txt
#匹配最少用连续三个数字开头的行
示例8:“{n,m}” 匹配其前面的字符至少出现n次,最多出现m次
● grep "sa\{1,3\}i" test_rule.txt
#匹配在字母s和字母i之间有最少一个a,最多三个a
### 5.8 字符串截取命令
#### 5.8.1 cut 字段提取命令
[root@localhost ~]# cut [选项] 文件名
选项:
-f 列号: 提取第几列
-d 分隔符: 按照指定分隔符分割列
1.创建演示文件student.txt
[root@localhost ~]# vi student.txt
ID Name gender Mark
1 Liming M 86
2 Sc M 90
3 Gao M 83
示例
[root@localhost ~]# cut -f 2 student.txt
#提取第二列
[root@localhost ~]# cut -f 2,3 student.txt
#提取第二第三列
[root@localhost ~]# cut -d ":" -f 1,3 /etc/passwd
#以:为分隔符提取第一第三列
2.cut命令的局限
[root@localhost ~]# df -h | cut -d " " -f 1,3
#有空格时提取会出问题,不能识别多个空格情况
#### 5.8.2 printf 命令
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
总计 1000+ 道面试题, 内容 又全含金量又高
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密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Liming M 86
2 Sc M 90
3 Gao M 83
示例
[root@localhost ~]# cut -f 2 student.txt
#提取第二列
[root@localhost ~]# cut -f 2,3 student.txt
#提取第二第三列
[root@localhost ~]# cut -d ":" -f 1,3 /etc/passwd
#以:为分隔符提取第一第三列
2.cut命令的局限
[root@localhost ~]# df -h | cut -d " " -f 1,3
#有空格时提取会出问题,不能识别多个空格情况
#### 5.8.2 printf 命令
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
[外链图片转存中…(img-D51cPoQi-1714282503026)]
本份面试集锦涵盖了
总计 1000+ 道面试题, 内容 又全含金量又高
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密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。