Linux命令

  1. 一切都是一个文件。(存储形式)

  2. 系统中拥有小型,单一用途的程序。

  3. 当遇到复杂任务,通过不同功能用途的程序组合起来完成。(大化小,小化了)

  4. 避免令人困惑的用户界面。(统统用命令)

  5. 连配置文件都存储在文本中,方便增、删、改、查。

  6. 不在乎后缀名,文件名与文件类型不相关。(不是用文件后缀来区分类型)

 [root@localhost ~]# 
 root:表示当前用户
 localhost:表示主机名
 ~:表示家目录
 #:表示当前用户是管理员用户
 $:普通用户
 #关机:
 halt                    #立刻关机
 2、poweroff              #立刻关机
 3、shutdown -h now       #立刻关机(root用户使用)
 4、shutdown -h 10        #10分钟后自动关机
 ​
 #重启:
 reboot
 init6
 shutdown -r now
 ​
 #修改语言
 修改LANG变量实现中文语言的提示

 

1、shell

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

用户使用应用程序发布指令

shell去通知操作系统需要进行什么样的操作

内核相当于操作系统去指挥硬件,硬件才能工作,否则无法交互。

shell内核具有调动硬件的功能

不同的shell环境

bash,是linux里面默认的shell程序位于/bin/bash; csh、ksh语言不同比如中文英文都是交流的语言

 [root@localhost ~]# echo $SHELL            //显示当前shell
 /bin/bash
 [root@localhost ~]# cat /etc/shells       //显示当前系统所有使用的shell
 /bin/sh   
 /bin/bash
 /sbin/nologin       ###用户无法登录
 /usr/bin/sh
 /usr/bin/bash
 /usr/sbin/nologin
 /bin/tcsh
 /bin/csh
 [root@localhost mnt]# sh                       切换shell环境
 sh-4.2# 
 [root@localhost mnt]# pstree                    查看使用过的shell环境
 ├─sshd───sshd───bash───csh───bash───tcsh───bash───pstree
         ├─systemd-journal
         ├─systemd-logind
         ├─systemd-udevd
         ├─tuned───4*[{tuned}]
         ├─upowerd───2*[{upowerd}]
         ├─vmtoolsd───{vmtoolsd}
         ├─wpa_supplicant
         └─xdg-permission-───2*[{xdg-permission-}]

 

内部命令由bash软件提供;外部命令需手动安装

shell与内、外部命令

1、shell 分为内部命令 和外部命令,一般先执行内部命令,hash 再执行外部命令(别名最大)

内部命令外部命令
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 Linux系统中能够完成特点功能的脚本文件或二进制程序
属于shell的一部分 属于Shell解释器程序之外的命令
没有单独对应的系统文件 每个外部命令对应了系统的一个文件
自动载入内存,可以直接使用 必须知道其对应的文件位置,由Shell加载后才能执行

