Linux命令
-
一切都是一个文件。(存储形式)
-
系统中拥有小型,单一用途的程序。
-
当遇到复杂任务,通过不同功能用途的程序组合起来完成。(大化小,小化了)
-
避免令人困惑的用户界面。(统统用命令)
-
连配置文件都存储在文本中,方便增、删、改、查。
-
不在乎后缀名,文件名与文件类型不相关。(不是用文件后缀来区分类型)
[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] case 词 in [模式 [| 模式]...) 命令 ;;]... 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、命令行格式
命令字 空格 [选项] 空格 [参数]
解释命令字 选项 参数各自的意思及具体使用方法
-
命令字 是整条命令中最关键的一部分 唯一确定
-
选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“--”符号引导 通常完整的单词
类unix风格:不加“-”、“--”符合引导
-
参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个
”;“可以隔开命令,执行多个命令
编辑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/ky18View 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 不会破坏已有文件 刷新时间
每个文件有三个时间戳:
-
access time 访问时间,atime,读取文件内容
-
modify time 修改时间,mtime,改变文件内容(数据)
-
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 kBView 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-2View 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
标签:文件,--,常用命令,etc,ls,Linux,root,localhost From: https://www.cnblogs.com/bacolate/p/17572075.html