Linux基础知识学习之根文件系统和目录结构及bash特性

Linux基础知识学习之根文件系统和目录结构及bash特性

一、根文件系统

1、linux上的文件类型

- :常规文件
d :directory 目录文件
b :block device 块设备文件(支持以block为单位随机访问)
c :character device 字符设备文件(支持以character为单位进行线性访问)
l :symbolic link 符号链接文件(类似于windows的快捷方式)
p :pipe 管道文件
s :socker 套接字文件

二、基本命令

1、命令类型分为内部命令和外部命令

2、type命令:查看是内部命令还是外部命令
(1)查看命令类型: ~] # type COMMAND
内部命令显示builtin、外部命令显示路径

3、alias命令:与命令别名相关的命令
(1)查看别名: ~] # alias
(2)定义别名: ~] # alias NAME=command (仅对当前shell有效)
(3)撤销别名: ~] # unalias NAME

注意:命令别名可以与原名相同,原名隐藏
仍要运行原命令用\COMMAND

4、which命令:用来显示命令的完整路径
(1)使用格式: ~] # which [options] programname
(2)跳过别名: ~] # which --skip-alias COMMAND
(3)显示别名: ~] # \which --read-alias COMMAND

5、whereis命令:显示二进制文件、源码文件、手册页
(1)使用格式:

~] # `whereis [option] name`
-b : 搜索二进制程序路径
-m :仅搜索使用手册路径

6、who命令:查看登陆主机的用户
(1)使用格式:

~] # `who [option]` 
	
-b : 显示系统此次启动的时间
-d : 显示死亡的进程
-l : 显示登陆的进程
-u : 显示谁登录
-r : 显示运行级别

7、w命令:显示谁登录,谁在做什么(增强的who命令)

8、help、man、whatis : 获取帮助文档的命令
(1)whatis : 获取简单的帮助信息
使用格式:

~] # `whatis COMMAND`

(2)help : help获取内部命令的帮助文档
使用格式:

~] # `help COMMAND`

(3)man : 获取命令帮助文档
使用格式:

~] # `man COMMAND`

三、bash的基础特性

1、命令 历史:shell进程会在其会话中保存此前用户提交过得命令
(1)使用格式:

~] # `history`

(2)定制history功能,可通过环境变量实现

HISTSIZE :shell进程可保留命令历史的条数
HISTFILE :持久保持命令历史的文件(家目录下隐藏文件 .bash_history)
HISTFILESIZE :文件的总数

(3)使用格式:

~] # history [-c] [-d 偏移量] [n] 
~] # history -anrw [文件名] 
~] # history -ps 参数 [参数...]
-c :清空历史命令
-d :offset 删除指定命令历史
-r :从文件读取命令历史至历史列表中
-w :把历史列表中的命令追加至历史文件中
~] # `history #`  显示最近#条命令

(4)调用命令历史中的命令

~] # `!#` :执行历史命令中第#条命令
~] # `!!`:再次执行上条命令
~] # `!STRING` 再次执行命令历史列表最近一个以STRING开头的命令

注意:命令的重复执行依赖于命令的幂等性
(5)调用上一条命令的最后一个参数

~] # `!$`  (字符串)
~] # ESC,.(快捷键)

(6)控制命令历史记录的方式
环境变量:HISTCONTROL
默认ignoredups:忽略重复的命令
ignorespace:忽略以空白字符开头的命令
ignoreboth:两个同时生效
修改变量:

~] # `NAME='VALUE'`

2、命令补全:
shell程序接受用户执行命令请求时,分析完成后,最左侧字符串会被当做命令
命令处理机制:
查找内部命令时:根据PATH环境变量中设定的目录,自左而有逐个搜索目录下的文件名

3、路径补全:
根据给定的起始路径补全

4、命令行展开: ~ :自动展开使用用户的家目录,或指定用户的家目录
{} :可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径

5、命令执行状态结果:
bash通过状态返回值来输出结果(成功 0 ,失败1-255)
命令执行完成后,其状态结果保存于$?中

6、引用:
强引用:’ ’
弱引用:" "
反引用:

7、快捷键;
CTRL+A :跳转命令行首
CTRL+E :跳转命令行尾
CTRL+U :删除命令行首至光标所有字符
CTRL+K :删除光标至行尾所有字符
CTRL+L :清屏 (相当于clear)

