8-14随堂笔记

扩展搭建本地yum源步骤

1,reposync 源同步到本地

2. createrepo 创建 repodata repodata 存储了各个rpm包的依赖关系

3. 搭建http的服务器/nginx服务将源发布

4. 配置客户端使用 vim /etc/yum.repos.d/base.repo

baserul=http:// ..../

enabled=1

gpgcheck=0

 

防火墙关闭方式

systemctl stop firewalld

systemctl disable firewalld

selinux

 

安全机制

enforcing改成disable则是永久关闭

 

 

开启之前安装好的httpd,可以看到网页上就有对应的文件了

 

 

Shell

1,命令历史
2,命令补全
3,命令别名
4,通配符
5,输入输出重定向
6,管道符
7,作业控制
8Shell 变量
9,环境变量配置文件

 

  1. Linux 可以记录每个用户所使用的命令, 并记录到 ~/.bash_history 文件中
    当用户以 bash 登入 Linux 主机后, 系统会主动地由 ~/.bash_history 读取命令历史
    当用户注销时, 会将最近的 HISTFILESIZE 个记录写入 ~/.bash_history 文件中,1000条默认

当用户以 bash 登入 Linux 主机后, 系统会主动地由 ~/.bash_history 读取命令历史

/etc/profile 修改地址

重点:

1, 命令历史

Linux 可以记录每个用户所使用的命令, 并记录到 ~/.bash_history 文件中

当用户以 bash 登入 Linux 主机后, 系统会主动地由 ~/.bash_history 读取命令历史

当用户注销时, 会将最近的 HISTFILESIZE 个记录写入 ~/.bash_history 文件中

这里默认最大记录1000条,记录之前操作的命令

变量则为histor

history -c: 清除当前内存内的全部命令记忆

history -r: history 文件中的命令记忆读出到当前内存中 #一般登录时会自动进行

history -w: 将目前的内存中的命令记忆写入 history 文件中 # 一般登出时会自动进行

配置文件在etc/profile,可以配置多少条

 

 

  1. 命令补全 TAB

常用的对目录或者目录下的文件输入第一个字符,TAB可以自动弹出,不再描述

3,命令别名 alias例如,将ls –l 命令用成111

删除alias用unalias

查看有哪些存在的alias等,cat .bashrc

4. 通配符与特殊符号

符号

意义

*

代表0-无穷个 任意字符

?

代表有且只有一个字符

[ ]

代表有且仅有一个字符,且为[...]中所枚举的其中一个, 如 [13579]

[-]

同上,只不过是一个范围,如[ 0-9 ],[a-z]等

[^]

有且仅有一个,且不是所枚举的任何字符,如:[^a-zA-Z] 代表该位不是字母

这里不做详细的解释,主要是^代表非

[^][^a-z] 则代表不以小写字母开头的

[A-Za-z0-9]如果需要匹配字母和数字,则可以这么写

 

  1. 特殊符号

符号

内容

#

批注号

\

转义符号,将特殊字符或通配符还原成一般字符

|

管道符

;

命令衔接符,连续执行两条命令

~

当前用户家目录

$

取用变量符号

&

工作控制,将指令变成后台工作

!

逻辑非

>、>>

数据流重定向,output

<、<<

数据流重定向,input

' '

单引号,无法引用变量

" "

双引号,可以引用变量

\转义符,举例说如果我们需要查找一个特定word

这种\则代表转义

 

& 让程序去后台执行,这个也是非常重要的

正常写命令这里没有写完的时候会卡住的

如果加了&则可以去后台运行

dd if=/dev/zero of=bigfile bs=1M count=1000 &

可以实际操作,不再举例

也可以用top或者或者top &

5. 输入输出重定向

 流程图如下

 

标准输出,即命令成功执行时,将执行结果输出至文件 or 设备

符号:> (覆盖导出) 或 >> (追加导出)

例如将1覆盖到1.txt的目录下

 

再覆盖一次2,发现这里是覆盖,不是追加

>>则代表追加

 

6. 管道符

管道的概念与数据流重定向不同,管道只是在输出至屏幕前多加一道工序,而配合管道的这些工序,往往是字符处理软件

例子:

ls /etc/ | more # 原本要直接输出至屏幕的信息, 用 more 进行了加工

ls /etc/ | grep "bash" # 原本直接输出至屏幕的信息, 用 grep "bash" 进行了加工, 筛选出了关键字

 

7. 作业控制

foreground: 前台, 平常执行命令的界面,通用命令fg

background: 后台, 看不到的地方

