linux初学者小记(二)

文件管理

1.文件系统结构元素

文件和目录被组织成一个单根倒置树结构文件系统从根目录下开始,用“/”表示。

1.1文件系统

# 根文件系统(rootfs):root filesystem
# 文件名称区分大小写
# 以.开头的文件为隐藏文件
# 路径分隔的 /
# 文件有两类数据:
# 元数据:metadata
# 数据:data

1.2文件名规则

# 文件名最长255个字节
# 包括路径在内文件名称最长4095个字节
# 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件
# 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们

1.3文件系统结构

# /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
# /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
# /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
# /lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)
# /lib64:专用于x86_64系统上的辅助共享库文件存放位置
# /etc:配置文件目录
# /home/USERNAME:普通用户家目录
# /root:管理员的家目录
# /media:便携式移动设备挂载点
# /mnt:临时文件系统挂载点
# /dev:设备文件及特殊文件存储位置
# b: block device,随机访问
# c: character device,线性访问
# /opt:第三方应用程序的安装位置
# /srv:系统上运行的服务用到的数据
# /tmp:临时文件存储位置

1.3.1 /usr目录下

# bin: 保证系统拥有完整功能而提供的应用程序
# sbin:
# lib:32位使用
# lib64:只存在64位系统
# include: C程序的头文件(header files)
# share:结构化独立的数据,例如doc, man等
# local:第三方应用程序的安装位置
# bin, sbin, lib, lib64, etc, share

1.3.2 /var目录下

# cache: 应用程序缓存数据目录
# lib: 应用程序状态信息数据
# local:专用于为/usr/local下的应用程序存储可变数据
# lock: 锁文件
# log: 日志目录及文件
# opt: 专用于为/opt下的应用程序存储可变数据
# run: 运行中的进程相关数据,通常用于存储进程pid文件
# spool: 应用程序数据池
# tmp: 保存系统两次重启之间产生的临时数据
# /proc: 用于输出内核与进程信息相关的虚拟文件系统
# /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
# /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

1.4Linux下的文件类型

- 普通文件
d 目录文件
b 块设备
c 字符设备
l 符号链接文件
p 管道文件pipe
s 套接字文件socket

1.5Linux 程序的组成

# 二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
# 库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
# 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
# 帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

1.6绝对路径和相对路径

# 绝对路径:以"/"开始、完整的文件的位置路径、可用于任何想指定一个文件名的时候
# 相对路径名:不以斜线开始、指定相对于当前工作目录或某目录的位置、可以作为一个简短的形式指定一个文件名
基名:basename     /home/sun/data/f1.txt    f1.txt就是基名
目录名:dirname    /home/sun/data/f1.txt    /home/sun/data就是路径名
[root@centos7 ~]#basename /home/sun/data/f1.txt
f1.txt
[root@centos7 ~]#dirname /home/sun/data/f1.txt
/home/sun/data

1.7更改目录

# cd可用于改变目录
# 使用绝对:cd /home/wang/
# 相对路径:cd home/wang
# 切换至父目录: cd ..
# 切换至当前用户主目录: cd
# 切换至以前的工作目录: cd -
选项:-P、相关的环境变量:
# PWD:当前目录路径
# OLDPWD:上一次目录路径

1.8列出目录内容

# ls 列出当前目录的内容或指定目录
用法:ls [选项]] [文件名或者目录]
示例
ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序、
ls -d 只搜索当前目录

1.9查看文件状态

# stat命令可以显示文件的完整属性,并且显示文件的修改的时间,读时间,状态修改时间。
# 文件可分为:metadata(元数据)), data(数据)
# 三个时间戳:
access time 访问时间,atime,读取文件内容
modify time 修改时间, mtime,改变文件内容(数据)
change time 改变时间, ctime,元数据发生改变

1.10通配符

 * 匹配零个或多个字符
 ? 匹配任何单个字符
 ~ 当前用户家目录
 ~mage 用户mage家目录
 ~+ 当前工作目录
 ~- 前一个工作目录
 [0-9] 匹配数字范围
 [a-z]:字母
 [A-Z]:字母
 [wang] 匹配列表中w,a,n,g的任何的一个字符
 [^wang] 匹配列表中w,a,n,g的所有字符以外的字符
