From a76697f472274568796a8e898c89cc8117a6b787 Mon Sep 17 00:00:00 2001 From: Fang Date: Thu, 20 Jun 2024 20:55:55 +0800 Subject: [PATCH] 1 --- ...23\351\241\271\347\273\203\344\271\240.md" | 149 ++++++++ ...46\347\232\204\345\256\211\350\243\205.md" | 26 ++ ...04\344\270\203\346\255\245\350\265\260.md" | 55 +++ ...- \351\207\215\345\256\232\345\220\221.md" | 72 ++++ ...67\347\273\204\347\256\241\347\220\206.md" | 217 ++++++++++++ ...73\345\212\241\347\273\203\344\271\240.md" | 174 +++++++++ ...57\345\242\203\345\217\230\351\207\217.md" | 329 ++++++++++++++++++ ...240619 - linux\350\277\233\347\250\213.md" | 56 +++ 8 files changed, 1078 insertions(+) create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240605 - vim\347\274\226\350\276\221\345\231\250\344\270\223\351\241\271\347\273\203\344\271\240.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240608 - ssl\350\257\201\344\271\246\347\232\204\345\256\211\350\243\205.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240611 - Debian\347\232\204\344\270\203\346\255\245\350\265\260.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240612 - \351\207\215\345\256\232\345\220\221.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240614 - \347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240615 - \345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240618 - \347\216\257\345\242\203\345\217\230\351\207\217.md" create mode 100644 "12\346\226\271\347\277\214\346\201\272/20240619 - linux\350\277\233\347\250\213.md" diff --git "a/12\346\226\271\347\277\214\346\201\272/20240605 - vim\347\274\226\350\276\221\345\231\250\344\270\223\351\241\271\347\273\203\344\271\240.md" "b/12\346\226\271\347\277\214\346\201\272/20240605 - vim\347\274\226\350\276\221\345\231\250\344\270\223\351\241\271\347\273\203\344\271\240.md" new file mode 100644 index 0000000..d82ca9c --- /dev/null +++ "b/12\346\226\271\347\277\214\346\201\272/20240605 - vim\347\274\226\350\276\221\345\231\250\344\270\223\351\241\271\347\273\203\344\271\240.md" @@ -0,0 +1,149 @@ +1. vi 编辑器有几种模式? + + ```bash + 三种模式(命令、编辑、末行模式) + ``` + + + +2. 如何进入 vi 编辑器的插入模式 + + ```bash + 1.按insert进入编辑模式 + 2.按i,在光标前插入 + 3.按a,在光标后插入 + 4.按o,在光标下一行插入 + ``` + + + +3. 如何进入 vi 编辑器的可视化模式 + + ```bash + 1.按v 字符选择模式:选中光标经过的所有字符 + 2.按V 行选择模式:选中光标经过的所有行 + 3.按Ctrl+v 块选择模式:选中一整个矩形框表示的所有文本 + ``` + + + +4. 在 vi 编辑器中如何复制一行 + + ```bash + yy : 复制当前整行 + ``` + + + +5. 在 vi 编辑器中如何进行粘贴 + + ```bash + 1.按p :在当前位置后粘贴 + 2.按P :在当前位置前粘贴 + ``` + + + +6. 如何删除从 3 行到 15 行的所有数据 + + ```bash + 按esc回到命令模式,:3,15d + ``` + + + +7. vim练习: + + - 光标移动练习,命令模式下: + + - 单位级 h j k l + - 单词级 w e b + - 块级 gg G 0 ^ $ H M L ngg nj nk + + 把下列句子按照第一句的正确顺序修改好并把多余的空行删除 + + ``` + this is a simple easy vim tutorial + + tutorial simple a easy this vim is + is this tutorial vim simple a easy + + + tutorial vim this is a easy simple + tutorial easy vim simple a this is + simple a vim easy tutorial is this + + tutorial is easy vim a simple this + + + vim simple this tutorial a easy is + a vim tutorial simple easy is this + + + easy a simple vim is tutorial this + vim tutorial is a easy simple this + a this vim tutorial is easy simple + this tutorial simple easy a is vim + + + easy tutorial this simple a is vim + a tutorial easy is this simple vim + + a tutorial vim is easy this simple + simple this easy is vim tutorial a + + this tutorial is a easy simple vim + vim is tutorial simple this easy a + + vim is simple this tutorial easy a + easy a simple is vim this tutorial + vim is tutorial simple a easy this + this vim is tutorial simple easy a + ``` + + 先敲出以下代码,然后修正以下代码中的错误单词、重复单词、错误格式、多余行,修改函数名为 typing 并为定时器添加 300 毫秒延迟 + + ``` + const bbb = () => { + // this is is a description + // + // another descriptttion + const timer = setTimeout(( ) => { + console.log(that) alert('cool!') + // awosome man ! + }) + } + ``` + + 尝试在下面的文本中进行复制粘贴练习 + + ``` + 删除这一行 + 粘贴到这一行下面 + 剪切 ABC 并把它粘贴到 XYZ 前面,使这部分内容看起来像 + 剪切 并把它粘贴到 ABC XYZ 前面。 + ``` + + 尝试修改下列文本的大小写 + + ``` + Change this line to UPPERCASE, THEN TO lowercase. + ``` + + 按下面的说明进行操作 + + ``` + 按 dd 删除本行 + 按 . 重复删除操作 + 2. 再删除两行 + 这行也没了 + p 把刚才删掉的粘回来 + 3. 又多出 6 行 + ``` + + 左缩进、右缩进练习 + + ``` + 在这一行上依次按 3>>,<< 和 + +将标准输出保存到文件中 + +### 2.追加输出重定向 >> + +将标准输出追加到一个文件的末尾,如果文件不存在,则创建它。 + +### 3.输入重定向 < + +将文件的内容作为命令的输入 + +### 4.输入重定向 << + +```bash +command << DELIMITER +... +... +DELIMITER +#在这个语法中,command 是要执行的命令,DELIMITER 是一个自定义的分界符,... 表示要输入的多行文本。当Shell遇到<<时,它会等待用户输入多行文本,直到遇到DELIMITER为止。 +``` + +### 5.错误输出重定向 2> + +将命令的错误输出重定向到一个文件 + +### 6.错误输出追加重定向 2>> + +将命令的错误输出追加到一个文件 + +### 7.同时重定向标准输出和标准错误输出 + +```bash +command &> output_and_error_log.txt # 正确和错误原版混搭,原封不动 +command > 1.txt 2>&1 # 正确和错误原版混搭,原封不动 +command > 1.txt 2>> 1.txt # 先正确后错误 +command 2> 1.txt >> 1.txt # 先错误后正确 +``` + +# 管道 | + + 将一个命令的输出作为另一个命令的输入。管道是进行命令链式操作的重要工具 + + + + + +<< 是什么功能?here document + +```bash +<< 是用于输入多行文本的重定向符号。 +当Shell遇到<<时,它会等待用户输入多行文本,直到遇到DELIMITER为止 +``` + +()把命令包括起来,是干什么功能? + +```bash +(command1;command2;command3....) 多个命令之间用;分隔 +() 表示在当前 shell 中将多个命令作为一个整体执行 +#使用 () 括起来的命令在执行前面都不会切换当前工作目录,也就是说命令组合都是在当前工作目录下被执行的,尽管命令中有切换目录的命令。 +``` + diff --git "a/12\346\226\271\347\277\214\346\201\272/20240614 - \347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" "b/12\346\226\271\347\277\214\346\201\272/20240614 - \347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" new file mode 100644 index 0000000..e1fd007 --- /dev/null +++ "b/12\346\226\271\347\277\214\346\201\272/20240614 - \347\224\250\346\210\267\345\222\214\347\224\250\346\210\267\347\273\204\347\256\241\347\220\206.md" @@ -0,0 +1,217 @@ +## 用户和用户组管理 + +- 用户管理 + - 添加账户 useradd -m -s /bin/bash db2 + - 删除账户 userdel -r db2 + - 修改账户 usermod [选项同添加账户] db2 + - 查看帐户 getent passwd db2 +- 用户组管理 + - 添加用户组 groupadd stu1 + - 删除用户组 groupdel stu1 + - 添加用户到用户组 usermod -aG stu1 db2 +- 密码管理 + - 设置密码 passwd +- sudo权限管理 + - usermod -aG sudo xxx + - 修改/etc/sudoers文件 +- 登录权限管理 +- 用户环境管理 + - 用户配置文件 : .bashrc + - 用户环境变量: $PATH、$HOME、$SHELL + +## 文件与目录的权限管理 + +- https://www.runoob.com/linux/linux-file-attr-permission.html + + ![20240605092950](./assets/20240605092950.png) + +- 文件类型 + - -普通文件 + - d目录 + - l连接文件 + - b c s p 等其它文件 + +- 基本权限 + - r 读 + - w 写 + - x 执行 + +- 权限表示 + - 字符表示 + - 数字表示 + - 4 代表 r + - 2 代表 w + - 1 代表 x + - 权限修改 + - chmod 修改权限 + - chown 修改拥有者 + - chgrp 修改所属组 + - 权限的继承 + - 目录权限下文件和目录的影响 + - umask + - 特权权限 + - SUID + - SGID + - SBIT + - 隐藏权限 + - i + - 用在文件上,无法对该文件进行任何修改 + - 用在目录上,无法在里面创建新文件,但可以修改已有文件 + - a + - 除了可追加内容外,无法进行其它修改 + - 隐藏权限的操作 + - 修改隐藏权限 chattr + - chattr +i XXX + - chattr -i XXX + - 查看隐藏权限 + - lsattr + + + +### 权限管理练习 + +创建/guanli 目录,在/guanli下创建zonghe 和 jishu 两个目录(一条命令) + +```bash +mkdir guanli/zonghe guanli/jishu -p +``` + +添加组帐号zonghe、caiwu、jishu,GID号分别设置为2001、2002、2003 + +```bash +groupadd -g 2003 jishu +groupadd -g 2002 caiwu +groupadd -g 2001 zonghe +``` + +创建jerry、kylin、tsengia、obama用户,其中的kylin用户帐号在2020年12月30日后失效 + +```bash +useradd -e 2020-12-30 kylin +``` + +将jerry、kylin、tsengia、obama等用户添加到zonghe组内 + +```bash +gpasswd -M jerry,kylin,tsengia,obama zonghe +``` + +创建handy、cucci用户,其中cucci帐号的登录Shell设置为“/sbin/nologin” + +```bash +egg@hecs-217666:~/guanli$ sudo useradd handy +egg@hecs-217666:~/guanli$ sudo useradd cucci +egg@hecs-217666:~/guanli$ sudo usermod -s /sbin/nologin cucci + +``` + +将handy、cucci等用户添加到jishu组内 + +```bash +egg@hecs-217666:~/guanli$ sudo gpasswd -M handy,cucci jishu + +``` + +将上述的所有用户均要求加入到guanli组内 + +```bash +egg@hecs-217666:~$ sudo groupadd guanli +egg@hecs-217666:~$ sudo gpasswd -M jerry,kylin,tsengia,obama,handy,cucci guanli + +``` + +将zonghe组内的obama用户删除 + +```bash +egg@hecs-217666:~$ sudo gpasswd -d obama zonghe + +``` + +为jerry用户设置密码为“123456”(使用普通方法)为cucci用户设置密码为“redhat” + +```bash +egg@hecs-217666:~$ sudo passwd jerry +egg@hecs-217666:~$ sudo passwd cucci + +``` + +将jerry用户锁定,并查看锁定状态 + +```bash +egg@hecs-217666:~$ sudo usermod -L jerry +egg@hecs-217666:~$ sudo gpasswd -s jerry + +``` + +打开两个xshell窗口,通过(who 或者 w)命令查看连接状态,并通过fuser杀掉其中一个 + +```bash +egg@hecs-217666:~$ w +egg@hecs-217666:~$ sudo fuser -k /dev/pts/0 + +``` + +查看cucci用户,属于那些组,并查看其详细信息 + +```bash +egg@hecs-217666:~$ sudo groups cucci + +egg@hecs-217666:~$ sudo finger cucci + +``` + +手工创建账号student(预留) + +``` + +``` + +设置权限及归属:/guanli目录属组设为guanli, /guanli/zonghe目录的属组设为 + +``` + +``` + +zonghe /guanli/jishu目录的属组设为jishu,设置3个目录都是禁止其他用户访问的权限 + +``` + +``` + +建立公共目录/ceshi允许技术组内的所有用户读取、写入、执行文件, 禁止其他用户读、写、执行 + +``` + +``` + +清除jerry用户密码 + +``` + +``` + +锁定cucci用户密码并查看状态 + +``` + +``` + +修改obama用户的UID为8888 + +``` + +``` + +通过passwd命令修改kylin用户的最长密码使用期限为60天 + +``` + +``` + +通过id groups等命令查看用户handy信息 + +``` +``` + + + diff --git "a/12\346\226\271\347\277\214\346\201\272/20240615 - \345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" "b/12\346\226\271\347\277\214\346\201\272/20240615 - \345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" new file mode 100644 index 0000000..bddee6f --- /dev/null +++ "b/12\346\226\271\347\277\214\346\201\272/20240615 - \345\221\250\346\234\237\344\273\273\345\212\241\347\273\203\344\271\240.md" @@ -0,0 +1,174 @@ +### 在PATH环境变量中配置touch正确的路径 + +```bash +1.echo $PATH #看PATH中有没有touch的路径 +2.which touch #查找touch的路径 +3.export PATH="/usr/bin/touch:$PATH" #将touch命令的路径加入到PATH中 +4.echo $PATH #查看有没有添加成功 +``` + + + +### 周期任务练习 + +执行在家目录touch a.txt + +1. 每天3:00执行一次 + + ```bash + 0 3 * * * touch /home/egg/a.txt + ``` + + + +2. 每周六2:00执行 + + ```bash + 0 2 * * 6 touch /home/egg/a.txt + ``` + + + +3. 每周六1:05执行 + + ```bash + 5 1 * * 6 touch /home/egg/a.txt + ``` + + + +4. 每周六1:25执行 + + ```bash + 25 1 * * 6 touch /home/egg/a.txt + ``` + + + +5. 每天8:40执行 + + ```bash + 40 8 * * * touch /home/egg/a.txt + ``` + + + +6. 每天3:50执行 + + ```bash + 50 3 * * * touch /home/egg/a.txt + ``` + + + +7. 每周一到周五的3:40执行 + + ```bash + 40 3 * * 1-5 touch /home/egg/a.txt + ``` + + + +8. 每周一到周五的3:41开始,每10分钟执行一次 + + ```bash + 41/10 3 * * 1-5 touch /home/egg/a.txt + ``` + + + +9. 每天的10:31开始,每2小时执行一次 + + ```bash + 31 10/2 * * * touch /home/egg/a.txt + ``` + + + +10. 每周一到周三的9:30执行一次 + + ```bash + 30 9 * * 1-3 touch /home/egg/a.txt + ``` + + + +11. 每周一到周五的8:00,每周一到周五的9:00执行一次 + + ```bash + 0 8 * * 1-5 touch /home/egg/a.txt + 0 9 * * 1-5 touch /home/egg/a.txt + ``` + + + +12. 每天的23:45分执行一次 + + ```bash + 45 23 * * * touch /home/egg/a.txt + ``` + + + +13. 每周三的23:45分执行一次 + + ```bash + 45 23 * * 3 touch /home/egg/a.txt + ``` + + + +14. 每周一到周五的9:25到11:35、13:00到15:00之间,每隔10分钟执行一次 + + ```bash + 25/10 9-11 * * 1-5 touch /home/egg/a.txt + 0/10 13-15 * * 1-5 touch /home/egg/a.txt + ``` + + + +15. 每周一到周五的8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分别执行一次 + + ```bash + 30 8 * * 1-5 touch /home/egg/a.txt + 50 8 * * 1-5 touch /home/egg/a.txt + 30 9 * * 1-5 touch /home/egg/a.txt + 0 10 * * 1-5 touch /home/egg/a.txt + 30 10 * * 1-5 touch /home/egg/a.txt + 0 11 * * 1-5 touch /home/egg/a.txt + 30 11 * * 1-5 touch /home/egg/a.txt + 30 13 * * 1-5 touch /home/egg/a.txt + 0 14 * * 1-5 touch /home/egg/a.txt + 30 14 * * 1-5 touch /home/egg/a.txt + 0 5 * * 1-5 touch /home/egg/a.txt + ``` + + + +16. 每天16:00、10:00执行一次 + + ```bash + 0 10 * * * touch /home/egg/a.txt + 0 16 * * * touch /home/egg/a.txt + ``` + + + +17. 每天8:10、16:00、21:00分别执行一次 + + ```bash + 10 8 * * * touch /home/egg/a.txt + 0 16 * * * touch /home/egg/a.txt + 0 21 * * * touch /home/egg/a.txt + ``` + + + +18. 每天7:47、8:00分别执行一次 + + ```bash + 47 7 * * * touch /home/egg/a.txt + 0 8 * * * touch /home/egg/a.txt + ``` + + \ No newline at end of file diff --git "a/12\346\226\271\347\277\214\346\201\272/20240618 - \347\216\257\345\242\203\345\217\230\351\207\217.md" "b/12\346\226\271\347\277\214\346\201\272/20240618 - \347\216\257\345\242\203\345\217\230\351\207\217.md" new file mode 100644 index 0000000..69829d4 --- /dev/null +++ "b/12\346\226\271\347\277\214\346\201\272/20240618 - \347\216\257\345\242\203\345\217\230\351\207\217.md" @@ -0,0 +1,329 @@ +## 环境变量 + +理解和使用Linux环境变量对于管理和配置系统至关重要。以下是关键的知识点、常用场景以及示例的综合整理: + +### 1. 环境变量的类型和作用 + +- **用户级别环境变量**: + - 存储在用户家目录的个人配置文件中,例如 `~/.bashrc`、`~/.profile`。 + - 用于定义**用户个性化**的Shell设置,如别名、路径等。 + +- **系统级别环境变量**: + - 存储在系统范围的配置文件中,如 `/etc/environment`、`/etc/profile` 。 + - 为**所有用户和系统服务**提供全局的环境设置。java_home + +### 2. 环境变量的加载顺序和文件 + +- **系统启动加载**:/etc/environment + +- **登录Shell加载顺序**: + - 首先加载 `/etc/profile`,然后根据用户登录方式加载 `~/.profile`(存在性依次加载)。 + - 非登录shell: su 切换用户 等 source + +- **交互式Shell加载顺序**: + - 加载 `~/.bashrc` 或类似文件,用于设置用户个性化的Shell环境。 + - 不同的shell加载不同的文件,bash才加载.bashrc,zsh加载.zshrc + - 交互式:提供命令行窗口,非交互式:直接写在脚本里 +- **总结来说** + - 配置文件的理论加载顺序通常是 `/etc/environment` > `/etc/profile` > `~/.profile` > `~/.bashrc`。【实验】 + +### 3. 设置环境变量的方法 + +​ 设置变量的位置:命令行(临时),脚本文件(永久) + +#### 3.1 临时设置环境变量:临时变量(局部),临时环境变量(全部) + +​ 可以使用 `export` 命令来临时设置一个环境变量,例如: + +```bash +export MY_VAR="value" # export 变量名=值 环境变量是全局的,整个环境有效 +MY_VAR="value" # 少了export 就是临时变量,不是全局的 +``` + +​ 这种设置只在当前Shell会话中有效,关闭Shell会话后会失效。 + +#### 3.2 永久设置环境变量: + +​ **用户级别的** : 编辑用户的 `~/.bashrc` 或 `~/.profile` 文件,并添加如下行: + +```bash +export MY_VAR="value" +``` + +​ 保存文件后,新的设置会在下次登录时生效。 + +​ **系统级别的:** 编辑 `/etc/environment` 或 /etc/profile文件,并添加类似以下行: + +```plaintext +MY_VAR="value" +``` + +这里不需要使用 `export` 命令。保存文件后,变量会在系统启动时生效。 + +#### 3.3 环境变量的设置和使用示例 + +3.1 设置路径变量(PATH) + +```bash +# 在 ~/.bashrc 中添加 +export PATH=$PATH:/path/to/your/scripts +``` + +3.2 定义Java环境变量(JAVA_HOME) + +```bash +# 在 ~/.bashrc 或 /etc/environment 中添加 +export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 +export PATH=$JAVA_HOME/bin:$PATH +``` + +3.3 设置代理服务器(HTTP_PROXY、HTTPS_PROXY) + +```bash +# 在 ~/.bashrc 中添加 +export HTTP_PROXY=http://proxy.example.com:8080 +export HTTPS_PROXY=http://proxy.example.com:8080 +``` + +3.4 配置编辑器(EDITOR) + +```bash +# 在 ~/.bashrc 中添加 +export EDITOR=/usr/bin/vim +``` + +3.5 设置语言和地区(LANG、LC_系列变量) + +```bash +# 在 ~/.bashrc 或 /etc/environment 中添加 +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +``` + +3.6 自定义命令别名(alias) + +```bash +# 在 ~/.bashrc 中添加 +alias ll='ls -alF' +alias grep='grep --color=auto' +``` + +3.7 设置临时环境变量 + +```bash +# 临时设置变量 +export MY_VAR="value" +``` + +### 4. 常用环境变量 + +**系统级** + +* `PATH` 可执行文件的搜索路径 +* `LANG` 定义系统的语言环境和字符集, export LANG=zh_CN.utf8,编辑文件不乱码 +* `LANGUAGE` 用于设置消息语言的优先级 ,提示语言为中文 +* `EDITOR` 默认文本编辑器 editor + +**用户级** + +* **`HOME`** :当前用户的主目录。 +* **`USER`**:当前用户名。 +* **`UID`**:当前用户的用户ID。 +* **`SHELL`**:当前用户的默认Shell。 + +### 5. 临时变量与环境变量 + +定义一个变量时,在变量名前加了export关键字,就是环境变量,作用域是全局环境子子进程中也有效,否则就是临时变量,只在当前脚本文件或shell中有效。 + +命令行示例: + +```bash +MY_NAME="张三" # 临时变量(局部) +echo $MY_NAME +bash -c 'echo $MY_NAME' +# 什么结果?对比下面的效果 + +export MY_NAME="张三" # 临时变量(全局) +echo $MY_NAME +bash -c 'echo $MY_NAME' # 子进程 +# 看下效果 +``` + + + +脚本文件示例 : + +`test1.sh` + +```bash +#!/bin/bash +MY_NAME="张三" # 前面加上export再试一次 +echo "test:我的名字是:$MY_NAME" +./subscript.sh +``` + +`test2.sh`: + +```bash +#!/bin/bash +echo "test2:你的名字是: $MY_NAME" +``` + +**临时变量**:在脚本中定义但不导出的变量仅在脚本执行期间有效,不会影响其他 shell 会话或子进程。 + +**环境变量**:使用 `export` 导出的变量在当前 shell 会话和所有子进程中都有效。 + +### 6. 总结: + +### 4.1 分类 + +#### 按生命周期分 + +- 永久环境变量 写在指定类型的配置文件,永不失效 ~/.bashrc /etc/profile.d/xxx.sh +- 临时环境变量 临时使用export 命令设置的环境变量 退出终端即失效 + +#### 按作用域分 + +* 系统级环境变量 对所有用户生效 /etc/profile.d/xxx.sh +* 用户级环境变量 只对当前用户生效 ~/.bashrc + + + +## 作业 + +### 练习题 1: 显示当前所有的环境变量 + +* 使用`printenv`或`env`命令来显示所有的环境变量。 + + +```bash +root@hecs-217666:~# printenv + +``` + +### 练习题 2: 显示`HOME`环境变量的值 + +* 使用`echo`命令和`$`符号来显示`HOME`环境变量的值。 + + +```bash +root@hecs-217666:~# echo $HOME +``` + +### 练习题 3: 临时设置一个新的环境变量 + +* 设置一个名为`MY_AGE`的环境变量,并将其值设置为`18`。 + + +```bash +root@hecs-217666:~# export MY_AGE=18 +``` + +### 练习题 4: 显示新设置的环境变量 + +* 使用`echo`命令来显示`MY_AGE`的值。 + + +```bash +root@hecs-217666:~# echo $MY_AGE + +``` + +### 练习题 5: 在新的shell会话中检查环境变量 + +* 打开一个新的终端窗口或标签页,并尝试显示`MY_AGE`的值。你会看到什么?为什么? + + ```bash + 显示空的值,因为每个终端会话都有自己的环境,而并非所有终端会话都会自动继承来自其他终端的环境变量设置 + ``` + + + +### 练习题 6: 修改`PATH`环境变量 + +* 将`你当前用户的家目录`添加到你的`PATH`环境变量的末尾位置 + + +```bash +vim .bashrc +export PATH="$PATH:$HOME/bin" +source .bashrc +#然后在/bin创建一个.sh文件,加入x的权限 +root@hecs-217666:~# abc.sh +``` + +将`/tmp`添加到你的`PATH`环境变量的开始位置,(注意:这可能会覆盖其他路径中的同名命令,所以请谨慎操作)。 + +```bash +vim .bashrc +export PATH="$PATH:/tmp" +source .bashrc +``` + +### 练习题 7: 验证`PATH`的修改 + +* 使用`echo`命令显示`PATH`的值,并确认`前面添加的目录`已经被添加到对应位置。 + + +```bash +echo $PATH +``` + +### 练习题 8: 永久设置环境变量 + +* 在你的shell配置文件中(如`~/.bashrc`、`~/.bash_profile`、`~/.zshrc`等,取决于你使用的shell和配置)添加一行来永久设置`MY_NAME`,值设置为`奥德彪`。 + +例如,对于bash shell,你可以使用: + + +```bash +root@hecs-217666:~# vim .bashrc +export MY_NAME='奥德彪' +``` + +如何让`MY_NAME`生效,并验证 + +```bash +source .bashrc +root@hecs-217666:~# echo $MY_NAME + +``` + +### 练习题 9: 清理 + +* 清除你之前设置的`MY_AGE`和`PATH`的修改(如果你不想永久保留它们)。 + + +```bash + +``` + +### 练习题 10: 修改默认器 + +* 使用`EDITOR`变量,修改你默认的编辑器为nano。 + + +```bash +root@hecs-217666:~# vim .bashrc +export EDITOR=nano +``` + +### 练习题 11: 修改语言 + +* 使用`LANG`变量,让你的文件支持中文和utf8编码来避免乱码。 + +```bash +vim .bashrc +export LANG=en_US.UTF-8 +export LC_ALL=en_US.UTF-8 +``` + +- 使用`LANGUAGE`变量,让你的命令提示为中文 + +```bash +vim .bashrc +LANG=zh_CN.UTF-8 +LANGUAGE=zh_CN.UTF-8 + +``` + diff --git "a/12\346\226\271\347\277\214\346\201\272/20240619 - linux\350\277\233\347\250\213.md" "b/12\346\226\271\347\277\214\346\201\272/20240619 - linux\350\277\233\347\250\213.md" new file mode 100644 index 0000000..21f3a69 --- /dev/null +++ "b/12\346\226\271\347\277\214\346\201\272/20240619 - linux\350\277\233\347\250\213.md" @@ -0,0 +1,56 @@ +# 进程 + +### 查看进程 + +### 1.快速查看运行中的进程列表 + +```bash +ps +``` + +### 2. 查看所有用户的所有进程 + +```bash +ps aux +``` + +### 3.显示所有进程的完整格式 + +```bash +ps -ef +``` + +### 4.动态显示进程的信息 + +```bash +top +``` + +### 5.根据进程名查找进程ID + +```bash +pgrep 进程名 +``` + +### 6.以树状图的方式显示进程间的父子关系 + +```bash +pstree +``` + +### 7.查找指定名字的进程id + +```bash +pidof 进程名 +``` + +### 杀进程 + +```bash +使用kill命令结束进程:kill xxx + +常用:kill -9 324 +``` + + + -- Gitee