Linux常用命令

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    纵向制表符
       \\    反斜杠
       \0nnn 以 NNN (八进制)为 ASCII 码的字符。 NNN 可以是
         0到3个八进制数字
       \xHH  以 HH (十六进制)为值的八比特字符。HH可以是
         一个或两个十六进制数字
     
     退出状态:
     返回成功除非有写错误发生。
 # -n 不换行显示
 [root@localhost ~]#echo -ne "1 2\t3"
 1 2 3[root@localhost ~]#echo -ne "1 2\n3"
 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 2\b 3"        #  \b  删除前一个字符
 1  3
 [root@localhost ~]#echo -e "1\n 2\n 3"      #\n换行
 1
  2
  3
 [root@localhost ~]#echo -e "1\t 2\t 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).

 


 
 使用色彩来区分文件类型的功能已被禁用,默认设置和 --color=never 同时禁用了它。
 使用 --color=auto 选项,ls 只在标准输出被连至终端时才生成颜色代码。
 LS_COLORS 环境变量可改变此设置,可使用 dircolors 命令来设置。
 
 
 退出状态:
  0 正常
  1 一般问题 (例如:无法访问子文件夹)
  2 严重问题 (例如:无法使用命令行参数)
 
 GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
 请向<http://translationproject.org/team/zh_CN.html> 报告ls 的翻译错误
 要获取完整文档,请运行:info coreutils 'ls invocation'

man

man分九个章节默认打开第一章节(menu菜单 manual手册)

 
 1 [root@localhost ~]# whatis ls
 2  ls (1)               - 列目录内容
 3      1代表第一章手册
 4  ls (1p)              - list directory contents
 5      1p 代表开发程序使用
 6  7  [root@localhost ~]# whatis passwd 
 8  #可以查看命令的章节
 9  passwd (5)           - (未知的主题)
10  sslpasswd (1ssl)     - compute password hashes
11  passwd (1)           - update user's authentication tokens
12  [root@localhost ~]# man 5 passwd      
13  #查看第五章内容,第5章一般是配置文件格式详细解释
14  [root@localhost ~]# man 7 ascii
15  [root@localhost ~]# man 7 UTF-8
16  [root@localhost ~]# mandb
17  #生成man数据库,man命令无效时
18  正在删除 /usr/share/man 里的旧数据库条目...
19  mandb: 警告:/usr/share/man/man8/fsck.fat.8.manpage-fix.gz:忽略错误的文件名
20  正在处理 /usr/share/man 下的手册页...
21  正在删除 /usr/share/man/hu 里的旧数据库条目...
22  正在删除 /usr/share/man/pl 里的旧数据库条目...

 


 
 
 
 
[root@localhost ~]# man man
 ​
  该清单是一组用冒号分隔的欲查找的手册清单。此选项将覆盖                MANSECT               环境变量。
               有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区 段,你可以在此指定  man
               查找区段的顺序。具体区段划分如下所示:
               区段1:用户指令
               区段2:系统调用
               区段3:程序库调用
               区段4:设备
               区段5:文件格式     shadow passwd fstab
               区段6:游戏
               区段7:杂项
               区段8:系统指令
               区段9:内核内部指令
               区段n:Tcl或Tk指令
View Code

 


 

info

info 命令

百度

4、目录操作

4.1 查看切换显示统计目录

4.1.1.pwd(print work directory)

功能:显示当前路径

[root@localhost ~]# pwd       //显示当前路径
/root
[root@localhost bin]# cd /bin
[root@localhost bin]# ll /bin
lrwxrwxrwx. 1 root root 7 8月   6 20:57 /bin -> usr/bin
[root@localhost bin]# pwd -P
/usr/bin
#-P 显示真实路径
快捷方式   不是文件真正的路径

[root@localhost opt]#ln -s /opt/ky18/   /mnt/k18
#设置软连接
[root@localhost opt]#cd /mnt/k18/
#切换到软连接
[root@localhost k18]#ls
#
[root@localhost k18]#pwd
#显示的是当前路径
/mnt/k18
[root@localhost k18]#pwd -Pba
#文件的真实路径
/opt/ky18
View Code

 

4.1.2.cd(change directory)

功能:切换所在文件夹位置

格式:cd 地址

命令效果
cd cd~ 若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd - 到前一次目录
一个点号“.”开头(自己) 表示以当前的工作目录作为起点(已点开头的是)
两个点号“..”开头(上一级) 表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头 表示以指定用户的宿主目录(家目录)作为起点
"."开头文件 表示隐藏文件
~ky18 (有个用户叫ky18 家目录为起点) 表示以指定用户的宿主目录作为起点

linux文件目录

全都在根目录下,树状结构。

 1 [root@localhost opt]#cat passwd
 2 #此处省略了路径
 3 [root@localhost opt]#cat ./passwd 
 4 #查看当前路径下的passwd文件
 5 [root@localhost opt]#cd ./ky18/
 6 #切换到当前目录下的 ky18 文件夹
 7 [root@localhost ky18]#
 8 [root@localhost ky18]#cd ../../
 9 #切换到上两层的目录
10 
11 -      rw-r--r--. 1 root root 474 6月  27 11:33 dm.sh
12 
13 -   普通类型
14 l   连接
15 b   磁盘 
16 c   字符文件
17 d   目录
18 s   套接字                 
19 p   管道
20 
21 程序核程序之间通信
22 
23 mkdir /data/nginx/html -pv
24 
25 cd /data/nginx/html/
26 echo haishi > index.html
27 
28 systemctl   start     nginx
29 
30 systemctl   restart   nginx 

