linux---文件系统与目录结构、目录操作、输入输出
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
文章目录
linux—文件系统与目录结构、目录操作、输入输出
文件目录结构
- 文件和目录被组织成一颗倒置的树状结构
- 文件系统从根开始, “/”
- 文件名严格区分大小写
- 隐藏文件以“.”开头
- 路径的分隔符为“/”,正斜杠
文件命名规范
- 文件字符最长为255个字符
- 包括路径在内文件名最长为4095个
- 颜色表示
- 蓝色:文件夹或目录
- 绿色:可执行文件
- 红色:压缩文件
- 蓝绿色:链接文件
- 灰色:其他文件
- 白色:文件
- 文件名:除了斜杠和NULL其他的所有字符都可以使用。
- 对大小写敏感
文件系统结构
- /boot:引导文件的存放位置,内核文件、引导加载器都在这里。
- /bin:所有的用户都可以使用的命令
- /sbin:管理类的命令
- /lib:启动时程序使用的基本库文件,以.so结尾
- /lib64:专门存放X86_64系统上的辅助库文件
- /etc:存放配置文件的目录
- /home/username:普通用户的家目录
- /root:管理员的家目录
- /media:便携式移动设备的挂载点
- /mnt:临时文件的挂载点
- /dev:设备文件和特殊文件的存放位置
- /opt:第三方的安装应用
- /tmp:存放临时文件
- /usr:存放安装程序
- /var:存放经常变化的文件,比如日志
- /proc:存放内核启动和进程相关的虚拟文件
- /sys:输出当前系统上的硬件相关的一些文件
- /srv:系统上允许的服务用到的数据
Linux应用程序的组成
- 二进制文件
- /bin
- /sbin
- 库文件
- /lib
- /lib64
- 配置文件
- /etc
- /etc/name
- 帮助文件
- /usr/share/man
- /usr/share/doc
绝对路径和相对路径
- 绝对路径
- 以根开始
- 完整的文件的存放位置
- 可以读取到任何一个文件
- 相对路径
- 不以根开始
- 相对于当前的位置来决定的
- 可以简短的表示一个文件或者文件夹
- .当前目录
- …父级目录、
目录名和基名
[root@localhost ~]# basename /etc/sysconfig/network-scripts/ifcfg-ens33
ifcfg-ens33
[root@localhost ~]# basename /etc/sysconfig/network-scripts
network-scripts
[root@localhost ~]# dirname /etc/sysconfig/network-scripts/ifcfg-ens33
/etc/sysconfig/network-scripts
[root@localhost ~]# dirname /etc/sysconfig/network-scripts
/etc/sysconfig
切换目录
-
cd 切换目录 change directory
- 可以使用相对路径
- 可以使用绝对路径
-
cd 切换到家目录
-
cd - 回到上一次的目录
-
pwd 显示当前的工作目录
-
# 查看链接的真正目录 [root@localhost lib]#pwd -P /usr/lib
列出目录或文件
ls list
ls -a 显示所有文件
ls -l 以长文件格式显示文件列表
[root@localhost lib]#ls -l
total 48
drwxr-xr-x. 3 root root 18 Dec 7 03:36 alsa
权限 硬盘的引用次数 属主 属组 大小 访问时间 文件名称
ls -R 递归显示目录
ls -d 显示目录本身
ls -1 (数字1)文件分行显示
ls -S 按照文件的大小排序
ls -r 倒序显示
ls -t 按照时间来排序
ls -lh 显示人类易读的方式
ls -d 显示当前目录下的文件夹
l. 只显示隐藏文件
linux下的目录类型
- -用来表示文件
- d用来表示目录
- b块设备
- c字符设备
- l表示符号链接文件
- s套接字socket
查看文件的状态
stat 'filename'
touch创建文件
touch a 创建一个空文件和刷新时间,有就只刷新修改时间,如果没有就创建
touch -a a 只修改访问时间和改动时间
touch -m a 修改修改时间和改动时间
文件通配符
- *所有
- ?1个
- ~表示用户的家目录
- [123] 其中一个
- [^123] 取反
- [0-9] 表示数字
- [a-z] 字母(有坑)缺少Z
- [A-Z] 缺少a
- [:lower:] 小写字母
- [:upper:] 大写字母
- [:alpha:] 所有字母
- [:alnum:] 字母和数字
创建删除目录
mkdir filename 创建目录
mkdir -p filenameA/B/C 递归创建
mkdir -pv filenameA/B/C 递归创建 -v显示详细过程
# 显示目录树
yum install -y tree
tree 显示目录树
tree -d 只显示文件夹
tree -L 2 只显示2层
rmdir 只能删除空目录
rmdir -p 递归删除 只能删除空的父目录
rmdir -pv 递归删除 只能删除空的父目录 -v显示详细过程
rm -rf 删除非空目录
复制文件和文件夹
cp copy 默认情况下时别名,原来本身命令时不提示覆盖的
cp --help
Usage: cp [OPTION]... [-T] SOURCE DEST
or: cp [OPTION]... SOURCE... DIRECTORY
or: cp [OPTION]... -t DIRECTORY SOURCE...
cp a b 把acopy到b
-i 显示提示信息
-n 不覆盖
-r/-R 递归复制
-b 备份原来的文件
-p 保留原来的属性
- 如果源文件是文件的话
- 目标是文件
- 目标文件不存在,则新建目标文件,并把内容写道目标文件中
- 如果目标文件存在,直接覆盖
- 目标是文件夹
- 在文件夹中新建一个同名文件,并把文件写到文件中
- 目标是文件
- 如果源文件是多个文件的话
- 目标必须是个文件夹,文件夹必须存在,其他情况都会报错
移动
mv move
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...
mv a b
-i 提示
-b 备份
-f 强制
-v 显示过程
删除
rm remove
Usage: rm [OPTION]... FILE...
Remove (unlink) the FILE(s).
rm file
-r 递归删除
-f 强制
rm -rf 慎用
链接
软链接
- 相当于windows的快捷方式
- 创建的命令 ln -s f1 f2 给f1创建一个链接f2
- 源文件改变它也会随着改变
- 源文件删除,他也没了
硬链接
- ln f1 f2
- 磁盘引用次数会发生变化
- 指向的是硬盘上的同一块区域
- 不能对目录做硬链接
- 源文件改变它也会随着改变
- 源文件删除,它还可以用
file 查看文件的类型
输入和输出
- 标准输入 默认是来自键盘的输入 stdin 0
- 标准输出 默认输出到终端窗口 stdout 1
- 标准错误输出 默认输出到终端窗口 stderror 2
I/O重定向
>
覆盖
>
将标准输出重定向到文件中- 2> 将错误输出到重定向文件中
- &> 将所有的输出到重定向文件中
禁止、允许覆盖
- 禁止覆盖set -C
- 允许覆盖set +C
>> 追加
-
>>将标准输出追加到文件中
-
2>>
-
&>>
分开保存
ls f sdas > log.log 2> error.log
合并所有的输出
- &>覆盖重定向
- &>>追加重定向
- ls f dsadas > r 2>1 相当于 &>
- (command1;command2)2> f1 多个错误输出到一个文件
- /dev/null 黑洞
< 输入
从文件导入stdin
tr 字符替换
tr 'a-z' 'A-Z' 小写换大写
tr -t abc 12 -t截断 abc 替换为12c
tr abc 12 abc替换为122
tr -d abc -d 删除abc
tr -s a -s 去重
tr -sc a -c 取反
处理完成后 不能协会源文件,要写到新的文件中。
多行发送给stdin
# 方式2
cat > f1
dsada
dasda
dsadas
# 方式2
cat > f2 <<EOF
>dasdas
>dasdas
>EOF
EOF不是必须的,可以自己随便写,两次相同即可
管道
管道使用“|”来表示
命令1|命令2|命令3
- 把命令1的输出当命令2的输入
- 把2的输出当3的输入
- 默认情况只能传输标准输出,如果像输出错误信息则需要加上 |&
- 一般用来组合多个命令
- 有一些命令是不接受管道的
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献4条内容
所有评论(0)