2、help查看内部命令

 
[root@localhost ~]# help 
 GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)
 这些 shell 命令是内部定义的。请输入 `help' 以获取一个列表.
 输入 `help 名称' 以得到有关函数`名称'的更多信息.
 使用 `info bash' 来获得关于 shell 的更多一般性信息
 使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息.
 ​
 名称旁边的星号 (*) 意味着该命令被禁用.
 ​
  job_spec [&]                           history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 h>
  (( 表达式 ))                             if 命令; then 命令; [ elif 命令; then 命令; ]... [ else 命>
  . 文件名 [参数]                           jobs [-lnprs] [任务声明 ...] 或 jobs -x 命令 [参数]
  :                                          kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 >
  [ 参数... ]                                        let 参数 [参数 ...]
  [[ 表达式 ]]                                          local [option] 名称[=值] ...
  alias [-p] [名称[=值] ... ]                           logout [n]
  bg [任务声明 ...]                                  mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C >
  bind [-lpvsPVS] [-m 键映射] [-f 文件名] [-q 名称] [-u 名称>  popd [-n] [+N | -N]
  break [n]                                          printf [-v var] 格式 [参数]
  builtin [shell 内嵌 [参数 ...]]                    pushd [-n] [+N | -N | 目录]
  caller [表达式]                                       pwd [-LP]
  casein [模式 [| 模式]...) 命令 ;;]... esac        read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读>
  cd [-L|[-P [-e]]] [dir]                            readarray [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [->
  command [-pVv] 命令 [参数 ...]                      readonly [-aAf] [name[=value] ...] or readonly -p
  compgen [-abcdefgjksuv] [-o 选项]  [-A 动作] [-G 全局模式] [>  return [n]
  complete [-abcdefgjksuv] [-pr] [-DE] [-o 选项] [-A 动作] [-G 全>  select NAME [in 词语 ... ;] do 命令; done
  compopt [-o|+o 选项] [-DE] [名称 ...]             set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
  continue [n]                                                 shift [n]
  coproc [名称] 命令 [重定向]                                     shopt [-pqsu] [-o] [选项名 ...]
  declare [-aAfFgilrtux] [-p] [name[=value] ...]                         source 文件名 [参数]
  dirs [-clpv] [+N] [-N]                                                 suspend [-f]
  disown [-h] [-ar] [任务声明 ...]                                   test [表达式]
  echo [-neE] [参数 ...]                                               time [-p] 管道
  enable [-a] [-dnps] [-f 文件名] [名称 ...]                        times
  eval [参数 ...]                                                      trap [-lp] [[参数] 信号声明 ...]
  exec [-cl] [-a 名称] [命令 [参数 ...]] [重定向 ...]           真
  exit [n]                                                               type [-afptP] 名称 [名称 ...]
  export [-fn] [名称[=值] ...] 或 export -p              typeset [-aAfFgilrtux] [-p] name[=value] ...
  伪                                                        ulimit [-SHacdefilmnpqrstuvx] [限制]
  fc [-e 编辑器名] [-lnr] [起始] [终结] 或 fc -s [模式=替�>  umask [-p] [-S] [模式]
  fg [任务声明]                                                      unalias [-a] 名称 [名称 ...]
  for 名称 [in 词语 ... ] ; do 命令; done                          unset [-f] [-v] [名称 ...]
  for (( 表达式1; 表达式2; 表达式3 )); do 命令; done          until 命令; do 命令; done
  function 名称 { 命令 ; } 或 name () { 命令 ; }                  variables - 一些 shell 变量的名称和含义
  getopts 选项字符串 名称 [参数]                                wait [编号]
  hash [-lr] [-p 路径名] [-dt] [名称 ...]                           while 命令; do 命令; done
  help [-dms] [模式 ...]                                               { 命令 ; }

 


 

3、可以使用type命令区分内外命令

 
[root@localhost ~]# type cd 
 cd 是 shell 内嵌                        //内嵌代表内部命令
 [root@localhost ~]# type -a ls
 ls 是 `ls --color=auto' 的别名          //别名代表外部命令  
 ls 是 /usr/bin/ls                      //外部命令会有程序路径
 ls 是 /bin/ls
 [root@localhost ~]# whereis ls
 ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
 [root@localhost ~]# type -a echo
 echo 是 shell 内嵌
 echo 是 /usr/bin/echo
 echo 是 /bin/echo
 外部命令存放于 echo $PATH  一个一个找,找到为止,找不到就报无命令
 [root@localhost ~]# echo $PATH
 /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
 外部命令使用过后会被记录在内存(缓存,但是会占用内存,临时性的)加快读取速度
 [root@localhost ~]# type useradd
 useradd 是 /usr/sbin/useradd
 [root@localhost ~]# useradd wu
 [root@localhost ~]# type useradd 
 useradd 已被哈希 (/usr/sbin/useradd)
 [root@localhost ~]# hash
 命中  命令                           //前面数字代表用过几次
    1    /usr/bin/grep
    1    /usr/bin/tail
    1    /usr/bin/du
    1    /usr/bin/vim
    2    /usr/sbin/useradd
    1    /usr/bin/whereis
    2    /usr/bin/cp
    1    /usr/bin/ln
    9    /usr/bin/ls
    7    /usr/bin/find
 [root@localhost ~]# hash -r
 [root@localhost ~]# hash
 hash: 哈希表为空
 [root@localhost ~]# type useradd
 useradd 是 /usr/sbin/useradd
 [root@localhost ~]# useradd wu
 useradd:用户“wu”已存在
 [root@localhost ~]# hash
 命中  命令
    1    /usr/sbin/useradd
 [root@localhost ~]# which ping
 /usr/bin/ping
 [root@localhost ~]# which help
 /usr/bin/which: no help in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin)
 [root@localhost ~]# whereis echo
 echo: /usr/bin/echo /usr/share/man/man1/echo.1.gz /usr/share/man/man1p/echo.1p.gz

 

4、开启或关闭内部命令

关闭:enable -n 内部命令

开启:enable 内部命令

5、hash

缓存空间

hash -d 加缓存里的命令 单独删除

hash -r 删除所有

