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:清楚乱码+清屏
linux初学者小记(二)的更多相关文章
- linux初学者小记
		a开头的小命令 alias命令 # echo=' - - - ' > /sys/class/scsi_host/host0/scan这条命令是咱们在给虚拟机装了一块新的硬盘后,在不关机的前提下扫 ... 
- linux初学者-系统日志(二)
		linux初学者-系统日志(二) 先前在(一)中介绍到在不同主机间日志同步的方法,在一台主机上可以看到另一台主机的日志.这里会介绍系统日志方面的一些其他内容. 1.日志的采集格式 在日志的采集中,由图 ... 
- Linux初学者必知的5个学习网站
		分享几个Linux初学者一定要知道的5个学习网站 工具/原料 有一颗学习Linux的心 电脑 方法/步骤 1 推荐一:鸟哥的Linux私房菜(http://vbird.dic.ksu.edu.tw/) ... 
- ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘
		本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ... 
- 针对于linux初学者的学习(摘自网络端)
		一. 选择适合自己的Linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他 ... 
- Linux设备管理(二)_从cdev_add说起
		我在Linux字符设备驱动框架一文中已经简单的介绍了字符设备驱动的基本的编程框架,这里我们来探讨一下Linux内核(以4.8.5内核为例)是怎么管理字符设备的,即当我们获得了设备号,分配了cdev结构 ... 
- Linux基础练习题(二)
		Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ... 
- C语言细节——献给初学者(二)
		C语言细节——献给初学者(二) 主题 循环运用+选择判断 C语言循环有for和while/do...while: 选择判断有:if...else和switch...case 在循环中需要注意搭配br ... 
- Linux网络编程(二)
		Linux网络编程(二) 使用多进程实现服务器并发访问. 采用多进程的方式实现服务器的并发访问的经典范例. 程序实现功能: 1.客户端从标准输入读入一行文字,发送到服务器. 2.服务器接收到客户端发来 ... 
随机推荐
- centos7不能连接外网
			1. 首先保证虚拟机是NAT模式 2. 打开cmd窗口,输入ipconfig,查看vmnet8的ipv4地址是多少,DNS也需要记下,后面会用到 注意:vmnet8的ip要与虚拟机的网关IP在同一 ... 
- python 09 函数
			目录 函数初识 1. 函数定义: 2. 函数调用: 3. 函数的返回值: 4. () 4.1 位置传参: 4.2 关键字传参: 4.3 混合传参: 函数初识 1. 函数定义: def 函数名(): 函 ... 
- pip安装ansible的过程
			我的python环境已经搭好了pip,可以用pip直接安装. 1.首先要安装基础环境: 1)yum install gcc glibc-devel zlib-devel rpm-build opens ... 
- python学习——列表和元组
			一.列表 1)列表介绍 列表是Python内置的一种数据类型. >一组有序项目的集合(从第一个成员序号为0开始依次递增排序) >可变的数据类型(可进行增删改查) >列表中可以包含任何 ... 
- Java基础之抽象类与接口
			Java基础之抽象类与接口 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候 ... 
- 【原创】(二)Linux物理内存初始化
			背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ... 
- 转载-Springboot整合ehcache缓存
			转载:https://www.cnblogs.com/xzmiyx/p/9897623.html EhCache是一个比较成熟的Java缓存框架,最早从hibernate发展而来, 是进程中的缓存系统 ... 
- Netty源码分析 (一)----- NioEventLoopGroup
			提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题. 线程模型 首先来看一段Netty的使用示例 pa ... 
- 2019DX#6
			Solved Pro.ID Title Ratio(Accepted / Submitted) 1001 Salty Fish 16.28%(7/43) OK 1002 Nonsense Tim ... 
- HDU2485Destroying the bus stations 拆点网络流求割点个数
			题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2485 题目要求:删除最少的点,使得源点到汇点的距离大于k 思路:拆点.建图求费用小于等于k的最大流 # ... 
