文件管理相关
cat命令详解
- 主要用于查看文件内容(适用短文本)
- 常用命令
cat -n he.txt 显示行号的
用法:cat [选项]... [文件]... 将[文件]或标准输入组合输出到标准输出。 -A, --show-all 等于-vET; -b, --number-nonblank 对非空输出行编号; -e 等于-vE; -E, --show-ends 在每行结束处显示"$"; -n, --number 对输出的所有行编号; -s, --squeeze-blank 不输出多行空行; -t 与-vT 等价; -T, --show-tabs 将跳格字符显示为^I; -u (被忽略); -v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外; --help 显示此帮助信息并退出; --version 显示版本信息并退出。
- cat …EOF …EOF用法
- 添加内容,会覆盖前面内容
- 追加内容
[root@hbs a]# cat > /tmp/hbs.txt <<EOF > my name is hbs > I love a girl > EOF [root@hbs a]# [root@hbs a]# cat >> /tmp/hbs.txt <<EOF 追加内容 > I LOVE LIU AO NI > EOF [root@hbs a]#
head命令详解
- 主要用于查看文件内容,通常查看头10行
- 常用命令
[root@hbs ~]# head -3 anaconda-ks.cfg 看前3行
用法:head [选项]... [文件]... 将每个指定文件的头10 行显示到标准输出。 如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。 如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短选项时也是必需使用的; -q, --quiet, --silent 不显示包含给定文件名的文件头; -v, --verbose 总是显示包含给定文件名的文件头; --help 显示此帮助信息并退出; --version 显示版本信息并退出; -c, --bytes=[-]K 显示每个文件的前K 字节内容,如果附加"-"参数,则除了每个文件的最后K字节数据外显示剩余全部内容; -n, --lines=[-]K 显示每个文件的前K 行内容,如果附加"-"参数,则除了每个文件的最后K 行外显示剩余全部内容。
tail 命令详解
- 主要用于查看文件内容,通常用于尾 10行
- 常用命令
tail -10 anaconda-ks.cfg 查看尾 10行
用法:tail [选项]... [文件]... 显示每个指定文件的最后10 行到标准输出。 若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。 如果不指定文件或文件为"-" ,则从标准输入读取数据。 长选项必须使用的参数对于短选项时也是必需使用的。 -n, --lines=K 输出的总行数,默认为10行; -q, --quiet, --silent 不输出给出文件名的头; --help 显示此帮助信息并退出; --version 显示版本信息并退出; -f, --follow[={name|descriptor}] 即时输出文件变化后追加的数据; -f, --follow 等于--follow=descriptor -F 即--follow=name –retry -c, --bytes=K 输出最后K字节;另外,使用-c +K 从每个文件的第K字节输出。
find命令详解
- 实时查找,精确性强,遍历指定目录中所有文件完成查找,
- 查找速度慢,支持众多查找标准。
- 语法:find [OPTION…] 查找路径 查找标准 查找到以后的处理动作
查找路径 默认为当前目录
查找标准 默认为指定路径下的所有文件
-name 'filename' 对文件名作精确匹配.支持glob通配符机制 -iname 'filename' 文件名匹配时不区分大小写 -regex pattern 基于正则表达式进行文件名匹配.以pattern 匹配整个文件路径字符串,而不仅仅是文件名称 -user username 根本属主来查找 -group groupname 根据属组来查找 -uid 根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID -gid 根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID -nouser 查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主 -nogroup 查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组 -type 根据文件类型来查找(f,d,c,b,l,p,s) -size 根据文件大小进行查找。如1k、1M,+10k、+10M,-1k、-1M, +表示大于,-表示小于 --------- mtime 修改时间 -ctime 改变时间 -atime 访问时间+5 ,5天前;-5,5天以内 -mmin 多少分钟修改过 -cmin 多少分钟改变过 -amin 多少分钟访问过, +5 ,5分钟前;-5,5分钟以内 -perm mode 根据权限精确查找 -perm -mode 文件权限能完全包含此mode时才符合条件 -perm /mode 9位权限中有任何一位权限匹配都视为符合查找条件 处理动作:默认为显示到屏幕上 -print 显示 -ls 类似ls -l的形式显示每一个文件的详细信息 -delete 删除查找到的文件 -fls /path/to/somefile 查找到的所有文件的长格式信息保存至指定文件中 -ok COMMAND {} \; 对查找到的每个文件执行COMMAND,每次操作都需要用户确认 -exec COMMAND {} \; 对查找到的每个文件执行COMMAND,操作不需要确认
[root@localhost ~]# find / -name abc **找名字是 abc的** /root/abc /opt/abc [root@localhost ~]# find / -iname abc **忽略大小写的** /root/abc /opt/abc /opt/ABC [root@localhost ~]# find / -nouser tom **找没有user的** [root@localhost ~]# find -type d **找目录** . ./a ./a/b ./a/b/e [root@localhost ~]# find -size -1M **小于1m的文件** ./00:00:00 ./2021 [root@localhost ~]# find -size +1k **大于1k的文件** . ./.bash_history ./anaconda-ks.cfg [root@localhost ~]# find -mmin +1 **一分钟前改变的** ./.bash_logout ./.bash_profile ./.bashrc [root@localhost ~]# find -type d -name 5 必须是目录,名字是 5的目录 ./5 [root@localhost ~]# find -type f -name 5 [root@localhost ~]# [root@localhost ~]# find -type d -name 5 -ls **组合命令** 33576693 0 drwxr-xr-x 2 root root 6 Apr 8 10:25 ./5 [root@localhost ~]# [root@localhost ~]# find -type f -name he.txt -print **查找 名字为he.txt的文件,并且打印出来** ./he.txt [root@localhost ~]# [root@localhost ~]# find -type f -name 5 -delete **查找名字是 5的文件,并删除 ** [root@localhost opt]# find ./ -type f -name *.sh -exec mv {} /opt/ \; 将当前文件 名为 .sh 的文件移动到 /OPT下
more命令详解
- 从前往后看,不能回退
- 有进度条显示
less 命令详解
- 可以回退,空格 从前往后翻屏幕。
- 从后往前翻屏,b键
- q键 退出查看
du 命令详解
- 常用于查看文件在磁盘中的使用量
- 常用命令
[root@hbs ~]# du -sh /tmp/ 查看当前目录所有文件及文件及的大小
df 命令详解
- 主要用于查询磁盘分区
- 常用命令
df –h,查看磁盘分区信息
[root@hbs ~]# du -sh /boot/ 查看目录及文件大小 110M /boot/ [root@hbs ~]# df -h /boot/ 查看boot 目录的使用情况 Filesystem Size Used Avail Use% Mounted on /dev/sda1 197M 121M 77M 62% /boot [root@hbs ~]#
用法:df [选项]... [文件]... 显示每个文件所在的文件系统的信息,默认是显示所有文件系统。 长选项必须使用的参数对于短选项时也是必需使用的。 -a, --all 显示所有文件系统的使用情况,包括虚拟文件系统; -B, --block-size=SIZE 使用字节大小块; -h, --human-readable 以人们可读的形式显示大小; -H, --si 同-h,但是强制使用1000而不是1024; -i, --inodes 显示inode 信息而非块使用量; -k 即--block-size=1K; -l, --local 只显示本机的文件系统; --no-sync 取得使用量数据前不进行同步动作(默认); -P, --portability 使用POSIX 兼容的输出格式; --sync 取得使用量数据前先进行同步动作; -t, --type=类型 只显示指定文件系统为指定类型的信息; -T, --print-type 显示文件系统类型; -x, --exclude-type=类型 只显示文件系统不是指定类型信息; --help 显示帮助信息并退出; --version 显示版本信息并退出
wc 命令详解
- 主要用于统计文本、字符(数字、符号、空格、行等)
- 常用命令
root@hbs ~]# wc -l anaconda-ks.cfg 查看看它有多少行
[root@hbs ~]# wc -c anaconda-ks.cfg 查看它有多少个字符
[root@hbs ~]# wc -w anaconda-ks.cfg 查看它有多少个单词
[root@hbs ~]# wc anaconda-ks.cfg 52 148 1511 anaconda-ks.cfg (行、单词、字符) [root@hbs ~] [root@hbs ~]# cat anaconda-ks.cfg | wc -l #查看多少行 52 [root@hbs ~]#
cut 命令详解
- 取出指定列的选项
- 常用命令选项
-d 指定分隔符
-f 指定要显示的列
[root@localhost ~]# head -5 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin [root@localhost ~]# head -5 /etc/passwd|cut -d : -f6 取出/etc/passwd 以冒号为分隔符,第6列 /root /bin /sbin /var/adm /var/spool/lpd [root@localhost ~]# [root@localhost ~]# head -3 /etc/passwd|cut -d: -f1 root bin daemon [root@localhost ~]#
awk命令详解
- 处理列的内容
- 常用命令选项
-F 指定分割符 `‘NR==行{print $需要的列}’ 文件名
[root@localhost ~]# awk -F: '{print $1}' /etc/passwd|head -5 以冒号为分隔符,查看 passwd 前5行的一个。 root bin daemon adm lp [root@localhost ~]# [root@localhost ~]# df -h|awk '{print $4}' 分割符默认是 空格,如果不是 -F Avail 19G 901M 912M 888M 912M 77M 183M 0 [root@localhost ~]# [root@localhost ~]# df -h|awk 'NR==3{print $4}' 第4列第3行 901M [root@localhost ~]# [root@localhost ~]# df -h|awk 'NR==2{print NF}' 最后一列(NF),第二行 6 [root@localhost ~]# df -h|awk 'NR==2{print $(NF-2)}' 倒数多少列,第二行
sed命令详解
- 处理行的内容
- sed 选项 动作 文件名
-c 修改
-s 替换
-a 追加
-p 打印
-d 删除
- 常用命令
sed -i ‘1s/^#//g’ bcd 去除#号
[root@localhost ~]# sed '2p' bcd 123 456 456 23 [root@localhost ~]# sed -n '2p' bcd 456 [root@localhost ~]# sed -n '1p' bcd 123 [root@localhost ~]# sed -n '3p' bcd 23 [root@localhost ~]# sed -n '/456/p' bcd 匹配456 打印 456 [root@localhost ~]# [root@localhost ~]# sed '3s/23/9999/g' bcd 第3行的23 替换成 999 123 456 9999 [root@localhost ~]# [root@localhost ~]# cat bcd #123 #456 #23 [root@localhost ~]# sed '1s/^#//g' bcd 将第1行的#号替换为 空,并没有修改原文件 123 #456 #23 [root@localhost ~]# [root@localhost ~]# sed -i '1s/^#//g' bcd 修改源文件了的 [root@localhost ~]# sed -i '1c888' bcd 将第一行改成 888 [root@localhost ~]#
grep 命令详解
- 文本查找
- 常用命令参数
i 忽略大小写
v 显示没有匹配的项
E,一般用于 egrep
grep egrep fgrep grep 根据模式搜索文本,并将符合模式的文本行显示出来。 使用基本正则表达式定义的模式来过滤文本的命令。 Pattern(模式) 文本字符和正则表达式的元字符组合而成的匹配条件 -i 忽略大小写 --color 匹配到的内容高亮显示 -v 显示没有被模式匹配到的行 -o 只显示被模式匹配到的字符串 -E 使用扩展正则表达式。grep -E相当于使用egrep -q 静默模式,不输出任何信息 -A 1 被模式匹配到的内容以及其后面一行的内容都显示出来 如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来 -B 1 被模式匹配到的内容以及其前面一行的内容都显示出来 如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来 -C 1 被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2 就表示被模式匹配到的内容以及其前后的行各显示2行。 fgrep 不支持正则表达式,执行速度快
[root@localhost ~]# cat g.txt world WORLDshar worldhelo 123456 woLD worLD World WOF [root@localhost ~]# cat g.txt |grep world 过滤world world worldhelo [root@localhost ~]# cat g.txt |grep -i world 过滤world,忽略大小写 world WORLDshar worldhelo worLD World [root@localhost ~]# cat g.txt |grep -v world 取反 WORLDshar 123456 woLD worLD World WOF [root@localhost ~]# [root@localhost ~]# cat g.txt |egrep -E world world worldhelo [root@localhost ~]#
echo 命令详解
- 主要用于打印字符或者回显
- 常常和管道符连用
- 覆盖
- 追加
- 扩展 -e,主要用于写脚本
\033[30m 黑色字 \033[0m \033[31m 红色字 \033[0m \033[32m 绿色字 \033[0m \033[33m 黄色字 \033[0m \033[34m 蓝色字 \033[0m \033[35m 紫色字 \033[0m \033[36m 天蓝字 \033[0m \033[37m 白色字 \033[0m \033[40;37m 黑底白字 \033[0m \033[41;37m 红底白字 \033[0m \033[42;37m 绿底白字 \033[0m \033[43;37m 黄底白字 \033[0m \033[44;37m 蓝底白字 \033[0m \033[45;37m 紫底白字 \033[0m \033[46;37m 天蓝底白字 \033[0m \033[47;30m 白底黑字 \033[0m
- auto_lamp_v2.sh
#!bin/sh echo -e "\033[036m Please select intstall Menu follow:\033[0m" echo -e "\033[32m 1)install Apache Server\033[1m" echo "2)install Mysql Server" echo "3)install PHP Server" echo "4)Configuration index.php and start LAMP Server" echo -e "\033[31mUsage:{ /bin/sh $0 1|2|3|4|hep}\033[0m"
文本排序与去重
- sort 排序
- uniq 去重
-c 显示它出现的次数
-u 显示不重复的
-d 显示重复的
[root@localhost ~]# cat >> abc <<EOF > 1 > 23 > 22 > 11 > 0 > 9 > 1 > 2 > 3 > 4 > 5 > 7 > 6 > 7 > 8 > EOF [root@localhost ~]# sort -n abc 0 1 1 2 3 4 5 6 7 7 8 9 11 22 23 [root@localhost ~]# sort -n abc|uniq 0 1 2 3 4 5 6 7 8 9 11 22 23 [root@localhost ~]# [root@localhost ~]# sort -n abc|uniq -d 1 7 [root@localhost ~]# sort -n abc|uniq -c 1 0 2 1 1 2 1 3 1 4 1 5 1 6 2 7 1 8 1 9 1 11 1 22 1 23 [root@localhost ~]# sort -n abc|uniq -u 显示不重复的 0 2 3 4 5 6 8 9 11 22 23 [root@localhost ~]#
tree 命令详解
- 查看目录结构
warning: /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:tree-1.6.0-10.el7 ################################# [100%] [root@localhost ~]# [root@localhost ~]# which tree 查看命令安装位置 /usr/bin/which: no tre in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) [root@localhost ~]# [root@localhost ~]# mkdir p/{j/{d,h},k/{n,,m}} -p 创建目录 [root@localhost ~]# tree p 查看目录结构 p ├── j │ ├── d │ └── h └── k ├── m └── n 6 directories, 0 files
软件资源管理相关
系统资源相关
tar、zip命令详解
- 常用几种格式
.tar.gz (tar)
.tar.bz2 (tar),需要安装bzip2安装包
.tar.xz (tar)
.zip (zip) 跨平台的
- 压缩比:gz<bz<xz (xz压缩效果最好,推荐使用tar.xz)
- 常用压缩文件选项
-zcf 创建一个gz的文件压缩包
-jcf 创建一个bz2的文件压缩包
-Jcf 创建一个xz格式的文件压缩包
-常用解压文件选项
-xf 解压指定文件(gz、xz用)
-xvf 解压指定文件并显示解压过程(gz、xz用)
-xjf 解压bz2文件的
- 查看压缩的文件
-tvf 不解压查看一个文件
-c 创建归档 -z 压缩成gz格式 -j 压缩成bz2格式 -v 显示详细信息 -t 不解压查看压缩包内容 -f 指定要压缩或解压缩的文件 -x 解压缩 -C 将压缩文件解压到指定目录
[root@localhost ~]# ls /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 查看bzip2安装包 [root@localhost ~]# rpm -ivh /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm 安装bzip2安装包 warning: /mnt/Packages/bzip2-1.0.6-13.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] package bzip2-1.0.6-13.el7.x86_64 is already installed [root@localhost ~]# tar -jcf hehe.tar.bz2 [[:alnum:]] 将数字、大小写字母 压缩为hehe.tar.bz2包 [root@localhost ~]# tar -Jcf big.tar.xz * 将所有文件压缩成 tar.xz格式 [root@localhost ~]# tar -tvf big.tar.xz 不解压查看big.tar.xz 压缩包 [root@localhost opt]# tar xf digit.tar.gz 解压digit(单个数字)压缩包 [root@localhost opt]# ls 1 2 3 4 8 alnum.tar.bz2 big.tar.xz digit.tar.gz hehe.tar.bz2 [root@localhost opt]# rm -f [[:digit:]] 删除数字 [root@localhost opt]# ls alnum.tar.bz2 big.tar.xz digit.tar.gz hehe.tar.bz2 [root@localhost opt]# tar -xvf digit.tar.gz [root@localhost opt]# tar -xvf digit.tar.gz -C ~解压到家目录
zip 命令
- 和gz2一样,也需要单独安装zip和unzip(看情况)
- zip xx.zip 压缩
- unzip xx.zip 解压缩
[root@localhost opt]# which zip 查看有没有zip 命令 /usr/bin/which: no zip in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin) [root@localhost opt]# ls /mnt/Packages/zip-3.0-11.el7.x86_64.rpm /mnt/Packages/zip-3.0-11.el7.x86_64.rpm [root@localhost opt]# rpm -ivh /mnt/Packages/zip-3.0-11.el7.x86_64.rpm 安装zip命令 warning: /mnt/Packages/zip-3.0-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:zip-3.0-11.el7 ################################# [100%] [root@localhost opt]# [root@localhost ~]# zip liuaoni.zip [[:digit:]] 将数字压缩zip格式 adding: 1 (stored 0%) adding: 2 (stored 0%) adding: 3 (stored 0%) adding: 4 (stored 0%) adding: 8 (stored 0%) [root@localhost ~]# unzip liuaoni.zip 解压zip文件
rpm 命令详解
- Linux软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。Linux常见软件包分为两种,分别是源代码包(Source Code)、二进制包(Binary Code),源代码包是没有经过编译的包,需要经过GCC、C++编译器环境编译才能运行,二进制包无需编译,可以直接安装使用。
- 通常而言,可以通过后缀简单区别源码包和二进制包,例如.tar.gz、.zip、.rar结尾的包通常称之为源码包,以.rpm结尾的软件包称之为二进制包。真正区分是否为源码还是二进制还得基于代码里面的文件来判断,例如包含.h、.c、.cpp、.cc等结尾的源码文件,称之为源码包,而代码代码里面存在bin可执行文件,称之为二进制包。
- CentOS操作系统中有一款默认软件管理的工具,红帽包管理工具(Red Hat Package Manager,RPM)。
- 使用RPM工具可以对软件包实现快速安装、管理及维护。RPM管理工具适用的操作系统包括:CentOS,RedHat,Fedora,SUSE等,RPM工具常用于管理.rpm后缀结尾的软件包。
- RPM包命名格式为:
name-version.rpm name-version-noarch.rpm name-version-arch.src.rpm
- 如下软件包格式:
epel-release-6-8.noarch.rpm perl-Pod-Plainer-1.03-1.el6.noarch.rpm yasm-1.2.0-4.el7.x86_64.rpm
- 常用命令参数
PM 选项 PACKAGE_NAME -a, --all 查询所有已安装软件包; -q,--query 表示询问用户,输出信息; -l, --list 打印软件包的列表; -f, --file FILE 查询包含 FILE 的软件包; -i, --info 显示软件包信息,包括名称,版本,描述; -v, --verbose 打印输出详细信息; -U, --upgrade 升级RPM软件包; -h,--hash 软件安装,可以打印安装进度条; --last 列出软件包时,以安装时间排序,最新的在上面; -e, --erase 卸载rpm软件包 --force 表示强制,强制安装或者卸载; --nodeps RPM包不依赖 -l, --list 列出软件包中的文件; --provides 列出软件包提供的特性; -R, --requires 列出软件包依赖的其他软件包; --scripts 列出软件包自定义的小程序。
rpm -q httpd 检查httpd包是否安装; rpm -ql httpd 查看软件安装的路径; rpm -qi httpd 查看软件安装的版本信息; rpm -e httpd 卸载httpd软件; rpm -e --nodeps httpd 强制卸载httpd; rpm -qa|grep httpd 检查httpd相关的软件包是否安装。 rpm -ivh httpd-2.4.10-el7.x86_64.rpm 安装httpd软件包; rpm -Uvh httpd-2.4.10-el7.x86_64.rpm 升级httpd软件; rpm -ivh --nodeps httpd-2.4.10-el7.x86_64.rpm 不依赖其他软件包;
yum 命令详解
开关机相关
shutdown命令详解
- 关机,重启,定时关机
- 语法:shutdown [选项]
- 常用命令参数
-r => 重新启动计算机
-h => 关机
-h 时间 =>定时关机
[root@localhost ~]# shutdown -h +10 #10分钟之后关机 [root@localhost ~]# shutdown -h 23:30 #指定具体的时间点进行关机 [root@localhost ~]# shutdown -h now #立即关机 [root@xuegod63 ~]#shutdown -r 22:22 #22:22 以后重启
init
- 作用:切换系统运行级别
- 语法:init 0-6
Linux 7个启动级别: 0 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的 1 单用户模式,root权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录 2 多用户模式,没有NFS和网络支持 3 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式 4 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置 5 图形化模式,登陆后进入图形GUI模式,X Window系 6 重启模式,默认运行级别不能设为6,否则不能正常启动。运行init 6机器就会重启
[root@localhost ~]# init 0 #关机 [root@localhost ~]# init 3 #进入3级别字符界面 [root@localhost ~]# init 5 #进入5级别图形界面 [root@localhost ~]# systemctl get-default 查兰当前默认启动级别 multi-user.target [root@localhost ~]# ``` ## reboot ## poweroff # 命令替换 - 方式1:反引号 `` - 方式2:$() ``` [root@localhost ~]# touch $(date '+%Y%m%d%%H%M%S') [root@localhost ~]# date -s 20210307 Sun Mar 7 00:00:00 CST 2021 [root@localhost ~]# touch `whoami` ``` # bash常用操作 ## 快捷键 Ctrl+a 跳到命令行首 Ctrl+e 跳到命令行尾 Ctrl+u 删除光标至命令行首的内容 Ctrl+k 删除光标至命令行尾的内容 Ctrl+<-- 光标定位到离自己最近的一个单词前面 Ctrl+l 清屏 ## 命令历史 ``` -history 查看命令历史 -c 清空命令历史 -d OFFSET [n] 删除指定位置的命令历史 -w 保存命令历史至历史文件~/.bash_history中
- 命令历史的使用技巧
!n 执行命令历史中的第n条命令 !-n 执行命令历史中倒数第n条命令 !! 执行上一条命令 !string 执行命令历史中最近一个以指定字符串开头的命令 !$ 引用前一个命令的最后一个参数 ctrl+R 搜索历史命令
文件名通配符
* 匹配任意长度的任意字符 ? 匹配任意单个字符 [] 匹配指定范围内的任意单个字符 \ 转义,只显示目标本身 . [abc],[a-m],[0-9] [[:space:]] 表示空白字符 [[:punct:]] 表示标点符号 [[:lower:]] 表示小写字母 [[:upper:]] 表示大写字母 [[:alpha:]] 表示大小写字母 [[:digit:]] 表示数字 [[:alnum:]] 表示数字和大小写字母 [^] 匹配指定范围之外的任意单个字符
- 演示
[root@localhost ~]# touch hehe [root@localhost ~]# mkdir xixi [root@localhost ~]# ls ??? Apr CST Thu [root@localhost ~]# ls ???? 匹配四个字符的 2021 hehe root xixi: [root@localhost ~]# ls [[:upper:]] 匹配单个大写字母 A B C V [root@localhost ~]# ls [[:lower:]] 匹配单个小写字母 c a: b b c d [root@localhost ~]# ls [[:digit:]] 匹配单个数字 1 2 3 4 8 [root@localhost ~]# ls [[:alpha:]] 匹配单个大写、小写字母 A B c C D F V a: b b c d [root@localhost ~]# ls [[:alnum:]] 匹配数字、大小写字母 1 2 3 4 8 A B c C D F V a: b b c d [root@localhost ~]#
环境变量
PATH 命令搜索路径 HISTSIZE 命令历史缓冲区大小 SHELL 当前shell
bash内置变量
RANDOM 保存着0-32768之间的随机数