相对路径:以当前所在位置为起点

绝对路径:以根为起点

描述一个文件在系统中的位置

4.1.3.ls

生产环境中慎重直接使用,文件量过大会直接死机

功能:显示文件夹的文件,可查看文件具体大小。

格式:ls [选项] [文件或目录… ]

  • -l 已长格式显示文件和目录列表 ll=ls -l

  • -a 显示全部包括隐藏文件

  • -A 显示全部文件或隐藏文件,但不包括 . 和..

  • -d 仅列出目录本身,而不是列出目录内的文件数据

  • -h 友好显示文件大小(human,人性化)

  • -R 递归显示该目录及该目录的子目录下的所有内容

  • -t 已时间顺序显示

  • -r 倒序显示

  • --color 显示颜色

  • -S 以文件容量大小排序

当 ls 命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色
 1 [root@localhost mnt]# ll
 2 #长格式
 3 总用量 0
 4 drwxr-xr-x 3 root root 16 8月  21 10:39 aa
 5 第一个字段 d   代表文件类型比如 d是目录 - 是普通文件
 6 第2-9(rwxr-xr-x)字母表示该文件的权限
 7 root 文件所有者
 8 root 文件所属组
 9 16 文件大小
10 21 10:39 文件的最近使用时间
11 aa 文件或目录名称
12 
13 [root@test1 ~]# ls -a 
14 #显示所有 包括隐藏文件
15 .                .cache     .ICEauthority         .viminfo.tmp  下载
16 ..               .config    initial-setup-ks.cfg  .Xauthority   音乐
17 anaconda-ks.cfg  .cshrc     .lesshst              公共          桌面
18 .bash_history    .dbus      .local                模板
19 .bash_logout     .esd_auth  mysql.sh              视频
20 .bash_profile    hhh.cgg    .tcshrc               图片
21 .bashrc          .history   .viminfo              文档
22 ################################################
23 [root@test1 ~]# ls -A 
24 #显示所有 不包括. ..的隐藏文件
25 anaconda-ks.cfg  .config    .ICEauthority         .viminfo      图片
26 .bash_history    .cshrc     initial-setup-ks.cfg  .viminfo.tmp  文档
27 .bash_logout     .dbus      .lesshst              .Xauthority   下载
28 .bash_profile    .esd_auth  .local                公共          音乐
29 .bashrc          hhh.cgg    mysql.sh              模板          桌面
30 .cache           .history   .tcshrc               视频
31 ########################################################
32 [root@test1 ~]# ls -d   
33 #只显示本目录
34 .
35 
36 
37 [root@test1 ~]# ls -d /etc
38 ######################################################
39 [root@test1 ~]# ls -lh   //加单位k友好显示
40 总用量 16K
41 -rw-------. 1 root root 1.6K 6月  18 23:13 anaconda-ks.cfg
42 -rw-r--r--. 1 root root    4 6月  28 13:47 hhh.cgg
43 -rw-r--r--. 1 root root 1.6K 6月  18 23:15 initial-setup-ks.cfg
44 -rwxr-xr-x. 1 root root 2.3K 6月  28 00:46 mysql.sh
45 drwxr-xr-x. 2 root root    6 6月  18 23:38 公共
46 drwxr-xr-x. 2 root root    6 6月  18 23:38 模板
47 drwxr-xr-x. 2 root root    6 6月  18 23:38 视频
48 drwxr-xr-x. 2 root root    6 6月  18 23:38 图片
49 drwxr-xr-x. 2 root root    6 6月  18 23:38 文档
50 drwxr-xr-x. 2 root root    6 6月  18 23:38 下载
51 drwxr-xr-x. 2 root root    6 6月  18 23:38 音乐
52 drwxr-xr-x. 2 root root    6 6月  18 23:38 桌面
53 ######################################################
54 [root@test1 opt]# ls -R     //递归显示
55 .:
56 123456.txt  123.txt  1.txt  2.txt  abc.txt  rh  test.txt
57 
58 ./rh:
59 aaa
60 
61 ./rh/aaa:

 

颜色表示的文件类型:

  • 黑色数据文件 普通文件

  • 绿色 可执行文件

  • 黄色 块设备文件硬件设备(硬盘)

  • 红色 压缩包

  • 蓝色 文件夹

  • 天蓝色 连接文件(快捷方式)

[root@localhost ~]# vim /etc/DIR_COLORS
#颜色在这里显示

文件类型

第一个字符文件类型
- 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d 目录,类似 Windows 系统中的文件夹。
b 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c 字符设备文件
s 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l 链接文件,类似 Windows 系统中的快捷方式。

另外:file命令可以识别文件类型,文件后缀无法判断文件类型,文件后缀无所谓

4.1.4.通配符

去匹配文件名(包括文件夹)ls

符号效果
匹配一个字符 f?.txt
* 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10} 1到10
{a..z} a b c ...z
{A..Z} A B C .....Z
[123]([此处括号里值代表一个字符]) 取其中之一有就显示没有也无所谓
[0-9]单个数字 范围需要注意
[0-9]单个数字 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示 a-z
[[:upper:]] 大写字母表示 A-Z
[^zhou] 匹配列表中的所有字符以外的字符
[[:digit:]] 任意数字,相当于0-9
[[:alpha:]] 任意字母
4.1.5.alias

功能:临时修改,设置命令代号

格式:alias 命令别名=’命令‘

  • unalias 删除别名

  • \加别名命令 (显示原始命令)

du --max-depth=1 /etc/ |sort -nr
du -d 2 /etc/ |sort -nr
a s h
[root@localhost dev]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@localhost dev]# alias myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33'