四、目录管理命令

1、mkdir :make directory 创建目录
使用格式:

~] # `mkdir [option] DIRECTORY`

注意:路径基名为命令的作用对象,路径必须存在。

-p : 自动按需创建目录
-v :verbose  显示详细的过程
-m:MODE 直接给定权限

2、rmdir : remove directory 移除空目录
使用格式:

~] # `rmdir [option] directory`
-p : 删除目录后,如果其父目录为空则一并删除
-v :显示过程

3、tree命令:显示目录结构
使用格式:

~] # `tree [option] [directory]`
 -l :level  指定要显示的层级 

问题:

1、如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b?
2、如何创建a_c, a_d, b_c, b_d?
3、创建如下目录结构:

`/tmp/mysysroot/
	bin
	etc
		sysconfig
			network-scripts
	sbin
	usr
		bin
		lib
		lib64
		local
			bin
			etc
			lib
			sbin
		sbin
	var
		cache
		log
		run`

答案:

1、mkdir -pv /tmp/x/{y1/{a,b},y2}
2、mkdir -v {a,b}_{c,d}
3、mkdir -pv /tmp/mysysroot/{bin,sbin,etc/sysconfig/network-scripts,usr/{bin,sbin,local/{bin,sbin,etc,lib},lib,lib64},var/{cache,log,run}}

五、文本查看命令(cat,head,tail,more,less)

1、分屏查看命令 more/less
(1)more命令:
使用格式:

~] # `more file`   (特点:翻屏至尾部自动退出)(space上翻页,b下翻页)

(2)less命令:
使用格式:

~] # `less file`

2、head命令:产看文件前N行(默认10行)
使用格式:

~] # `head [option] FILE`
-n # : 查看前#行
-# :查看前#行

3、tail命令:查看文件后N行(默认10行)
使用格式:

~] # `tail [option] FILE`
-n # :查看后#行
-# :查看后#行
-f :查看文件尾部内容结束后不退出,跟随显示新增的行

4、stat命令:显示文件或文件系统状态
使用格式:

~] # `stat [option]FILE`

(文件时间戳状态:最近访问/更改/改动时间)(atime/mtime/ctime)

5、touch命令:改变atime/mtime 时间戳(或创建空文件)
使用格式:

~] # `touch [option] FILE`
-c :指定文件路径不存在时,不予创建
-a :只改访问时间
-m :只改更改时间
-t :STAMP  指定时间[年月日小时分钟秒(有秒加点隔开)]

六、文件管理工具(cp,mv,rm)

1、cp命令:copy 文件复制 (源文件,目标文件)
使用格式:

~] # cp [option] [-T] SOURCE DEST 单文件复制
~] # cp [option] SOURCE DIRECTORY 多源复制
~] # cp [option] -t DIRECTORY SOURCE多源复制

(1)如果DEST不存在,则先创建此文件,并复制源文件的数据流至DEST中
(2)如果DEST存在:
1)如果DEST是非目录文件,则会覆盖目标文件
2)如果DEST是目录文件,则先在目录下创建同名文件并复制数据流
(3)多源复制:
1)如果DEST不存在(错误)
2)如果DEST存在是文件(错误)
3)如果DEST存在是目录文件,分别复制每个文件至目标目录中保持原名
常用选项:

-i :交互式(覆盖前请求用户确认)
-f :force 强制覆盖目标文件
-r  -R :递归复制目录 (同时复制目录及文件至目标位置)
-d :复制符号链接文件本身,而非其指向的源文件
--perserv :保留属性复制
-a  =   -dR :用于实现归档

2、mv命令:move 移动并重命名
使用格式:

~] # mv [option] [-t] SOURCE DEST
~] # mv [option] SOURCE DIRECTORY 
~] # mv [option] -t DIRECTORY SOURCE

常用选项:

-i :交互式
-f :force 强制移动覆盖文件

3、rm命令:remove 删除文件
使用格式:

~] # rm [option] FILE

常用选项:

-i :交互式
-r  -R :递归删除
-f :force 强制删除

删除目录:rm -rf /PATH/TO/DIR

注意:禁用rm -rf / rm -rf /* 在生产环境中,所有不用的文件不要直接删除,统一移动至某个专用目录(模拟回收站)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值