将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉hash值之后,才可以继续使用。

 [root@localhost mnt]# echo $PATH
 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root:/root/bin
 [root@localhost mnt]# mv /usr/bin/ls /usr/local//bin
 [root@localhost mnt]# ls
 -bash: /usr/bin/ls: 没有那个文件或目录
 [root@localhost mnt]# hash 
 命中  命令
    1    /usr/bin/mv
    2    /usr/bin/ls
    6    /usr/bin/cd
 [root@localhost mnt]# hash -d ls
 [root@localhost mnt]# ls
 1.5.txt  f15..txt   f1.txt  f3.txt  f5.txt
 15..txt  f15...txt  f2.txt  f4.txt
 [root@localhost mnt]# hash
 命中  命令
    1    /usr/bin/mv
    1    /usr/local/bin/ls
    6    /usr/bin/cd

 

2、命令行格式

命令字 空格 [选项] 空格 [参数]

解释命令字 选项 参数各自的意思及具体使用方法

  1. 命令字 是整条命令中最关键的一部分 唯一确定

  2. 选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“--”符号引导 通常完整的单词

    类unix风格:不加“-”、“--”符合引导

  3. 参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个

”;“可以隔开命令,执行多个命令

编辑Linux命令行的辅助操作(扩展)

快捷键功能
Tab 键 自动补齐(两次可以显示所有选项)
反斜杠“” 强制换行或转义
Ctrl+e 或 end 键 光标移到最后
Ctrl+U 清空至行首不包括当前光标处的 字符
Ctrl+K 清空至行尾包括当前光标处的字符
Ctrl+a 光标移到最前
Ctrl+w 从当前光标删除到开头
ALT+d 从当前光标删除末尾
Ctrl+l 清屏
Ctrl+c 取消本次命令编辑
Ctrl+s/Ctrl+q 锁屏/解锁
向上下箭头 回看执行过的命令

 

3、获得命令帮助

help