#不加引号无法识别命令
[root@localhost dev]# alias myls=ls -alh
-bash: alias: -alh: 未找到

#就使用原来的命令,使用\
[root@localhost dev]# ls
[root@localhost dev]# \ls

#删除别名
[root@localhost dev]# unalias myvim 
[root@localhost dev]# myvim
bash: myvim: 未找到命令...

永久修改

  • 在/etc/.profile会影响全部用户

  • /root/.bashrc只影响当前用户

优先级:绝对路径>别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)

4.1.6.du(disk usage)

功能:查看当前所在文件夹占用了磁盘的多少单元块。默认1单元块为4K, 不满4K 按4k算。

格式:du [选项] [文件或目录… ]

du默认是递归,会显示全部

选项说明
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s(--summarize) 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
--max-depth=n (-dn) 最大显示到第n层
--exclude 不计入统计

a s无法同时使用;df 文件夹名——可查看目录(文件夹)的空间使用情况,默认1KB为单位。

df(disk free)

4.2 创建

  • 文件名最长255个字节

  • 包括路径在内文件名称最长4095

  • 除了斜杠和NULL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用。

4.2.1.mkdir(make directories)

功能:创建目录;- p 递归创建,没有文件夹会自动递归创建

格式:mkdir [选项] 目录位置和名称

[root@localhost data]# mkdir a b c d
#创建多个文件夹
[root@localhost data]# ls
a  b  c  d
[root@localhost data]# mkdir -p aaa/bbb/cccc
# 递归创建文件夹
[root@localhost data]# ls
a  aaa  b  c  d

[root@localhost data]# tree
.
├── a
├── aaa
│   └── bbb
│       └── cccc
├── b
├── c
└── d

mkdir  -pv /mysql/{3306,3307,3308}/{data,etc,socket,log,bin,pid}
#一次建立多个文件

 

4.2.2.touch
  • touch 新文件…(可为空) 文件名 不存在就是新建空文件

  • touch 不会破坏已有文件 刷新时间

每个文件有三个时间戳:

  1. access time 访问时间,atime,读取文件内容

  2. modify time 修改时间,mtime,改变文件内容(数据)

  3. change time 改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )

4.2.3.硬连接与软连接文件

硬连接:同一个文件,不支持文件夹

软连接:类似快捷方式,创建新文件存入路径指向原来的文件

ln [-s]源文件或目录...链接文件或目标位置

带s是软连接,软连接又称符号连接

ln -s 绝对路径的源文件 软连接位置

ln 绝对路径源文件 硬连接位置

对比项硬连接软连接
本质 本质是同一个文件 本质不是同一个文件
inode 相同 不同
连接数 创建新的硬连接,连接数会增加,删除硬连接,连接数会减少 删除,新建都不会改变
文件夹 不支持 支持
删除源文件 只是连接数减一,但连接文件的访问不受影响 无法访问连接文件
文件类型 和源文件相同 连接文件和原文件无关
文件大小 和源文件相同(指向硬盘的同一个文件) 原文件的路径的长度

ll所看的文件信息中,权限后的数字是硬连接数量

[root@localhost data]# cp /etc/passwd /data/f1.txt
[root@localhost data]# ls
f1.txt
[root@localhost data]# ln /data/f1.txt /data/f11.txt
#建立硬连接
#不能跨分区建立连接 无法对文件夹创建 
[root@localhost data]# ln /data/f1.txt /boot/f111.txt
ln: 无法创建硬链接"/boot/f111.txt" => "/data/f1.txt": 无效的跨设备连接
#删除硬链接可以继续访问硬链接。
#为什么文件夹的连接数是2,包含自己.与所含文件指向..
#.也是名字..也是名字
4.2.4.复制

cp(copy)备份,若目标文件夹不存在会自动创建文件夹,若设置目的文件名会改名字

cp [选项]...原文件...目标文件 相当于复制+改名

cp [选项]...原文件...文件夹 多个文件只能复制到文件夹

cp [选项]...原文件夹...目标文件 目标文件成为了文件夹

cp [选项]...原文件夹...文件夹 文件备份

选项说明
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持原文件的权限、属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a 完整保留作用信息
-v 可视化
-u 相当于增备,差异备份(只对文件夹起作用)

如果已有文件夹会生成子目录

[zhangsan@localhost ~]$ ll
#张三用户新建文件
总用量 0
-rw-rw-r--. 1 zhangsan zhangsan 0 8月  29 11:17 zhansan
[root@localhost zhangsan]# cp -a zhansan /data/
#保留所有权限 包括软连接文件
[root@localhost data]# ll
总用量 0
-rw-r--r--. 1 root     root     0 8月  29 11:06 1
-rw-rw-r--. 1 zhangsan zhangsan 0 8月  29 11:17 zhansan


[root@localhost data]# cp -r /etc/ /opt/
#复制文件夹要加 -r 不加不让复制
####连续cp三次
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#改名字
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#变成 etc.bak 的子目录
[root@localhost data]# cp -r /etc/ /opt/etc.bak
#会问你要不要覆盖,cp是别名 加\cp 直接覆盖


[root@localhost data]# cp /etc/passwd /etc/shadow /opt
[root@localhost data]# cp /etc/passwd /etc/shadow /opt/f111.txt 
#复制多个文件,目的地必须是目录,不能是文件,且目录要存在。
cp: 目标"/opt/f111.txt" 
4.2.5.移动

功能:移动

格式:mv [选项] 原文件或目录 目标文件或目录

