第二章 Linux常见命令

常见命令

简单命令

关机重启命令: shutdown

#关机或重启 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

## whoami
  Usage: whoami [OPTION]...
打印与当前有效用户ID关联的用户名.
和id -un一样.

      --help     显示此帮助并退出
      --version  输出所用版本信息并退出

GNU coreutils在线帮助: <http://www.gnu.org/software/coreutils/>
要获得完整的文档,请运行: info coreutils 'whoami invocation'

## who
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'

## w
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会话
screen -S [SESSION]
#查看screen有哪些会话
screen -r
#加入screen会话
screen -x [SESSION]
#退出并关闭screen会话
exit
#剥离当前screen会话
Ctrl + a,d (按住Ctrl不放 再依次按a和d)
#显示所有以经打开的screen会话
screen -ls
#恢复某screen会话
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 打印输出 ! (上一条命令的所有参数)的内容
  • ^string 删除上一条命令中的第一个string
  • string1string2 将上一条命令中的第一个个string1替换为string2
  • !:gs/string1/string2 将上一条命令中所有的string1都替换为string2
  • 使用up(向上)和down(向下)键来浏览从前输入的命令
  • ctrl -r来在命令历史中搜索命令
    • (reverse-i-search)`’:
  • 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
发布了47 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42428264/article/details/104262222