丙午🐎年

acc8226 的博客

设置日期和时间

liunx 系统中两种时间: 一种是 UTC, 另一种是本地时间,两者区别为时区不同。

查看当前时间 date

1
2
date
2020年 03月 29日 星期日 18:52:32 CST

查看当前时区 date -R

1
2
date -R
Sun, 29 Mar 2020 18:53:41 +0800

查看 UTC 时间 data -u

1
2
date -u
2020年 03月 29日 星期日 10:53:31 UTC

修改日期 data -s

1
2
3
# 使用 data -s
date -s "2018-05-17"
date -s "2020-3-27 11:59:11"
阅读全文 »

Apache ZooKeeper 是一个开发和维护开源服务器的项目,它支持高度可靠的分布式协调。

下载地址

zookeeper-3.4.14 下载地址
https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

遇到过的问题

Zookeeper 3.5 启动时 8080 端口被占用

通过查阅 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 自己搞了一个简易应用服务器,可以查看一些信息

listint and issuing commands

阅读全文 »

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 命令用于删除一个已存在的群组。

查看组

chmod 命令:修改文件的访问权限

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 变量可分为两类:

  • 永久的:需要修改配置文件,变量永久生效;
  • 临时的:使用 export 命令行声明即可,变量在关闭 shell 时失效。

这里介绍两个重要文件 /etc/bashrc(有的 Linux 没有这个文件) 和 /etc/profile ,它们分别存放的是 shell 变量和环境变量。还有要注意区别的是每个用户目录下的一个隐藏文件:

这个 .profile 只对当前用户永久生效。因为它保存在当前用户的 Home 目录下,当切换用户时,工作目录可能一并被切换到对应的目录中,这个文件就无法生效。

创建 shell 脚本文件

一个简单的示例

1
2
3
4
5
6
7
#!/bin/bash

for ((i=0; i<10; i++));do
echo "hello shell"
done

exit 0

为文件添加可执行权限,否则执行会报错没有权限: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
2
cd /home/shiyanlou
source .zshrc

source 命令还有一个别名就是 .,上面的命令如果替换成 . 的方式就该是:
在使用 . 的时候,需要注意与表示当前路径的那个点区分开。
. ./.zshrc

参考

Linux 基础入门(新版)_Linux - 实验楼

0%