选项说明
-f 强制覆盖,如果目标文件已存在,则不询问,直接强制覆盖;
-i 交互移动,如果目标文件已存在,则询问用户是否覆盖(默认选项)
-n 如果目标文件已经存在,怎不会覆盖移动,也不询问用户
-v 显示文件或目录的移动过程

可用通配符批量操作

4.2.6.删除文件

rm [选项] 目标文件或目录

-f 强制

-i 交互

-r 递归

删除文件后空间不释放: 有别人在使用 这个大文件 造成空间不释放

[root@localhost ~]# cp /dev/zero /boot/bigfile.img
cp: 写入"/boot/bigfile.img" 出错: 设备上没有空间
cp: 扩展"/boot/bigfile.img" 失败: 设备上没有空间
[root@localhost ~]# df
文件系统                   1K-块     已用   可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293876 181644   99% /
devtmpfs                  917600        0 917600    0% /dev
tmpfs                     933524        0 933524    0% /dev/shm
tmpfs                     933524     9216 924308    1% /run
tmpfs                     933524        0 933524    0% /sys/fs/cgroup
/dev/sda1                5232640  5232620     20  100% /boot
tmpfs                     186708       12 186696    1% /run/user/42
tmpfs                     186708        0 186708    0% /run/user/0
#磁盘使用满了以后会造成服务的停止业务受影响,是一个重大的事故
[root@localhost ~]# ll -S /boot             ##文件大小排序
总用量 5191344
-rw-r--r--. 1 root root 5171437568 8月  26 01:00 bigfile.img
-rw-------. 1 root root   69266920 8月   6 21:02 initramfs-0-rescue-869dbd607e5e4f758fa152ef2229f2b6.img
-rw-------. 1 root root   30802796 8月   6 21:03 initramfs-3.10.0-693.el7.x86_64.img
-rw-------. 1 root root   18808968 8月   6 21:06 initramfs-3.10.0-693.el7.x86_64kdump.img
-rw-r--r--. 1 root root   10182684 8月   6 21:02 initrd-plymouth.img
-rwxr-xr-x. 1 root root    5877760 8月   6 21:02 vmlinuz-0-rescue-869dbd607e5e4f758fa152ef2229f2b6
-rwxr-xr-x. 1 root root    5877760 8月  23 2017 vmlinuz-3.10.0-693.el7.x86_64
-rw-------. 1 root root    3228420 8月  23 2017 System.map-3.10.0-693.el7.x86_64
-rw-r--r--. 1 root root     293027 8月  23 2017 symvers-3.10.0-693.el7.x86_64.gz
-rw-r--r--. 1 root root     140894 8月  23 2017 config-3.10.0-693.el7.x86_64
drwx------. 5 root root         97 8月   6 21:03 grub2
drwxr-xr-x. 2 root root         27 8月   6 20:58 grub
drwxr-xr-x. 3 root root         17 8月   6 20:57 efi
#使用另一个xshell打开  bigfile文件 也是可以删除的,但是空间不会释放
#文件正在使用可以删除,
[root@localhost ~]# rm -rf /boot/bigfile.img 
[root@localhost ~]# df
文件系统                   1K-块     已用   可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293964 181556   99% /
devtmpfs                  917600        0 917600    0% /dev
tmpfs                     933524        0 933524    0% /dev/shm
tmpfs                     933524     9216 924308    1% /run
tmpfs                     933524        0 933524    0% /sys/fs/cgroup
/dev/sda1                5232640  5232620     20  100% /boot
tmpfs                     186708       12 186696    1% /run/user/42
tmpfs                     186708        0 186708    0% /run/user/0
[root@localhost ~]# lsof |grep delete 
#过滤出被删除的文件list open  file
pulseaudi 1671                 gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
alsa-sink 1671 1674            gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
alsa-sour 1671 1677            gdm    6u      REG                0,4   67108864      23475 /memfd:pulseaudio (deleted)
vim       7532                root    3r      REG                8,1 5171437568         80 /boot/bigfile.img (deleted)
[root@localhost ~]# w
#查看谁在使用什么进程
 01:09:59 up  8:49,  2 users,  load average: 0.98, 0.57, 0.27
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.91.1     00:54    7.00s  0.12s  0.01s w
root     pts/1    192.168.91.1     01:05    4:07   4:07   4:06  vim /boot/bigfile.img
#另一终端退出使用空间被释放
[root@localhost ~]# df 
文件系统                   1K-块     已用    可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293868  181652   99% /
devtmpfs                  917600        0  917600    0% /dev
tmpfs                     933524        0  933524    0% /dev/shm
tmpfs                     933524     9216  924308    1% /run
tmpfs                     933524        0  933524    0% /sys/fs/cgroup
/dev/sda1                5232640   182388 5050252    4% /boot
tmpfs                     186708       12  186696    1% /run/user/42
tmpfs                     186708        0  186708    0% /run/user/0
[root@localhost ~]# echo"" > /boot/bigfile.img 
#写入空文件,依赖shell
[root@localhost ~]# df
文件系统                   1K-块     已用    可用 已用% 挂载点
/dev/mapper/centos-root 10475520 10293892  181628   99% /
devtmpfs                  917600        0  917600    0% /dev
tmpfs                     933524        0  933524    0% /dev/shm
tmpfs                     933524     9216  924308    1% /run
tmpfs                     933524        0  933524    0% /sys/fs/cgroup
/dev/sda1                5232640   182388 5050252    4% /boot
tmpfs                     186708       12  186696    1% /run/user/42
tmpfs                     186708        0  186708    0% /run/user/0
[root@localhost ~]# rm -rf /boot/bigfile.img
#清空文件

4.3 查找文件

