Linux Terminal
导言
对程序员来说,一个好用、易用的terminal,就是和军人手上有把顺手的好枪一样。
基础知识¶
用户的环境变量和配置文件
在Linux系统中,用户的环境变量和配置文件可以在不同的节点生效。以下是这些文件的功能和它们生效的时机:
-
/etc/environment
:- 功能: 设置系统范围的环境变量。
- 生效时机: 在用户登录时读取,但不会执行shell命令。它主要用于设置变量,如PATH、LANG等。
-
/etc/profile
:- 功能: 为系统的每个用户设置环境信息。
- 生效时机: 当用户登录时,会读取并执行该文件中的配置。它是针对登录shell(例如,通过终端登录或ssh登录)的。
-
/etc/profile.d/
:- 功能: 存放多个脚本,这些脚本会被
/etc/profile
读取和执行。 - 生效时机: 与
/etc/profile
相同,登录shell时执行。它使得系统管理员可以将不同的配置分散到多个文件中管理。
- 功能: 存放多个脚本,这些脚本会被
-
/etc/bash.bashrc
:- 功能: 为所有用户设置bash shell的配置。
- 生效时机: 对于非登录shell(例如,打开一个新的终端窗口)时会读取并执行。
-
~/.profile
:- 功能: 为单个用户设置环境信息。
- 生效时机: 用户登录时读取并执行,主要针对登录shell。
-
~/.bashrc
:- 功能: 为单个用户配置bash shell的设置。
- 生效时机: 用户打开一个新的bash shell(非登录shell)时读取并执行。
总结:
/etc/environment
和/etc/profile
主要用于系统范围的环境变量设置,前者不会执行shell命令,后者会执行。/etc/profile.d/
中的脚本作为/etc/profile
的扩展,用于更灵活的管理配置。/etc/bash.bashrc
适用于所有用户的bash配置,但只针对非登录shell。~/.profile
和~/.bashrc
适用于单个用户,前者用于登录shell,后者用于非登录shell。
通过这些文件,系统和用户可以灵活地设置和管理环境变量和shell配置,以满足不同的需求和使用场景。
\n \r 回车 换行
符号 | ASCII码 | 意义 |
---|---|---|
\n | 10 | 换行NL: 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed |
\r | 13 | 回车CR: 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return |
在不同的操作系统这几个字符表现不同:
- 在WIN系统下,这两个字符就是表现的本义,
- 在UNIX类系统,换行\n就表现为光标下一行并回到行首,
- 在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的。通常用的Enter是两个加起来。
终端命令行代理¶
在任意层级的SHELL配置文件里添加
写成bashrc的脚本命令
#YJH proxy
export proxy_addr=localhost
export proxy_http_port=7890
export proxy_socks_port=7890
function set_proxy() {
export http_proxy=http://$proxy_addr:$proxy_http_port #如果使用git 不行,这两个http和https改成socks5就行
export https_proxy=http://$proxy_addr:$proxy_http_port
export all_proxy=socks5://$proxy_addr:$proxy_socks_port
export no_proxy=127.0.0.1,.huawei.com,localhost,local,.local
}
function unset_proxy() {
unset http_proxy
unset https_proxy
unset all_proxy
}
function test_proxy() {
curl -v -x http://$proxy_addr:$proxy_http_port https://www.google.com | egrep 'HTTP/(2|1.1) 200'
# socks5h://$proxy_addr:$proxy_socks_port
}
# set_proxy # 如果要登陆时默认启用代理则取消注释这句
常用命令¶
check process create time¶
kill all process by name¶
常见问题¶
鼠标滚轮输出乱码
滚轮乱码,是tmux set mouse on
的原因
进入tmux后退出,并运行reset
即可
sudo后找不到命令
当你使用sudo去执行一个程序时,处于安全的考虑,这个程序将在一个新的、最小化的环境中执行,也就是说,诸如PATH这样的环境变量,在sudo命令下已经被重置成默认状态了。
添加所需要的路径(如 /usr/local/bin
)到/etc/sudoers
文件"secure_path"下
在用python使用curses写多进程进度条的时候,混乱输出
解决办法如下: