linux - shell
文章目录
shell环境
set
shell或环境变量printenv
环境变量echo
查看变量内容alias
查看别名
有趣的环境变量
DISPLAY
如果你正在运行图形界面环境,那么这个变量就是你显示器的名字。通常,它是 “:0”, 意思是由 X 产生的第一个显示器。EDITOR
文本编辑器的名字。SHELL
shell 程序的名字。HOME
用户家目录。LANG
定义了字符集以及语言编码方式。OLD_PWD
先前的工作目录。PAGER
页输出程序的名字。这经常设置为/usr/bin/less。PATH
由冒号分开的目录列表,当你输入可执行程序名后,会搜索这个目录列表。PS1
Prompt String 1. 这个定义了你的 shell 提示符的内容。随后我们可以看到,这个变量 内容可以全面地定制。PWD
当前工作目录。TERM
终端类型名。类 Unix 的系统支持许多终端协议;这个变量设置你的终端仿真器所用的协议。TZ
指定你所在的时区。大多数类 Unix 的系统按照协调时间时 (UTC) 来维护计算机内部的时钟 ,然后应用一个由这个变量指定的偏差来显示本地时间。USER
你的用户名
登录 shell 会话的启动文件
/etc/profile
应用于所有用户的全局配置脚本。~/.bash_profile
用户个人的启动文件。可以用来扩展或重写全局配置脚本中的设置。~/.bash_login
如果文件 ~/.bash_profile 没有找到,bash 会尝试读取这个脚本。~/.profile
如果文件 ~/.bash_profile 或文件 ~/.bash_login 都没有找到,bash 会试图读取这个文件。 这是基于 Debian 发行版的默认设置,比方说 Ubuntu。
非登录 shell 会话的启动文件
/etc/bash.bashrc
应用于所有用户的全局配置文件。~/.bashrc
用户个人的启动文件。可以用来扩展或重写全局配置脚本中的设置。
vi
y
复制x
剪切字符d
剪切范围p/P
粘贴光标后/前J
连接行
光标移动按键
l or 右箭头
向右移动一个字符h or 左箭头
向左移动一个字符j or 下箭头
向下移动一行k or 上箭头
向上移动一行0 (零按键)
移动到当前行的行首。^
移动到当前行的第一个非空字符。$
移动到当前行的末尾。w
移动到下一个单词或标点符号的开头。W
移动到下一个单词的开头,忽略标点符号。b
移动到上一个单词或标点符号的开头。B
移动到上一个单词的开头,忽略标点符号。Ctrl-f or Page Down
向下翻一页Ctrl-b or Page Up
向上翻一页numberG
移动到第 number 行。例如,1G 移动到文件的第一行。G
移动到文件末尾。u
撤销最后一次修改
追加
A
在行尾添加文本o
当前行的下方打开一行。O
当前行的上方打开一行。
查找和替换
f
搜索行,;
重复搜索
全局替换
:%s/Line/line/g
:
冒号字符运行一个 ex 命令。%
指定要操作的行数。% 是一个快捷方式,表示从第一行到最后一行。另外,操作范围也 可以用 1,5 来代替(因为我们的文件只有5行文本),或者用 1,$ 来代替,意思是 “ 从第一行到文件的最后一行。” 如果省略了文本行的范围,那么操作只对当前行生效。s
指定操作。在这种情况下是,替换(查找与替代)。/Line/line
查找类型与替代文本。g
这是“全局”的意思,意味着对文本行中所有匹配的字符串执行查找和替换操作。如果省略 g,则 只替换每个文本行中第一个匹配的字符串。
编辑多个文件
vi file1 file2 file3…
:w fileName
另存为:n/N
下/上一个:buffers
显示文件列表:buffer 2
切换:e file.txt
加入文件:r file.txt
插入文件ZZ
保存退出
shell提示符
$PS1
提示符中用到的转义字符
\a
以 ASCII 格式编码的铃声 . 当遇到这个转义序列时,计算机会发出嗡嗡的响声。\d
以日,月,天格式来表示当前日期。例如,“Mon May 26.”\h
本地机的主机名,但不带末尾的域名。\H
完整的主机名。\j
运行在当前 shell 会话中的工作数。\l
当前终端设备名。\n
一个换行符。\r
一个回车符。\s
shell 程序名。\t
以24小时制,hours:minutes:seconds 的格式表示当前时间.\T
以12小时制表示当前时间。\@
以12小时制,AM/PM 格式来表示当前时间。\A
以24小时制,hours:minutes 格式表示当前时间。\u
当前用户名。\v
shell 程序的版本号。\V
Version and release numbers of the shell.\w
当前工作目录名。\W
当前工作目录名的最后部分。\!
当前命令的历史号。\#
当前 shell 会话中的命令数。\$
这会显示一个"$“字符,除非你拥有超级用户权限。在那种情况下, 它会显示一个”#“字符。\[
标志着一系列一个或多个非打印字符的开始。这被用来嵌入非打印 的控制字符,这些字符以某种方式来操作终端仿真器,比方说移动光标或者是更改文本颜色。\]
标志着非打印字符序列结束。