4.3.1.locate
  • locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db

  • 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库

  • 索引构建过程需要遍历整个根文件系统,很消耗资源

  • locate和updatedb命令来自于mlocate包

 

-i 不区分大小写的搜索
-n N 只列举前N个匹配项目

updatedb 

[root@localhost /]#touch YJ
[root@localhost /]#
[root@localhost /]#
[root@localhost /]#updatedb
[root@localhost /]#locate -i yj
/YJ
/yj
/usr/share/man/man3/pthread_tryjoin_np.3.gz
[root@localhost /]#locate -n 2 yj
/yj
/usr/share/man/man3/pthread_tryjoin_np.3.gz
[root@localhost /]#locate -n 1 yj
/yj
4.3.2.find

精确,支持多条件

格式:find [查找路径] [OPTION]... [查找条件] [处理动作]

查找路径:指定具体目标路径;不指定为默认为当前目录

查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕(print);处理动作要与“\;”搭配使用。

查找类型关键字说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 -iname "文件名称" 不区分大小写
按文件大小查找 -size 根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括 kB(注意 k 是小写)、MB、GB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
按inode号 -inum 根据文件inode号查找
按权限查找 -perm 按文件权限查找
最大搜索目录深度 -maxdepth level 按权限查找
最小搜索目录深度 -mindepth level 同上 find /etc -maxdepth 2 -mindepth 2
4.3.2.1 按层次查找
#掌握
-maxdepth level 最大搜索目录深度,指定目录下的文件为第1级
-mindepth level 最小搜索目录深度
例子:

find /etc/ -maxdepth 2
find /etc/ -mindepth 2
find /etc  -maxdepth 2 -mindepth 2
4.3.2.2 对每个目录先处理目录内的文件,再处理目录本身
了解
-depth  
-d #warning: the -d option is deprecated; please use -depth instead, because the latter is a POSIX-compliant feature

例子:

[root@localhost data]#tree /data/
/data/
├── aa
│   ├── 1.txt
│   └── 2.txt
└── passwd

1 directory, 3 files

[root@localhost data]#find /data/aa/
/data/aa/
/data/aa/1.txt
/data/aa/2.txt
[root@localhost data]#find /data/aa/ -depth 
/data/aa/1.txt
/data/aa/2.txt
/data/aa/
4.3.2.3根据文件名和inode查找
-name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
-inum n #按inode号查找
了解
-iname "文件名称"  #不区分字母大小写
-samefile name #相同inode号的文件
-links n   #链接数为n的文件

例子:

[root@localhost data]#find /etc/ -name "*.conf"


[root@localhost data]#ls -i
50331777 aa   9243846 passwd
[root@localhost data]#find -inum 50331777
./aa

[root@localhost data]#ln /data/passwd  ./hard
[root@localhost data]#ll
总用量 8
drwxr-xr-x. 2 root root   32 9月  20 01:14 aa
-rw-r--r--. 2 root root 2259 9月  20 01:00 hard
-rw-r--r--. 2 root root 2259 9月  20 01:00 passwd
[root@localhost data]#find -samefile passwd 
./passwd
./hard


[root@localhost data]#find -links 2

 

4.3.2.4根据属主、属组查找
-user USERNAME #查找属主为指定用户(UID)的文件
-group GRPNAME #查找属组为指定组(GID)的文件
-uid UserID #查找属主为指定的UID号的文件
-gid GroupID #查找属组为指定的GID号的文件
-nouser #查找没有属主的文件    无主
-nogroup #查找没有属组的文件
4.3.2.5根据文件类型
-type TYPE
TYPE可以是以下形式:
f: 普通文件
d: 目录文件
l: 符号链接文件
s:套接字文件
b: 块设备文件
c: 字符设备文件
p: 管道文件
4.3.2.6空文件或目录
-empty

indoe号

 

例子:

[root@centos7 ~]#find /app -type d -empty

 

4.3.2.7组合条件
与:-a ,默认多个条件是与关系   -a  可以省略
或:-o
非:-not   !

例子:

 
[root@localhost data]#find ! -type d
 ./passwd
 ./aa/1.txt
 ./aa/2.txt
 ./hard
 [root@localhost data]#find ! -type d -o ! -empty
4.3.2.8根据文件大小来查找
 -size [+|-]#UNIT #常用单位:k, M, G,c(byte),注意大小写敏感
 #UNIT: #表示(#-1, #],如:6k 表示(5k,6k]
 -#UNIT #表示[0,#-1],如:-6k 表示[0,5k]
 +#UNIT #表示(#,∞),如:+6k 表示(6k,∞)

例子

 
find /  -size +10G
4.3.2.9 根据时间戳
 #以“天”为单位
 -atime [+|-]# 
 # #表示[#,#+1)    如#是3   3 到 4天
 +# #表示[#+1,∞]   如#是3  代表 4天以上       
 ​
 -# #表示[0,#)    如#是3  3天以内
 -mtime
 -ctime
 -atime
 #以“分钟”为单位
 -amin
 -mmin
 -cmin
4.3.2.10 排除目录
 
####了解####
 ​
 #查找/etc/下,除/etc/security目录的其它所有.conf后缀的文件
 find /etc -path '/etc/security' -a -prune -o -name "*.conf"
 ​
 #查找/etc/下,除/etc/security和/etc/systemd,/etc/dbus-1三个目录的所有.conf后缀的文件
 find /etc \( -path "/etc/security" -o -path "/etc/systemd"  -o -path "/etc/dbus-1" \) -a -prune -o -name "*.conf"
 ​
 ​
 #排除/proc和/sys目录
 find / \( -path "/sys" -o -path "/proc"   \) -a -prune -o -type f -a -mmin -1
 ​
 ​
 ​
 find /etc \( -path "/etc/sane.d" -o -path "/etc/speech-dispatcher" \)  -prune -o -name "*.conf"
 
 
