常见命令
简单命令
关机重启命令: shutdown
shutdown [ OPTIONS.. .] [ TIME] [ WALL.. .]
关闭该系统.
--help 显示帮助
-H --halt 停止机器
-P --poweroff 关闭电源的机器
-r --reboot 重新启动机器
-h 相当于--poweroff,被--halt覆盖
-k 不会 停止/关机/重启,只发送警告
--no-wall 在停止/关机/重启之前不要发送消息
-c 取消挂起的关机
shutdown [ OPTION] .. [ TIME] [ MESSAGE] [ MESSAGE]
shutdown -r:reboot 重启
shutdown -h:halt 关机
shutdown -c:cancel 取消
TIME:无指定,默认相当于+1,1分钟(CentOS7)
shutdown now:立刻,相当于+0
shutdown +m:相对时间表示法,m分钟之后;
shutdown hh:mm:绝对时间表示,指明具体时间
更改shell工作目录:cd
cd: cd [ -L| [ -P [ -e] ] ] [ dir]
更改shell工作目录.
将当前目录更改为DIR. DIR默认值是shell环境变量HOME的值.
变量CDPATH定义包含DIR的目录的搜索路径。CDPATH中的其他目录名由冒号( :) 分隔。空目录名与当前目录相同。如果DIR以斜杠( /) 开头,则不使用CDPATH。
如果没有找到目录,并且设置了shell选项' cdable_vars' ,则假定该单词是一个变量名。如果该变量有一个值,则将其值用于DIR。
选项:
-L 强制遵循符号链接
-P 使用物理目录结构而不使用符号链接
-e 如果提供了-P选项,以及当前工作目录无法成功确定,以非零状态退出
默认是跟随符号链接,就像指定了' -L' 一样。
退出状态:
如果目录被更改,则返回0; 如果在何时成功设置了$PWD ,则返回0; 使用- p; 非零。
显示当前工作目录:pwd
pwd
列出指定目录下的条目:ls
用法:ls[ OPTION] …[ FILE] …
列出有关文件的信息( 默认为当前目录) 。
如果没有指定-cftuvSUX或 --Sort,则按字母顺序排序。
长期权(长参数两个'-' )的强制参数对于短期权(短参数,一个'-' )也是强制的。
-a, --all 不忽略以 . 开头的条目。
-A, --almost-all 不列出 . 和 .. 的条目
--author 使用-l,打印每个文件的作者
-c 与 -lt: 根据ctime ( 最后一次修改文件状态信息的时间) 排序显示;
与 -l: 显示ctime并按名称排序;
否则:按时间排序,最新优先
-C 按列列出项目
--color[ = WHEN] 彩色化输出; 何时可以是'never' , 'auto' ,或'always' ( 默认) ; 更多的信息在下面
-d, --directory 只列出目录本身 . ,不列出目录内容
-D, --dired 生成为Emacs dired模式设计的输出
-f 不排序,启用-aU,禁用 -ls --color
-F, --classify 对条目附加指标 ( one of */= > @| )
--file-type likewise, except do not append '*'
--format= WORD across -x, commas -m, horizontal -x, long -l,
single-column -1, verbose -l, vertical -C
--full-time like -l --time-style= full-iso
-g like -l, but do not list owner
--group-directories-first
group directories before files;
can be augmented with a --sort option, but any
use of --sort= none ( -U) disables grouping
-G, --no-group in a long listing, don't print group names
-h, --human-readable 使用-l,以人类可读格式打印大小(例如,1K 234M 2G)
--si 同样的,但是使用1000的幂而不是1024
-H, --dereference-command-line
遵循命令行中列出的符号链接
--dereference-command-line-symlink-to-dir
跟踪指向目录的每个命令行符号链接
--hide=PATTERN 不要列出与shell模式匹配的隐含项(被-a或-A覆盖)
--indicator-style=WORD
将带有样式词的指示符附加到条目名称: none (default), slash (-p), file-type (--file-type), classify (-F)
-i, --inode 打印每个文件的索引号
-I, --ignore=PATTERN 不列出与外壳模式匹配的隐含条目
-k, --kibibytes 对于磁盘使用,默认为1024字节块
-l 使用长列表格式
-L, --dereference 显示符号链接的文件信息时,显示链接引用而不是链接本身的文件信息
-m 用逗号分隔的条目列表填充宽度
-n, --numeric-uid-gid 类似-l,但列出uid和gid
-N, --literal 打印原始条目名称(不要特别处理例如控制字符)
-o 类似-l,但不要列出组信息
-p, --indicator-style=slash
向目录追加/指示符
-q, --hide-control-chars 打印 ? 而不是非图形字符
--show-control-chars 按原样显示非图形字符(默认,除非程序是“ls”,输出是终端)
-Q, --quote-name 将条目名称放在双引号中
--quoting-style=WORD 对条目名称使用引用样式词:
literal, locale, shell, shell-always, c, escape
-r, --reverse 排序时的逆序
-R, --recursive 递归地列出子目录
-s, --size 打印每个文件分配的大小,以块为单位
-S 按文件大小排序
--sort=WORD 按单词而不是按名称排序: none (-U), size (-S),
time (-t), version (-v), extension (-X)
--time=WORD with -l, show time as WORD instead of default
modification time: atime or access or use (-u)
ctime or status (-c); also use specified time
as sort key if --sort=time
--time-style=STYLE with -l, show times using style STYLE:
full-iso, long-iso, iso, locale, or +FORMAT;
FORMAT is interpreted like in ' date '; if FORMAT
is FORMAT1<newline>FORMAT2, then FORMAT1 applies
to non-recent files and FORMAT2 to recent files;
if STYLE is prefixed with ' posix-', STYLE
takes effect only outside the POSIX locale
-t 按修改时间排序,最新优先
-T, --tabsize=COLS 假设制表符在每个COLS处停止,而不是8
-u 与-lt:排序,显示,访问时间;
与-l:显示访问时间并按名称排序;
否则:按访问时间排序
-U 不排序;按目录顺序列出条目
-v 文本中的(版本)数字的自然排序
-w, --width=COLS 假设屏幕宽度而不是当前值
-x 按行而不是按列列出条目
-X 按条目扩展名按字母顺序排序
-1 每行列出一个文件
SELinux options:
--lcontext 显示安全上下文。启用- l。对于大多数显示器来说,行可能太宽了
-Z, --context 显示安全上下文,使其适合于大多数显示器。仅显示模式、用户、组、安全上下文和文件名。
--scontext 仅显示安全上下文和文件名。
--help 显示此帮助并退出
--version 输出所用版本信息并退出
SIZE是一个整数和可选单元(例如:10M是10*1024*1024). 单位是K, M, G, T, P, E, Z, Y(1024的幂)或KB, MB,... (powers of 1000).
使用颜色来区分文件类型在默认情况下和使用--color=never时都是禁用的.使用--color=auto, ls仅在标准输出连接到终端时才发出颜色代码。LS_COLORS环境变量可以更改设置,使用dircolors命令来设置它
退出状态:
0 如果成功,
1 如果小问题(例如,不能访问子目录),
2 如果出现严重问题(例如,无法访问命令行参数).
GNU coreutils在线帮助: <http://www.gnu.org/software/coreutils/>
要获得完整的文档,请运行:info coreutils ' ls invocation'
用户登录信息查看命令:whoami | who | w
Usage: whoami [ OPTION] .. .
打印与当前有效用户ID关联的用户名.
和id -un一样.
--help 显示此帮助并退出
--version 输出所用版本信息并退出
GNU coreutils在线帮助: < http://www.gnu.org/software/coreutils/>
要获得完整的文档,请运行: info coreutils 'whoami invocation'
Usage: who [ OPTION] .. . [ FILE | ARG1 ARG2 ]
打印当前登录的用户信息。
-a, --all 与-b -d -login -p -r -t -t -u相同
-b, --boot 最后一次系统启动时间
-d, --dead 打印死亡过程
-H, --heading 打印行列标题
-l, --login 打印系统登录流程
--lookup 试图通过DNS将主机名规范化
-m 只有与stdin关联的主机名和用户
-p, --process 打印init生成的活动进程
-q, --count 所有登录名和登录的用户数量
-r, --runlevel 打印当前运行级别
-s, --short 只打印名称、行和时间( 默认)
-t, --time 打印最后的系统时钟变化
-T, -w, --mesg add user's message status as +, - or ?
-u, --users 登录用户列表
--message same as -T
--writable same as -T
--help 显示此帮助并退出
--version 输出所用版本信息并退出
如果没有指定文件,则使用/var/run/utmp。/var/log/wtmp作为文件是常见的。
If FILE is not specified, use /var/run/utmp. /var/log/wtmp as FILE is common.
如果ARG1 ARG2给定, -m presumed: ' am i' or ' mom likes' are usual.
GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils ' who invocation'
Usage:
w [ options]
显示谁登录了,他们在做什么。
Options:
-h, --no-header 不要打印页眉
-u, --no-current 忽略当前进程用户名
-s, --short short format
-f, --from 显示远程主机名字段
-o, --old-style 旧式的输出
-i, --ip-addr 显示IP地址而不是主机名( 如果可能)
--help 显示此帮助并退出
-V, --version 输出所用版本信息并退出
更多细节见w( 1) 。
文本编辑器(后面详细介绍): nana | vi | vim
nano filename: ^代表的是键盘上的CTRL
vi filename
vim filename
命令行终端切换的自由软件 screen
安装
第一种方式: rpm -ivh /run/media/centos7/CentOS\7\x86_64/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
第二种方式: yum install screen
Use: screen [ -opts] [ cmd [ args] ]
or: screen -r [ host.tty]
Options:
-4 仅将主机名解析为IPv4地址。
-6 只解析主机名到IPv6地址。
-a 强制所有功能到每个窗口的termcap。
-A -[ r| R] 使所有窗口适应新的显示宽度和高度。
-c file 读取配置文件而不是'.screenrc' 。
-d ( -r) 断开其他正在运行的屏幕( 并在这里重新连接) 。
-dmS name 作为守护进程启动:以分离模式启动屏幕会话。
-D ( -r) 离和注销远程服务器( 并在这里重新连接) 。
-D -RR 做任何需要得到一个屏幕会话的事情。
-e xy 改变命令字符。
-f 流控制, -fn = off, -fa = auto.
-h lines 设置回滚历史缓冲区的大小。
-i 流控制打开时,应尽早中断输出。
-l 登录模式 ( update /var/run/utmp) , -ln = off.
-ls [ match] or
-list 什么也不做,只是列出我们的SockDir [ 可能匹配上] .
-L 打开输出日志记录。
-m 忽略$STY 变量,创建一个新的屏幕会话。
-O 选择最优输出,而不是精确的vt100仿真。
-p window 如果指定的窗口存在,请预先选择它。
-q 安静的启动。如果不成功,则使用非零返回码退出。
-Q 命令将在查询过程中将响应发送到stdout。
-r [ session] 重新连接到分离的屏幕进程。
-R 如果可能,重新连接,否则启动一个新会话。
-s shell 执行Shell而不是$Shell 。
-S sockname 将此会话命名为< pid> .sockname 而不是 < pid> .< tty> .< host> .
-t title 设置标题。( 窗口的名字) 。.
-T term Use term as $TERM for windows, rather than "screen" .
-U 告诉screen使用UTF-8编码。
-v 打印"Screen version 4.01.00devel (GNU) 2-May-06" .
-wipe [ match] 什么也不做,只是清理SockDir [ on possible matches] .
-x 连接到一个不分离的屏幕。( 多显示模式) 。
-X 在指定的会话中执行< cmd> 作为屏幕命令。
常用命令
screen -S [ SESSION]
screen -r
screen -x [ SESSION]
exit
Ctrl + a,d ( 按住Ctrl不放 再依次按a和d)
screen -ls
screen -r [ SESSION]
echo
Usage: /usr/bin/echo [ SHORT-OPTION] .. . [ STRING] .. .
or: /usr/bin/echo LONG-OPTION
将字符串Echo到标准输出。
-n 不输出结尾的换行符
-e 启用反斜杠转义的解释
-E 禁用反斜杠转义的解释( 默认)
--help 显示此帮助并退出
--version 输出所用版本信息并退出
如果-e有效,则识别下列序列:
\\ backslash
\a alert ( BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
\0NNN byte with octal value NNN ( 1 to 3 digits)
\xHH byte with hexadecimal value HH ( 1 to 2 digits)
注意:您的shell可能有自己的echo版本,它通常会取代这里描述的版本。有关shell支持的选项的详细信息,请参阅您的shell文档。
GNU coreutils online help: < http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'echo invocation'
echo命令
- 功能:显示字符
- 语法:echo [ -neE] [ 字符串]
- 说明:echo会将输入的字符串送往标准输出。输出的字符串以空白字符隔开,并在最后加上换行号
- 选项:
- -E(默认)不支持\解释功能
- -n 不自动换行
- -e 启用 \ 字符的解释功能
- 显示变量:
- echo "$VAR_NAME " 变量会替换,弱引用
- echo '$VAR_NAME ' 变量不会替换,强引用
- 命令行扩展:$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
# echo "This system's name is $( hostname ) "
This system's name is 192.168.30.128
# echo "i am ` whoami`
i am root
“{}” 括号扩展
打印重复字符串的简化形式
- echo file{ 1,3,5} ,结果为: file1,file2,file3
- rm -f file{ 1,3,5}
- echo { 1.. 10}
- echo { a.. z}
- echo { 000.. 20.. 2}
单引号(’’),双引号(""),反引号区别(``)
``:变量,命令都能识别
'' :变量,命令都不能识别
"" :只能识别变量,不能识别命令
命令行历史
保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令 ~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
重复前一个命令,有四种方法
重复前一个命令使用上方向键,并回车执行
按!!并回车执行
输入!-1并回车执行
按Ctrl+p并回车执行
!:0 执行前一条命令(去除参数)
Ctrl + n 显示当前历史中的下一条命令,但不执行
Ctrl + j 执行当前命令
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!string 重复前一个以“string”开头的命令
!?string 重复前一个包含“string”的命令
!string:p 仅打印命令历史,而不执行
!
:
p
打
印
输
出
!
:p 打印输出!
: p 打 印 输 出 ! (上一条命令的最后一个参数) 的内容
!:p 打印输出 ! (上一条命令的所有参数)的内容
^string 删除上一条命令中的第一个string
string1 string2 将上一条命令中的第一个个string1替换为string2
!:gs/string1/string2 将上一条命令中所有的string1都替换为string2
使用up(向上)和down(向下)键来浏览从前输入的命令
ctrl -r来在命令历史中搜索命令
Ctrl+g:从历史搜索模式退出
要重新调用前一个命令中最后一个参数
!$ 表示
Esc,.(点击Esc键松开,然后点击 . 键)
Alt + . (按住Alt键的同时点击.键)
命令history
history [ -c] [ -d offset] [ n]
history -anrw [ filename]
history -ps arg [ arg.. .]
history -c:清空(内存)命令历史
history -d offset:删除历史中指定的第offset个命令
history n:显示最近的n条记录
history -a:追加本次会话新执行的命令历史列表至历史文件
history -r:读历史文件附加到历史列表
history -w:保存历史列表到指定的历史文件
history -n:地历史文件中未读过的行到历史列表
history -p:展开历史参数成多行,但不存在历史列表中
history -s:展开历史参数成一行,附加在历史列表后
命令历史相关环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数
HISTTIMEFORMAT= “%F %T” 显示时间
HISTIGNORE=“str1:str2*…” 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups 默认,忽略重复的命令,连续且相同为“重复”
ignorespace 忽略所有以空白开头的命令
ignoreboth 相当于ignoredups,ignorespace的组合
erasedups 删除重复命令
export 变量名=“值”
存放在 /etc/profile 或 ~/.bash_profile