# 预定义的字符类:man 7 glob
 [:digit:]:任意数字,相当于0-9
 [:lower:]:任意小写字母
 [:upper:]: 任意大写字母
 [:alpha:]: 任意大小写字母
 [:alnum:]:任意数字或字母
 [:blank:]:水平空白字符
 [:space:]:水平或垂直空白字符
 [:punct:]:标点符号
 [:print:]:可打印字符
 [:cntrl:]:控制(非打印)字符
 [:graph:]:图形字符
 [:xdigit:]:十六进制字符

课后练习

# 1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录
答:ls -a /var/l*[0-9]*[[:lower:]]
# 2、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录
答:ls /etc/[0-9]*[^0-9]
# 3、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录
答:ls /etc/[^[:alpha:]][[:alpha:]]*
# 4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录
答:ls -a /etc/rc*[0-6]*
# 5、显示/etc目录下,所有以.d结尾的文件或目录
答:ls -a /etc/*.d
# 6、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录
答:ls /etc/[mnrp]*.conf
# 7、只显示/root下的隐藏文件和目录
答:ls -d /root/.[^.]*
# 8、只显示/etc下的非隐藏目录
答:ls -d /etc/*/

20190923课堂笔记

#' ' , \ ,: 临时调用原始命令
# source , . ,: 都可用于重读配置文件
# ctrl+c : 强制退出
# ctrl+d : 正常退出
# whatis:显示命令简短的描述,列出该命令的man帮助的章节分类
# man -f 和 whatis效果是一样的
# 使用type查询命令时显示shell builtin为内部命令 ;显示路径的为外部命令
# 内部命令的帮助用法:help+内部命令
# 外部命令的帮助用法:man+外部命令
# octal:八进制
# 文件存放在内存中是以unicod存储
# 在网络中传送或者读取到磁盘中时是以uft-8显示的
# .bash_history:存放内存中执行过的命令(在每个用户家目录下的隐藏文件)
# 可以通过!number调用历史命令
# 可以通过!?+条件调用包含条件的命令
# ctrl+r=搜索历史命令    ctrl+g=取消搜索
clock
# 按主板时间设置系统时间:clock -s
# 按系统时间设置主板时间:cloock -w
# man 1 man :用户文件、系统调用、配置文件
# NAME 名称及简要说明
# SYNOPSIS 用法格式说明
# []可选
# <>必选
# a|b二选一
# { } 分组
# ... 同一内容可出现多次
man bash
# which:显示外部命令的路径
# whereis:不仅显示路径还会显示帮助路径
# yum install screen:安装screen
# screen:打开共享窗口
# screen -r:恢复共享窗口
# screen -S name:创建窗口名
# screen -x name:加入窗口名窗口
# ctrl+a+d:临时切出窗口
echo:
# " ":命令识别不了,只能识别变量
# ' ':命令变量都识别不了
# ` `:能识别变量和命令
# $()和``:当一个命令想要引用cmd的执行结果时,可以采用这种方法
# 元数据:metadata
# 数据:data

文件类型:
-:普通文件
d:目录文件
b:块设备
c:字符文件
l:符号链接文件
p:管道文件pipe
s:套接字文件socket
# /dev/null :相当于windows里的垃圾桶,有什么不需要的文件都可以直接丢进去。
# basename :基名# jm      /data/sun/jm
# dirname :文件夹名# /data/sun      /data/sun/jm 

# $OLDPWD 存放的记录刚才你进入的目录
# cd- :回到刚才你进入的目录
# 元数据的修改不会影响修改时间
# ll --time=atime 读时间
# ll --time=ctime 状态更改时间
# ll显示的时间是修改时间
# stat可以显示文件的完整属性,并且显示文件的修改时间,读时间,状态修改时间。
# ls -d .* :当前目录下 以点开头的文件
# ls ~-/file.txt:显示上一次目录下的file.txt文件
# ls /etc/*/ -d:显示etc下所有的文件夹
# ls *:显示目录下不包括以点开头的文件
# ls .* * -d=ls -a:显示目录下以点开头的文件和不易点开头的文件
# reset:清楚乱码+清屏

猜你喜欢

转载自www.cnblogs.com/Poppy-S/p/11603399.html