4.3.2.11处理动作
 
-print:默认的处理动作,显示至屏幕
 -ls:类似于对查找到的文件执行"ls -dils"命令格式输出
 -fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
 -delete:删除查找到的文件,慎用!
 -ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
 -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
 {}: 用于引用查找到的文件名称自身
 只有用上处理动作时才需要\;做结尾,这是格式规定

例子:

 #备份配置文件,添加.orig这个扩展名
 find  -name  ".conf"  -exec  cp {} {}.orig \;
 #提示删除存在时间超过3天以上的joe的临时文件
 find /tmp -ctime +3 -user joe -ok rm {} \;
 #在主目录中寻找可被其它用户写入的文件
 find ~ -perm -002  -exec chmod o-w {} \;
 #查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
 find /data –type f -perm 644  -name "*.sh" –exec chmod 755 {} \;
 ​
 #fls
 find /mnt/ -name "*.bak" -fls abc
 #将mnt  下  已bak结尾的文件     保存成abc
 

 manual  手册
 ​
 ​
 man   menu  菜单
 ​
 -size [+|-]#UNIT #常用单位:k, M, G,c(byte),注意大小写敏感 +大于  -小于
 ​
 -type TYPE
 TYPE可以是以下形式:
 f: 普通文件  file   -
 d: 目录文件   
 l: 符号链接文件
 s:套接字文件
 b: 块设备文件
 c: 字符设备文件
 p: 管道文件
 ​
 -user USERNAME #查找属主为指定用户(UID)的文件
 -group GRPNAME #查找属组为指定组(GID)的文件
 -uid UserID #查找属主为指定的UID号的文件
 -gid GroupID #查找属组为指定的GID号的文件
 -nouser #查找没有属主的文件
 -nogroup #查找没有属组的文件
 ​
 -name "文件名称" #支持使用glob,如:*, ?, [], [^],通配符要加双引号引起来
 -inum n #按inode号查找
 -links n   #链接数为n的文件
 ​
 

dd if=/dev/zero of=/opt/file1  bs=100M count=1

dd: 命令  复制

if 从哪个文件复制

of  复制到哪里

bs 复制的大小

count 复制的次数



[root@test1 opt]# find /etc/ -name passwd
#查找名字叫 passwd的文件
/etc/pam.d/passwd
/etc/passwd
[root@test1 opt]# find /etc/ -name *.conf
#查找所有.conf 结尾的 ,不要在当前路径下找自己路径下的文件
/etc/resolv.conf
/etc/fonts/conf.d/57-dejavu-serif.conf
/etc/fonts/conf.d/65-1-vlgothic-gothic.conf
/etc/fonts/conf.d/31-cantarell.conf
/etc/fonts/conf.d/65-0-lohit-nepali.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/65-0-lohit-bengali.conf
/etc/[root@test1 opt]# find /mnt -user root
#查找 用户为root的用户
/mnt
/mnt/abc
/mnt/ad
/mnt/ad/ad2
/mnt/ad/ad2/bbbbb.txt
/mnt/zhangsanlianjie

[root@test1 opt]# find -size 1k    
# 0.1字节 到 1k
./rh
./rh/aaa
[root@localhost boot]# find ./ -name "vm*"  
#查找vm开头的
[root@localhost boot]# find /boot/ -size -10M -a -name "*img"
#小于10M 的img文件



[root@localhost etc]# find /etc/ -maxdepth 2 -mindepth 2
#只看第二级目录

[root@localhost opt]# find /boot -d
#先显示 文件在显示目录
#找/home 下属于zhangsan的文件并列出属性
[root@localhost opt]# find /home -user zhangsan -ls
#找/home 下属于zhangsan的文件并列出属性

[root@localhost opt]# useradd hehe
[root@localhost opt]# userdel hehe
[root@localhost opt]# ls /home/
hehe  mysql  zhangsan
[root@localhost opt]# ll /home/
总用量 0
drwx------. 3     1002     1002 78 8月  26 09:27 hehe
drwx------. 3 mysql    mysql    78 8月  25 11:45 mysql
drwx------. 3 zhangsan zhangsan 78 8月   6 20:57 zhangsan
[root@localhost opt]# find /home/ -nouser
#找home下的无主文件夹
/home/hehe
/home/hehe/.mozilla
/home/hehe/.mozilla/extensions
/home/hehe/.mozilla/plugins
/home/hehe/.bash_logout
/home/hehe/.bash_profile
/home/hehe/.bashrc

#或与且的优先级
[root@localhost opt]# find /etc/ -type d -o -type l |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -ls |wc -l
1008
[root@localhost opt]# find /etc/ -type d -o -type l -a -ls |wc -l
274
[root@localhost opt]# find /etc/ \( -type d -o -type l \) -a -ls |wc -l
1008

[root@localhost opt]# find -size 1G
#查找1G的文件会把所有都显示出来
.
./100.img
./99.img

#按大小查找新建两个文件
[root@localhost opt]# dd if=/dev/zero of=99.img bs=99M count=1
[root@localhost opt]# dd if=/dev/zero of=100.img bs=100M count=1
[root@localhost opt]# ls
100.img  99.img
[root@localhost opt]# find -size 100M
./100.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
[root@localhost opt]# ll 99.img 
-rw-r--r--. 1 root root 103809024 8月  26 10:02 99.img
[root@localhost opt]# echo >>99.img 
[root@localhost opt]# ll 99.img 
-rw-r--r--. 1 root root 103809025 8月  26 10:03 99.img
[root@localhost opt]# find /opt/ -size 100M
/opt/100.img
/opt/99.img
#这是应为linux中的100M不是正好100M 是99开始不包括99到100(99-100]