什么样的工作适合放到后台: 不需要与用户交互的命令

放入后台的工作是无法用 Ctrl + c 来终止的

后台的工作有两种状态: 暂停(stop) 和 运行中( running)

 

例如

 

按下 ctrl+z, 将正在执行的top扔到后台且置为暂停 [1]-  已停止

例如:

查看后台命令用jobs

 Job参数:

-l:同时列出任务的 PID

-r: 仅列出后台中处于 "running" 的任务

-s: 仅列出后台中处于 "stop" 的任务

 

将后台工作拿回到前台来(fg)

 

将后台暂停的任务激活用bg

直接移除后台 则使用kill或者pkill

kill 发送信号给一个或多个进程(经常用来杀死一个进程)

 

一般命令是kill -9 pid

上面我们再看的时候则只有一个top进程

 

8. Shell 变量

之前我们接触过PATH,它是shell预设的一个变量

通常shell预设的变量都是大写的。变量就是使用一个较简单 的字符串来替代某些具有特殊意义的设定以及数据

1)预设的变量除了PATH外,可以使用env命令来查看系统常用的变量

2)用户自定义变量

3)变量名规则:字母、数字下划线、首位不能为数字

4)变量的累加,当变量中有其他的变量是可以将该变量使用双引号单独引起来。

例如

可以用w表示在那个TTY下

在当前终端下设置的变量在其他的shell下是没有的,因为还没有进行全局变量。在一个终端下执行bash就进入到了一个子shell,也就是打开了另一个shell

要想使该终端下的所有子shell都能识别某个变量,需要进行全局变量。并且是向下生效的。

注意-1:如果变量值中存在空格,需要用单引号或双引号将变量值括起来

注意-2:如果变量值中有引用其他变量,需要用双引号将变量值括起来

变量的相关命令echo

功能:打印变量的内容

[root@choco-01 ~]# echo $LANG zh_CN.UTF-8

export

功能:将变量转换为环境变量

声明变量为环境变量,进入子 shell 后,变量仍让有效

常用的环境变量有(这里不再举例)

常用环境变量

HOME: 当前用户的家目录

HOSTNAME: 该主机的主机名

USER: 当前用户的用户名

SHELL: 当前使用的 shell 类型

HISTSIZE: 可存储的历史命令条数

MAIL: 当前用户的邮箱

PATH: 可执行命令的所在目录

LANG: 当前语系

PS1: 命令提示符的格式, 可玩性较高, 但工作中不常用, 可自行 manbash 查看 PS1 的设置方法

PS2: 输入命令时强制换行后的提示符

OSTYPE: 当前操作系统类型

MACHTYPE: 安装的机器类型

HOSTTYPE: 主机的位数, x86 还是 x86_64

 

9. 环境变量配置文件

login 与 non-login

ogin shell:取得 bash 时需要完整的登录流程。如由 tty1-tty6登录时,需要输入用户的账号和密码

读取的文件:

/etc/profile :系统整体的设定,对所有用户皆生效

~/.bash_profile 或 ~/.bash_login 或 ~/.profile:用户的个人设定

但是各个文件中可能又会调用其他的文件,所以一般来说,login shell 读取的文件如下图所示:

non-login shell:取得 bash 接口的方法不需要重复登录的举动,如在 bash 环境下,再次执行bash命令进入子 shell 时,不需要输入账号和密码

  1. /etc/profile (login shell)

该文件会根据用户的 UID 设定好许多环境变量以及参数

 

 

设定环境变量

PATH:根据 UID 决定PATH 变量是否要包含 sbin 目录

USER:根据 id 命令的结果,显示用户名

LOGNAME:等于 USER

MAIL:配置好用户的邮箱

HOSTNAME:根据 hostname 指令,决定该变量值

HISTSIZE:直接设定历史命令记录的条数为 1000

 

~/.bash_profile (login shell)

根据之前流程图的描述,bash shell 读取完通用配置后,才开始进行用户个性化配置的读取。

其实用户个性化配置的文件不止 ~/.bash_profile 一个,还可能有 ~/.bahs_login 和 ~/.profile

所以我们往往只能见到 ~/.bash_profile 而已

Bash profile的内容如下

他的意思是/.bash_profile 调取了 ~/.bashrc 文件, 并将 ~/bin 目录加入到 PATH 变量中

~/.bashrc

查看catBashrc

当通过 non-login shell 取得 bash 后, 仅会读取 ~/.bashrc 文件

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_41654660/article/details/81738923
今日推荐