格式说明(扩展)

  • []——可选项

  • CAPS或<>表示可变化的数据

  • ...表示一个列表可加多个一个或多个

  • x|y|z 表示或的意思

  • -abc 是-a -b -c (有些命令选项有先后顺序) 多个 -abc 一般而言是没有顺序先后 (绝大多数是没有的,只有少数分先后

只能查看内部命令的 使用方法 tar -zxvf tar zxfv -区分前后 解压 压缩

 
[root@localhost ~]#help echo 
 #内部命令查看帮助
 echo: echo [-neE] [参数 ...]
     将参数写到标准输出。
     
     在标准输出上显示 ARG 参数后跟一个换行。
     
     选项:
       -n    不要追加换行
       -e    启用下列反斜杠转义的解释
       -E    显式地抑制对于反斜杠转义的解释
     
     `echo' 对下列反斜杠字符进行转义:
       a    警告(响铃)
       b    退格
       c    抑制更多的输出
       e    转义字符
       f    格式提供
       n    换行
       r    回车
       t    横向制表符
       v    纵向制表符
       \    反斜杠
       nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
         0到3个八进制数字
       xHH  以 HH (十六进制)为值的八比特字符。HH可以是
         一个或两个十六进制数字
     
     退出状态:
     返回成功除非有写错误发生。
 # -n 不换行显示
 [root@localhost ~]#echo -ne "1 2t3"
 1 2 3[root@localhost ~]#echo -ne "1 2n3"
 1 2
 3[root@localhost ~]#echo -n "1 2 3";echo "123"
 1 2 3123
 [root@localhost ~]#echo  "1 2 3";echo "123"
 1 2 3
 123
 [root@localhost ~]#echo -e "1 2b 3"        #  b  删除前一个字符
 1  3
 [root@localhost ~]#echo -e "1n 2n 3"      #n换行
 1
  2
  3
 [root@localhost ~]#echo -e "1t 2t 3"      #tab键叫制表符 
 1    2   3

 

--help

查看外部命令帮助

 
  1 [root@localhost ~]#ls --help
  2  用法:ls [选项]... [文件]...
  3  List information about the FILEs (the current directory by default).
  4  Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
  5   6  Mandatory arguments to long options are mandatory for short options too.
  7    -a, --all         不隐藏任何以. 开始的项目
  8    -A, --almost-all      列出除. 及.. 以外的任何项目
  9        --author          与-l 同时使用时列出每个文件的作者
 10    -b, --escape          以八进制溢出序列表示不可打印的字符
 11        --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,
 12                                 '--block-size=M' prints sizes in units of
 13                                 1,048,576 bytes; see SIZE format below
 14    -B, --ignore-backups       do not list implied entries ending with ~
 15    -c                         with -lt: sort by, and show, ctime (time of last
 16                                 modification of file status information);
 17                                 with -l: show ctime and sort by name;
 18                                 otherwise: sort by ctime, newest first
 19    -C                         list entries by columns
 20        --color[=WHEN]         colorize the output; WHEN can be 'never', 'auto',
 21                                 or 'always' (the default); more info below
 22    -d, --directory            list directories themselves, not their contents
 23    -D, --dired                generate output designed for Emacs' dired mode
 24    -f                         do not sort, enable -aU, disable -ls --color
 25    -F, --classify             append indicator (one of */=>@|) to entries
 26        --file-type            likewise, except do not append '*'
 27        --format=WORD          across -x, commas -m, horizontal -x, long -l,
 28                                 single-column -1, verbose -l, vertical -C
 29        --full-time            like -l --time-style=full-iso
 30    -g                类似-l,但不列出所有者
 31        --group-directories-first
 32                               group directories before files;
 33                                 can be augmented with a --sort option, but any
 34                                 use of --sort=none (-U) disables grouping
 35    -G, --no-group        以一个长列表的形式,不输出组名
 36    -h, --human-readable      与-l 一起,以易于阅读的格式输出文件大小
 37                  (例如 1K 234M 2G)
 38        --si          同上面类似,但是使用1000 为基底而非1024
 39    -H, --dereference-command-line
 40                               follow symbolic links listed on the command line
 41        --dereference-command-line-symlink-to-dir
 42                               follow each command line symbolic link
 43                                 that points to a directory
 44        --hide=PATTERN         do not list implied entries matching shell PATTERN
 45                                 (overridden by -a or -A)
 46        --indicator-style=WORD  append indicator with style WORD to entry names:
 47                                 none (default), slash (-p),
 48                                 file-type (--file-type), classify (-F)
 49    -i, --inode                print the index number of each file
 50    -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
 51    -k, --kibibytes            default to 1024-byte blocks for disk usage
 52    -l                使用较长格式列出信息
 53    -L, --dereference     当显示符号链接的文件信息时,显示符号链接所指示
 54                  的对象而并非符号链接本身的信息
 55    -m                所有项目以逗号分隔,并填满整行行宽
 56    -n, --numeric-uid-gid     类似 -l,但列出UID 及GID 号
 57    -N, --literal         输出未经处理的项目名称 (如不特别处理控制字符)
 58    -o                类似 -l,但不列出有关组的信息
 59    -p,  --indicator-style=slash  对目录加上表示符号"/"
 60    -q, --hide-control-chars   print ? instead of nongraphic characters
 61        --show-control-chars   show nongraphic characters as-is (the default,
 62                                 unless program is 'ls' and output is a terminal)
 63    -Q, --quote-name           enclose entry names in double quotes
 64        --quoting-style=WORD   use quoting style WORD for entry names:
 65                                 literal, locale, shell, shell-always, c, escape
 66    -r, --reverse         逆序排列
 67    -R, --recursive       递归显示子目录
 68    -s, --size            以块数形式显示每个文件分配的尺寸
 69    -S                         sort by file size
 70        --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
 71                                 time (-t), version (-v), extension (-X)
 72        --time=WORD            with -l, show time as WORD instead of default
 73                                 modification time: atime or access or use (-u)
 74                                 ctime or status (-c); also use specified time
 75                                 as sort key if --sort=time
 76        --time-style=STYLE     with -l, show times using style STYLE:
 77                                 full-iso, long-iso, iso, locale, or +FORMAT;
 78                                 FORMAT is interpreted like in 'date'; if FORMAT
 79                                 is FORMAT1<newline>FORMAT2, then FORMAT1 applies
 80                                 to non-recent files and FORMAT2 to recent files;
 81                                 if STYLE is prefixed with 'posix-', STYLE
 82                                 takes effect only outside the POSIX locale
 83    -t                         sort by modification time, newest first
 84    -T, --tabsize=COLS         assume tab stops at each COLS instead of 8
 85    -u                         with -lt: sort by, and show, access time;
 86                                 with -l: show access time and sort by name;
 87                                 otherwise: sort by access time
 88    -U                         do not sort; list entries in directory order
 89    -v                         natural sort of (version) numbers within text
 90    -w, --width=COLS           assume screen width instead of current value
 91    -x                         list entries by lines instead of by columns
 92    -X                         sort alphabetically by entry extension
 93    -1                         list one file per line
 94  95  SELinux options:
 96  97    --lcontext                 Display security context.   Enable -l. Lines
 98                               will probably be too wide for most displays.
 99    -Z, --context              Display security context so it fits on most
100                               displays.  Displays only mode, user, group,
101                               security context and file name.
102    --scontext                 Display only security context and file name.
103        --help        显示此帮助信息并退出
104        --version     显示版本信息并退出
105 106  SIZE is an integer and optional unit (example: 10M is 10*1024*1024).  Units
107  are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/bacolate/p/17572075.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!

相关课程