#思考 1024M 和 1G 一样么?
1024M 代表 1023M - 1024M 不包括1023
1G    表示 0G      -1G   不包括0G
-size  10k      表示9k  到10k   且不包括9k  
-size -10k      表示9k  以内    包括9k
-size +10k      表示10k 以上    不包括 10k

#权限查找 -perm
[root@localhost opt]# find -perm 644
./100.img
./99.img
./a.txt
[root@localhost opt]# find -name "*.img" -delete
#找到并删除(找到name为什么并且删除)要加引号

############处理动作#############################
-print:默认的处理动作,显示至屏幕
-ls:类似于对查找到的文件执行"ls -dils"命令格式输出
-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除查找到的文件,慎用!
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令{}: 用于引用查找到的文件名称自身


[root@localhost opt]# find -name "*.txt"  -ok mv {} /mnt \;
[root@localhost opt]# find -name "*.txt"  -exec mv {} /mnt \;


#以“天”为单位
-atime [+|-]# 
# #表示[#,#+1)
+# #表示[#+1,∞]
-# #表示[0,#)

-mtime
-ctime
#以“分钟”为单位
-amin
-mmin
-cmin

find -mtime 10  
#10天到11天
find -mtime +10
#代表11天以上
find -mtime -10
#10天以内

 

4.4 标准输入输出

input——输入、键盘、鼠标、窗口里实际完成操作的事终端窗口

一个命令结束有输出、也是靠终端窗口

错误命令是输出,标准错误

output——输出到屏幕

[root@localhost data]# ll /dev/std*
lrwxrwxrwx. 1 root root 15 8月  26 21:15 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 8月  26 21:15 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 8月  26 21:15 /dev/stdout -> /proc/self/fd/1
[root@localhost data]# tty    ###当前终端
/dev/pts/1
[root@localhost data]# ll /proc/self/fd/2
lrwx------. 1 root root 64 8月  27 00:57 /proc/self/fd/2 -> /dev/pts/1
[root@localhost data]# ll /proc/self/fd/1
lrwx------. 1 root root 64 8月  27 00:57 /proc/self/fd/1 -> /dev/pts/1
[root@localhost data]# ll /proc/self/fd/0
lrwx------. 1 root root 64 8月  27 00:57 /proc/self/fd/0 -> /dev/pts/1
[root@localhost ~]# ls > /dev/pts/0
#传给终端0
[root@localhost ~]# xxxx 2> /dev/pts/0
#错误重定向


#将命令结果传入一个文件

 

重定向 redirect

改变方向

标准输入重定向,就是改变输出位置

ls > /dev/pts/1##将当前文件夹目录信息放入文件

 

4.4.1.参数替换xargs

由于很多命令不支持管道符“|”来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin(标准输出)的数。

可以用空格符回车符将 stdin 的数据分隔成为参数。

另外,许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决。

[root@localhost opt]# xargs 
1
2<ctrl+d-退出>
1 2####xargs自己输出的
[root@localhost opt]# xargs ls -l
/etc/passwd####自己输入的
-rw-r--r--. 1 root root 2161 8月  26 09:27 /etc/passwd
####输出了自己输入的路径下文件的信息
#seq打印出3
[root@localhost opt]# seq 3
1
2
3
[root@localhost opt]# seq 3 |xargs   取消换行
1 2 3
[root@localhost opt]# seq 3 |xargs -n1    处理一个参数换行一次
1
2
3
4.4.2.which

which 命令|程序名——查看存放路径

which ls——查看命令“ls”的路径

5、硬件信息及其他系统信息

5.1 查看CPU

  • lscpu

  • cat /proc/cpuinfo

[root@localhost ~]#lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
座:                 4
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              141
型号名称:        11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz
步进:              1
CPU MHz:             2686.984
BogoMIPS:            5375.99
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          48K
L1i 缓存:          32K
L2 缓存:           1280K
L3 缓存:           12288K
NUMA 节点0 CPU:    0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi avx512_vpopcntdq

[root@localhost ~]#cat /proc/cpuinfo 
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 141
model name    : 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz
stepping    : 1
microcode    : 0x34
cpu MHz        : 2686.984
cache size    : 12288 KB
physical id    : 0
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 0
initial apicid    : 0
fpu        : yes
fpu_exception    : yes
cpuid level    : 27
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi avx512_vpopcntdq
bogomips    : 5375.99
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 141
model name    : 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz
stepping    : 1
microcode    : 0x34
cpu MHz        : 2686.984
cache size    : 12288 KB
physical id    : 2
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 2
initial apicid    : 2
fpu        : yes
fpu_exception    : yes
cpuid level    : 27
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi avx512_vpopcntdq
bogomips    : 5375.99
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 2
vendor_id    : GenuineIntel
cpu family    : 6
model        : 141
model name    : 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz
stepping    : 1
microcode    : 0x34
cpu MHz        : 2686.984
cache size    : 12288 KB
physical id    : 4
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 4
initial apicid    : 4
fpu        : yes
fpu_exception    : yes
cpuid level    : 27
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi avx512_vpopcntdq
bogomips    : 5375.99
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:

