linux文件系统
1.命令的一般用法
命令[-选项][参数列表]
ls 输出当前目录下的所有文件和文件夹
ls -a 使用ls显示隐藏文件或者文件夹
ls -l 可以显示文件和文件夹的属性
ls -la 可以显示所有文件和文件夹的属性
2.从linux终端获取帮助
help cd 查看cd命令的使用方法
type cd 查看指定命令是否为内建命令
命令 -- help 可以用于非内建命令的查看
man 命令 查看帮助信息
3.命令行文本编辑器
nano 文件名 如果该文件存在则打开,否则自动新建该文件 t1.txt
移动鼠标可以插入内容
^代表ctrl键 执行相应的保存操作即可
2.目录和路径
/ 根目录
/bin 可执行文件
/boot 开机引导文件
/dev 硬件设备或者接口设备的抽象文件
/etc 系统的主要配置文件
/home 用户的主目录包括保存的文件,个人设置等
/lib /bin和/sbin中命令会调用的函数库
/media 可移除媒体的挂载点
/mnt 临时挂载的文件系统
/opt 第三方应用程序的放置目录
/proc 虚拟文件系统
/sbin 必要的系统二进制文件
/srv 站点的具体数据
/tmp 临时文件
/usr 用于存储只读用户数据的第二层次
/var 在正常系统运行时不断变化的文件
/run 自最后一次启动以来运行中系统的信息
home --- user1
目录树 / ----- bin ---- bash/cd
linux系统只有一个根
特殊目录符号
. 当前目录
~ 当前登陆账户的主目录
.. 上层目录
~account account账户的主目录
- 上一个工作目录
相对路径和绝对路径
绝对路径: cd /home/lala/pycharm/bin/icons
相对路径: cd ../../help
path 环境变量
echo $PATH 显示path环境变量内容
export PATH=~/pycharm/bin: $PATH 添加path环境变量
目录管理
pwd 显示当前工作目录
help pwd 查看pwd帮助信息
查看文件目录和文件
ls -a 所有文件包括隐藏文件和. ..两个特殊目录
ls -A 所有文件不显示. ..两个特殊目录
ls -h 以方便阅读的形式显示文件单位
ls -i 显示文件的节点信息
ls -l 显示文件的详细信息
ls -R 递归显示目录和子目录的内容
ls -S 文件从大到小顺序排列
ls -t 按照文件的修改顺序排列 新的在前面
常用的目录操作
mkdir 文件名 创建新的文件夹
mkdir -p 文件名/文件夹/ 创建多级目录(需要之前创建的文件名)
mv 文件夹1 文件夹2 把目录名称从文件夹1改名为文件夹2
mv 文件夹1 ~/文件夹2 把文件夹1移动到文件夹2中
rm 文件名 删除指定文件
rm -r 文件夹 递归删除指定目录
文件管理
- 普通文件 文本 二进制 数据格式
d 目录 directory 文件夹
l 连接文件 link 快捷方式
b 块设备 block 硬盘 u盘 sd卡等
c 字符设备 character 一些端口的接口设备 鼠标 键盘等
s 套接字 sockets 数据接口文件 常用于网络上的数据连接
p 管道 pipe 解决多个程序同时访问一个文件引起的错误
file 文件名 查看文件类型
ls -l | grep -w 文件名 查看文件的详细信息 开头的字母可以反映文件的类型
管道是一系列把标准输入输出连接起来的进程 在linux系统中有命名管道和匿名管道两种
匿名管道符"|"表示 用来连接两个或者多个命令 将前一个命令的输出作为第二个命令的输入参数 例如:ls | grep lib
命名管道有明确的名称 以文件的形式储存在文件系统 命名管道可以被多个进程同时访问 达到通信的目的
mkfifo tst_fifo 创建命名管道
ls -l | grep ^p 查看管道文件 此时文件开头信息为p
新建文件
1> 使用touch命令创建文件 touch是修改文件访问时间为当前时间 当文件不存在时会自动创建
ls -l | grep ^- 查看普通文件
touch lal.txt 此时由于文件不存在会创建一个lal.txt
2> 文件编辑器创建 使用nano打开时 若文件存在会直接打开 若文件不存在会创建后打开
nano lal2.txt 此时由于文件不存在会创建一个lal2.txt 并打开
3> 使用重定向的方式创建文件 命令的结果会显示在终端中 可以通过重定向的方式创建一个文件并保存执行结果
> 当目标文件已经存在时 >输出内容会覆盖源文件中已经存在的内容
>> 当目标文件已经存在时 >>输出内容会追加到源文件的后面
> 'line_>.txt' 创建‘line_>.txt’
>> 'line_>>.txt' 创建‘line_>>.txt’
ls -l > 'line_>>.txt' 把ls -l的结果覆盖写入‘line_>>.txt’
ls -t >> 'line_>>.txt' 把ls -t的结果追加写入‘line_>>txt’
复制 移动 删除文件
cp 文件名1 文件名2 复制文件名1命名为文件名2
cp -s 文件名1 文件名2 为源文件创建快捷方式命名为文件名2
cp -p 文件名1 文件名2 完整复制文件的属性和内容
cp -a 递归复制,复制的数据会保留原有数据的时间戳等信息
移动文件
mkdir dir1 | mkdir dir2 创建两个文件夹 dir1 dir2
touch test.txt | ls | grep mv test.txt 创建test.txt文件并选择此文件移动
mv text.txt ~/dir2 把text.txt文件移动到dir2文件夹中
mv -i text.txt ~/dir 如果目标文件存在则覆盖
mv -b text.txt ~/dir 自动备份重名文件后直接移动
rm -r 文件夹名 删除目录
rm 文件 删除文件
rm -f 文件 强制删除此文件,谨慎使用
搜索文件
使用which命令搜索path环境变量中包含的命令的具体路径
which ls 查找ls命令的路径
使用locate查找文档路径
locate pycharm 命令查找所有包括pycharm关键词的文件
locate -c pycharm 输出查找到的文件个数
locate -l 3 pycharm 输出查找到的前三个文档
使用find命令查找
find -mtime -3 | grep uiyui 查找三天内修改过的文件 | grep uiyui(筛选条件)
find /home -user lala 寻找某路径下属于lala用户的所有文件
find -name uiyui 根据文件名查找文件路径
find -type p 根据文件类型来查找文件
显示文件内容
使用cat来实现文件的拼接和查看
nano moji1.txt 创建moji1
nano moji2.txt 创建moji2
cat moji1.txt moji2.txt > moji.txt 合并为moji
cat moji.txt 把moji.txt的内容输出到终端
cat -n moji.txt 查看文件内容和行号
当文件内容较长时可以通过more命令来实现分页查看
more .bashrc 使用more模式来阅读.bashrc文件
空格键:下一屏内容 回车:下一行内容 B:显示上一屏的内容 Q:退出
less命令
less .bashrc 使用less模式来阅读.bashrc文件
空格:下一屏 B:上一屏 右键:文档内容右移 左键:文档内容左移
d:向下半屏 u:向上半屏 回车:下一行 y:上一行
使用head,tail命令读取头尾
head -n 5 .bashrc 读取.bashrc文件的前五行
head -c 100 .bashrc 读取.bashrc文件的前一百个字符
tail -n 5 .bashrc 读取文件的最后五行
tail -n + 115 .bashrc 输出文件第(+)115行到最后
grep命令是一个非常强大的文本处理命令 根据关键词来实现对文本内容的筛选
常用选项如下
-a 不忽略二进制数据
-b 显示行号和匹配字符在整个文档的位置
-c 显示匹配关键词内容的行数并合并
-e 指定关键词 可以指定多个
-E 指定正则表达式
-i 查找是不区分大小写
-n 显示匹配的行号
-w 显示和关键词完全匹配的内容
-o 只输出文件中匹配到的内容 grep -n -w -o "if" .bashrc
使用管道符连接ls和grep命令可以实现关键词筛选 ls | grep cp
文件的压缩和备份
gzip压缩
-d 解压缩文件
-l 输出压缩包中储存的原始文件信息
-# 指定压缩等级
nano test.txt 创建文件
ls -l | grep test.txt 匹配文件
gzip test.txt 压缩文件
gzip -d test.txt.gz 对压缩文件解压缩
bzip2压缩使用和gzip相同 后缀文件是bz2
gzip和bzip2只能实现单个文件的压缩,无法实现文件的打包
可以使用tar命令将多个文件合并为一个压缩包
-c 新建打包文件
-t 查看打包文件中包含哪些文件
-x 解压文件包
-j 通过bzip2的支持进行压缩/解压缩
-z 通过gzip的支持进行压缩/解压缩
-C 指定解包的目标路径
-p 打包过程保留源文件的属性和权限
-v 输出打包过程中正在处理的文件名
tar -zcv -f 输出的文件名.tar.gz 要打包的目录 使用tar命令打包文件夹
# z使用gzip压缩 c新建打包文件 v输出打包过程中正在处理的文件名 -f向终端中写入
tar -ztv -f 输出文件名.tar.gz 查看打包后的压缩包的内容
tar -zxvf 输出文件名.tar.gz -C 解压目标目录 解压到目标目录
# 可以使用tar命令来备份系统/etc目录(良好的习惯)
sudo tar -zpvcf etc.tar.gz /etc