学习linux记录:
- bash基础特性
- History:查看历史命令
- 环境变量
- HISTFILE:.bath_history
- HISTSIZE:1000
- HISTCONTROL:
- ignoredups:忽略连续重复
- Ignorespace:忽略空格开头命令
- ignoreboth:忽略连续重复和空格开头命令
- 没有意义字符串:不忽略命令
- History [optinon]
- -a,将缓存中的历史记录保存到磁盘文件中
- -d #,将#条命令删除,查看是缓存中删除还是文件中删除?
- -c,清除缓存中的history记录。
- #,显示最近n条指令
- 历史命令调用
- !#,调用第#条命令
- !!,调用上一个命令
- !string,调用上一个包含string的命令
- 调用上一条命令的最后一个参数
- !$
- Esc,.
- 环境变量
- 命令补全
- 内部命令,shell内建命令,直接在shell中实现
- 外部命令,shell根据光标左侧的字符串在PATH路径中从左到右寻找,给出所有的选择,如果唯一则按tab直接补全,如果不唯一,双击tab会给出所有选择。
- 路径补全
- 按用户给的名称,在指定的上级目录下搜索以指定名称开头的字符串
- 如果唯一,则补全,否则双击tab给出所有选择。
- 命令行展开
- ~:展开为当前用户家目录
- ~USERNAME:展开为指定用户家目录
- 可承载以逗号分隔的列表:
- /tmp/{a,b}=/tmp/a /tmp/b
- /tmp/{a,b}/etc=/tmp/a/etc /tmp/b/etc
- 程序返回结果
- $?:0表示执行成功,1-255表示执行失败
- History:查看历史命令
- 目录管理类命令(ls pwd cd mkdir rmdir tree)
- 创建目录
- Mkdir [option] filePath(make directories)
- -m filePath:创建文件以指定的权限,例如mkdir 777 aa,mkdir a=rwxrwxrwx aa
- -p filePath:如果文件已存在不会报错,如果父文件不存在则创建父文件
- -v filePath:显示创建文件的详情
- Mkdir [option] filePath(make directories)
- 查看目录
- Ls [options] [file](list diractory contents)
- -a:列出指定目录所有文件
- -d:查看目录,ls -d */
- -l:列出指定目录下内容以长格式
- 示例:drwxrwxrwx. 20 501 501 4096 Oct 23 22:52 quagga-0.99.15/
- 最左侧表示类型
- d:目录
- -:文件
- l:软链接
- b:块文件
- c:字符设备文件
- p:管道文件
- s:套接字文件
- rwxrwxrwx:第2位到第10位表示权限,从左到右表示owner,group,other权限
- 20表示被硬链接次数
- 501 501表示owner group
- 4096表示大小,默认单位是字节
- Oct 23 22:52表示最后的修改时间
- -h:可读,搭配-l使用将单位转换成K,M,G
- -r:逆序展示
- -t:按时间顺序展示,越新约靠上。
- --author:搭配-l使用,展示文件的作者,实验看的是输出了owner,group,owner
- --color:一般是auto,还有always,never,never字体没颜色,初步测试always和auto一样
- centos系统中ls是有别名的,alias ls='ls --color=auto'
- 还有很多展示功能见man ls
- Pwd [options](输出当前工作目录)
- Cd [options] [dir] (切换当前目录到指定目录)
- Cd ~:切换到家目录
- 不加dir,cd默认切换到家目录,
- ..:上一级目录
- ./:当前目录
- -:上一次工作目录
- PWD:环境变量,存储当前工作目录
- OLDPWD:环境变量,存储上一次工作目录
- HOME:环境变量,存储cd默认切换目录和~表示目录
- /:根目录,dir以/开头,shell不会去寻找环境变量
- Tree [options] [dir](列出指定目录的所有内容并以树结构展示)
- -a:列出所有类型文件,包含隐藏文件
- -d:只列出目录
- -R:递归列出指定目录下所有类型文件,包含子目录,测试和tree没啥区别
- -L #:列出指定级别的文件,#>0
- -f:展示的树结构所有文件都展示绝对路径
- -P:只显示指定patter匹配到的路径
- Ls [options] [file](list diractory contents)
- 删除目录
- Rmdir [options][dir](删除空的目录)
- --ignore-fail-on-non-empty:忽略删除非空目录的报错,目录还存在
- -p:删除目录和他的父目录,目录必须为空
- -v:显示删除目录的详细信息
- Rmdir [options][dir](删除空的目录)
- 创建目录
- 文件类命令(cat tac less more tail head file stat touch rm)
- 查看文件内容
- Cat [options] files 链接文件并输出
- 如果不指定文件则链接标准输入输出
- -n:输出所有行的行号
- -E:输出时每行行尾都带$
- tac,反顺序输出
- -b:输出行号,遇到空行则跳过编号
- Less [opeions] [filePath]查看指定路径文件,可以向前后翻页和搜索等功能。
- 向文件尾翻页:space,f,z
- 向文件首翻页:b,w,ESC+v
- 向文件尾翻半页:d
- 向文件首翻半页:u
- 向文件尾翻1行:向下,e,j
- 向文件首翻1行:向上,y,k
- 到指定行:#,G
- 跳转到文件尾部:g
- 跳转到文件首部:G
- 向文件尾搜索指定字符串:/string
- 向文件尾翻:n
- 向文件首翻:N
- 向文件首部搜索指定字符串:?string
- 设置环境变量使less带行号:export LESS="-N"
- More [options] [filePath]
- 向文件尾部翻页:space
- Tail [options] [filePath] 输出文件尾部
- -c:从尾部输出#个byte数据
- -n:从尾部输出#行数据
- -f:从尾部输出10行数据并持续输出
- Head [options][filePath]输出文件首部
- -c:从首部输出#个byte数据
- -n:从首部输出#行数据
- Cat [options] files 链接文件并输出
- 查看文件元数据
- Stat [options] [filePath] 输出文件或者文件系统状态
- 创建文件
- Touch [options] [filePath]改变文件时间戳
- 删除文件
- Rm [options] [filePath]删除文件或目录
- 查看文件内容
- 练习
- 创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
- Mkdir -p /tmp/x/{y1,y2}/{a,b}
- 创建x_m,x_n,y_m,y_n
- Mkdir -p /{x,y}_{m,n}
- 创建/tmp/bin,/tmp/sbin,/tmp/usr,/tmp/usr/bin,/tmp/usr/sbin
- Mkdir /tmp/{bin,sbin,usr/{bin,sbin}}
- 创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b