processor    : 3
vendor_id    : GenuineIntel
cpu family    : 6
model        : 141
model name    : 11th Gen Intel(R) Core(TM) i5-11400H @ 2.70GHz
stepping    : 1
microcode    : 0x34
cpu MHz        : 2686.984
cache size    : 12288 KB
physical id    : 6
siblings    : 1
core id        : 0
cpu cores    : 1
apicid        : 6
initial apicid    : 6
fpu        : yes
fpu_exception    : yes
cpuid level    : 27
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi avx512_vpopcntdq
bogomips    : 5375.99
clflush size    : 64
cache_alignment    : 64
address sizes    : 45 bits physical, 48 bits virtual
power management:
View Code

 

5.2 查看内存大小

free

cat /proc/meminfo

[root@localhost ~]#free
              total        used        free      shared  buff/cache   available
Mem:        1867044      798772      172668       10140      895604      831380
Swap:       2097148           0     2097148

[root@localhost ~]#cat /proc/meminfo 
MemTotal:        1867044 kB
MemFree:          172576 kB
MemAvailable:     831308 kB
Buffers:             172 kB
Cached:           769584 kB
SwapCached:            0 kB
Active:           869780 kB
Inactive:         531552 kB
Active(anon):     492200 kB
Inactive(anon):   149516 kB
Active(file):     377580 kB
Inactive(file):   382036 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        631576 kB
Mapped:           126280 kB
Shmem:             10140 kB
Slab:             125852 kB
SReclaimable:      60452 kB
SUnreclaim:        65400 kB
KernelStack:        9056 kB
PageTables:        29312 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3030668 kB
Committed_AS:    3298676 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      197888 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:    303104 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       98176 kB
DirectMap2M:     1998848 kB
DirectMap1G:           0 kB
View Code

 

5.3 查看硬盘和分区情况

lsblk

cat /proc/partitions

[root@localhost ~]#lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sr0              11:0    1 1024M  0 rom 

[root@localhost ~]#cat /proc/partitions 
major minor  #blocks  name

   8        0   62914560 sda
   8        1    1048576 sda1
   8        2   61864960 sda2
  11        0    1048575 sr0
 253        0   40157184 dm-0
 253        1    2097152 dm-1
 253        2   19603456 dm-2
View Code

 

5.4 查看机器架构

[root@localhost ~]#arch
x86_64

5.5 查看内核版本

[root@localhost ~]# uname -r
3.10.0-693.el7.x86_64
[root@localhost ~]#cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

5.6 系统时间

date查看当前系统时间

-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间

%F 完整日期格式,等价于 %Y-%m-%d

% T 时间(24小时制)(hh:mm:ss)

-s 修改系统时间

[root@localhost ~]#date -d '-1 day' +%F
2023-07-20##前一天
[root@localhost ~]#date +%F
2023-07-21##当前时间
[root@localhost ~]#date -d '1 day' +%F-%T##后一天
2023-07-22-16:23:27
[root@localhost ~]#date -d '+3 day'##后三天
2023年 07月 24日 星期一 16:24:06 CST
[root@localhost ~]#date -d '-3day'##前三天
2023年 07月 18日 星期二 16:24:22 CST
[root@localhost ~]#date -s '00:00:00'##更改系统时间
2023年 07月 21日 星期五 00:00:00 CST
[root@localhost ~]#hwclock --hctosys ##再把系统时间同步于硬件时间,改回去

 

有借助网络先辈的帮忙,下面这篇文章有简单介绍调时间的小实验。

https://cloud.cmy.cn/news/docs/12970.html

课后小练

1、linux的哲学思想是什么?

一切皆文件

2、请简要解释shell是什么?

人机翻译官

3、请简述什么是内部命令和外部命令。

放在程序内部的是内部命令;额外需要安装的是外部命令。

4、获得命令帮助的方式有哪些?

help+内部命令、外部命令+-- help、man 1+命令(用户指令)、man 5+命令(文件格式)、info+命令

5、cd空格;cd ~;cd -;cd ../;ls ./分别代表什么意思。

切换到当前用户的家目录;返回上一次目录;返回上一级目录;显示当前目录下的文件

6、请填写常使用的快捷键

补全—tab、清屏—ctrl+l、取消本次命令编辑—ctrl+c、回看命令—up,down、强制换行—\

7、linux命令基本格式是什么?

命令字+选项+参数

8、linux命令必须添加参数才能执行吗?

不是,不加参数默认调用当前

9、解释linux的命令提示符,[root @apylinux opt]$

root:用户名

apylinux:主机名

opt:当前目录

$:普通用户

10、linux的目录分隔符是——/

11、切换到上一级目录——cd ../

12、切换到上一次目录——cd -

13、切换到当前用户的家目录——cd ;cd~

14、查看当前工作目录——pwd

15、当前目录是/home,以绝对、相对两种路径方式进入/opt目录

cd /opt;cd ../opt

16、什么是绝对路径,相对路径请简要叙述?

以根目录为起点描述目标位置的路径是绝对路径;以当前目录为起点描述目标位置的路径是相对路径。

17、通配符有哪些?分别写出含义

?——匹配一个字符

*——匹配任意字符,无长短限制

{a..z}—a,b,c...z里任意一位字符

[a-Z] ——a,A,b,B...z,Z里任意一位字符

18、请简述软硬连接的区别?

类似创建快捷方式的是软连接;创建原文件的新打开方式,inode值不变,大小等于原文件的是硬连接(无法跨区创建)

19、切换,创建,复制,移动,删除基本操作使用的命令分别是哪些?

cd、mkdir、touch、cp、mv、rm

posted @ 2023-07-21 17:39  Bacolate  阅读(365)  评论(0编辑  收藏  举报