linux 教程 03 软件安装
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的。
常用软件
8081端口
Jenkins
http://106.75.105.152:8081/
8089 端口
frp 管理端口
http://106.75.105.152:8089/
安装 frp 服务端
这里配置 frps.ini 后即可
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的。
8081端口
Jenkins
http://106.75.105.152:8081/
8089 端口
frp 管理端口
http://106.75.105.152:8089/
安装 frp 服务端
这里配置 frps.ini 后即可
Apache ZooKeeper 是一个开发和维护开源服务器的项目,它支持高度可靠的分布式协调。
zookeeper-3.4.14 下载地址
https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
通过查阅 Zookeeper3.5 的官方文档,发现这是 Zookeeper3.5 的新特性:
1 | New in 3.5.0: The AdminServer is an embedded Jetty server that provides an HTTP interface to the four letter word commands. By default, the server is started on port 8080, and commands are issued by going to the URL "/commands/[command name]", e.g., http://localhost:8080/commands/stat. The command response is returned as JSON. Unlike the original protocol, commands are not restricted to four-letter names, and commands can have multiple names; for instance, "stmk" can also be referred to as "set_trace_mask". To view a list of all available commands, point a browser to the URL /commands (e.g., http://localhost:8080/commands). See the AdminServer configuration options for how to change the port and URLs. |
这是 Zookeeper AdminServer,默认使用 8080 端口,它的配置属性如下:

我们可以修改在 zoo.cfg 中修改 AdminServer 的端口:
1 | admin.serverPort=8888 |
保存后,再次启动,Zookeeper 启动成功。
这是 zookeeper 自己搞了一个简易应用服务器,可以查看一些信息
whoami
要查看当前登录用户的用户名
who am i
表示打开当前伪终端的用户的用户名
创建用户
useradd 只创建用户,创建完了用 passwd xxx 去设置新用户的密码。
修改密码
passwd 命令是 password 这个英语单词的缩写,表示“密码”
删除用户
deluser newname
单单用 deluser 命令,不加参数的话,只会删除用户,但是不会删除在 /home 目录中的用户目录。如果你想要连此用户的家目录也一并删除,可以加上 –remove-home 这个参数,如下:
1 | deluser –remove-home newname |
创建组
addgroup是 add 和 group 的缩写,add是英语“添加”的意思,group是英语“群组”的意思。所以addgroup命令用于添加一个新的群组。
1 | sudo addgroup siatstudent |
删除组
delgroup 是 delete 和 group 的缩写,delete 是英语“删除”的意思,group 是英语“群组”的意思。所以 delgroup 命令用于删除一个已存在的群组。
查看组
Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
https://blog.csdn.net/jiandanjinxin/article/details/51920812
su命令 和 su - 命令最大的本质区别就是:前者只是切换了 root 身份,但 Shell 环境仍然是普通用户的 Shell;而后者连用户和 Shell 环境一起切换成 root 身份了。
Shell 变量
使用 declare 命令创建一个变量名为 tmp 的变量:declare tmp
其实也可以不用 declare 预声明一个变量,直接即用即创建,这里只是告诉你 declare 的作用,这在创建其它指定类型的变量(如数组)时会用到。
使用 = 号赋值运算符,将变量 tmp 赋值为 shiyanlou。注意,与其他语言不同的是, Shell 中的赋值操作,= 两边不可以输入空格,否则会报错。
读取变量的值,使用 echo 命令和 $ 符号($ 符号用于表示引用一个变量的值,初学者经常忘记输入)
通常我们会涉及到的变量类型有三种:
当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
Shell 本身内建的变量。
从自定义变量导出的环境变量。
也有三个与上述三种环境变量相关的命令:set,env,export。这三个命令很相似,都是用于打印环境变量信息,区别在于涉及的变量范围不同。详见下表:
命令说明
set 显示当前 Shell 所有变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量。
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行。
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量。

export 小于 env 小于 set
注意:为了与普通变量区分,通常我们习惯将环境变量名设为大写。
永久生效
但是问题来了,当你关机后,或者关闭当前的 shell 之后,环境变量就没了啊。怎么才能让环境变量永久生效呢?
按变量的生存周期来划分,Linux 变量可分为两类:
这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:
这个 .profile 只对当前用户永久生效。因为它保存在当前用户的 Home 目录下,当切换用户时,工作目录可能一并被切换到对应的目录中,这个文件就无法生效。
一个简单的示例
1 | #!/bin/bash |
为文件添加可执行权限,否则执行会报错没有权限:chmod 755 hello_shell.sh
并执行脚本 ./hello_shell.sh
添加自定义路径到“ PATH ”环境变量, 注意这里一定要使用绝对路径。PATH=$PATH:/home/shiyanlou/mybin
在每个用户的 home 目录中有一个 Shell 每次启动时会默认执行一个配置脚本,以初始化环境,包括添加一些用户自定义环境变量等等。实验楼的环境使用的 Shell 是 zsh,它的配置文件是 .zshrc,相应的如果使用的 Shell 是 Bash,则配置文件为 .bashrc。它们在 etc 下还都有一个或多个全局的配置文件,不过我们一般只修改用户目录下的配置文件。Shell 的种类有很多,可以使用 cat /etc/shells 命令查看当前系统已安装的 Shell。
$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
命令中 >> 表示将标准输出以追加的方式重定向到一个文件中,注意前面用到的 > 是以覆盖的方式重定向到一个文件中
变量的修改有以下几种方式:
变量设置方式 说明
${变量名#匹配字串} 从头向后开始匹配,删除符合匹配字串的最短数据
${变量名##匹配字串} 从头向后开始匹配,删除符合匹配字串的最长数据
${变量名%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最短数据
${变量名%%匹配字串} 从尾向前开始匹配,删除符合匹配字串的最长数据
${变量名/旧的字串/新的字串} 将符合旧字串的第一个字串替换为新的字串
${变量名//旧的字串/新的字串} 将符合旧字串的全部字串替换为新的字串
变量删除
可以使用 unset 命令删除一个环境变量:
$ unset mypath
如何让环境变量立即生效
前面我们在 Shell 中修改了一个配置脚本文件之后(比如 zsh 的配置文件 home 目录下的 .zshrc),每次都要退出终端重新打开甚至重启主机之后其才能生效,很是麻烦,我们可以使用 source 命令来让其立即生效,如:
1 | cd /home/shiyanlou |
source 命令还有一个别名就是 .,上面的命令如果替换成 . 的方式就该是:
在使用 . 的时候,需要注意与表示当前路径的那个点区分开。
. ./.zshrc