linux基础之文件管理
1.1 linux的特性
在Linux中有一个重要特性: everything is file,即在Linux系统下,任何东西对我们来说都是文件,因此对系统的管理归根到底就是对文件进行管理,对文件实施增删查改。
1.2 linux下对文件的建立
touch
(1)作用:通常在系统中用 于新建文件但是命令本 身也可以修改文件的时间戳
(2)语法:# touch filename
(3)常见使用:
# touch file1 file2
# touch dir/file
# touch dir/{file1,file2}
# touch dir/file1 dir/file2
注意:3种电脑时间
access | 访问的时间 |
---|---|
modify | 内容变更时间 |
change | 内容和属性变更时间 |
# stat file 查看文件状态
# watch -n 1 stat file 每间隔1s刷新一次状态
mkdir
(1)作用:通常在系统中用 于新建目录
(2)语法:# mkdir directory
(3)常见使用:
# mkdir dir1 dir2
# mkdir -p dir/dir1/dir2 建立多级目录需要 -p
# mkdir -p dir/{dir1,dir2}
# mkdir -p dir/dir1 dir/dir2
1.3 Linux下文件的删除
rm
(1)作用:通常在系统中用 于删除文件和目录
(2)语法:# rm -r -f dir
(3)常见使用:
# rm -f file 不询问直接删除(-f不用询问)
# rm -r dir 删除多级目录(-r 递归删除)
# rm -rf dir
1.4 linux下的文件编辑
gedit
(1)作用:图形的文本编辑,直接编辑文件,与windows中 的txt记事本操作类似
(2)语法:# gedit file
echo
(1)作用:在shell中直接添加内容到文件中
(2)语法:# echo haha > file
vim
(1)作用:Linux中常用文本编辑工具
(2)语法:# vim file
- vim的基本用法
- vim file
- 按【i】键进入插入模式
- 按【ESC】退出插入模式
- 按
:wq
保存退出
- vim的工作模式
1.命令模式
2.插入模式
3.退出模式
VIM命令模式下调整工作参数
-
在命令模式下
•:set 参数信息
• 例如:set nu
• 此设定为临时设定,vim关闭后设定消失 -
vim下永久设定
•# vim /etc/vimrc 对所有的用户都有效
•set +参数信息
或者
•# vim ~/.vimrc 只对本用户有效
•set +参数信息
3.常用设置参数
:set nu 设置行号
:set ts=2 设置TAB间隔为2
VIM中字符的搜索
注意:在命令模式下
- 关键字匹配
【/关键字】 高亮显示关键字
【:noh】 撤销高亮
- 检索关键字
【n】向下匹配
【N】向上匹配
VIM中的字符管理
注意:在命令模式下
-
复制
• 【yl】 复制一个字符
• 【yw】 复制一个单词
• 【yy】 复制一行删 -
删除
• 【dl】 删除一个字符
• 【dw】 删除一个单词
• 【dd】 删除一整行 -
剪切
• 【cl】 剪掉一个字符
• 【cw】 删掉一个单词
• 【cc】 删掉一行
• 注意:剪切操作会进入插入模式 -
粘贴
• p 粘贴 -
撤销
• u 撤销 -
恢复
• ctrl+R 恢复
vim可视化模式
注意:在命令模式下
-
在vim可视化模式中处理字符区域
• 在命令模式下按【ctrl】+【v】进入可视化模式
• 键盘上下左右可以移动选择区域 -
在可视化模式下批量添加字符
• ctrl + v 选中要加入字符所在的列
• 按大写的【i】
• 加入字符
• 按【esc】
vim中字符的替换
注意:在命令模式下
- 语法
:%s/原字符/替换后字符/g
• %表示全文
• %s表示全文所有的行
• g表示全文所出现原字符的列
- 常用语法:
:%s/:/@/g 替换全文的:为@
:1,5s/:/@/g 替换1-5行的:为@
:/adm/,/halt/s/:/@/g 替换adm到halt之间的:为@
vim 的分屏功能
注意:在命令模式下
【ctrl】+【w】【 s】 • 上下分屏
【ctrl】+【w】 【v】 • 左右分屏
【 ctrl】+【w】 【c 】• 关闭光标所在屏幕
【 ctrl】+【w】 上下左右 • 光标移动到指定屏幕
:sp file2
• 同时编辑当前文件和file2
在命令模式下光标的移动
【gg】 • 光标移动到文件的最后
【G】• 光标移动到到指定的
:200
• 光标移动到到指定的行
vim的编写模式进入
【i】• 光标所在位置插入
【I】• 光标所在行行首插入
【o】• 光标所在行下一行插入
【O】• 光标所在行的上一行插入
【a】 • 光标所在字符的下一个字符插入
【A】• 光标所在行的行尾插入
【s】 • 光标所在字符删除并插入
【S】 • 光标所在行删除并插入
vim的退出模式
:q
•退出,在文件内容没有被改变时使用
:wq
•退出保存
:q!
•强制退出不保存,在改变文件后不想保存时使用
:wq!
•强制退出保存 在对只读文件编写时使用,注意,所编辑的只读文件必须时
vim异常退出
- 原因:当vim还没保存编写内容 而被强制关闭时
- 解决:会产生 .文件名称.swp,文件内保存没有写入部 分的数据,此文件如果 被手动删掉vim恢复正常 工作
- 快捷键说明:
• [O]pen Read-Only 只读打开 ,:q
退出;如果改变内容时,:wq!
退出内容也改变
• (E)dit anyway 继续编辑 ,会产生.file.swo文件,与之前内容无关,可另存别的名字
• ®ecover 恢复数据 ,把.file.swp.文件内容恢复。
• (D)elete it 删除[.swp]文件 ,使vim下次打开变正常。
• (Q)uit 退出
• (A)bort 恢复后退出
1.5 linux下的文件的查看
cat
(1)作用:shell上直接查看文件内容
(2)语法:# cat file
(3)常见使用:
# cat -b file 显示文件的内容并显示行号,但不统计空
# cat -n file 显示文件的内容并显示行号,统计空行
less
(1)作用:当文件内容比较长是使用less分页浏览
(2)语法:# less file
(3)操作:
• 上|下 逐行移动
• pageup|pagedown 逐页移动
• /关键字
高亮显示关键字,【n】向下匹配,【N】向上匹配
• 【v】 进入vim模式 在vim模式中按:wq
退回到less模式
• 【q】 退出
head & tail
(1)作用:shell上直接显示文件前10行&后10行
(2)语法:# head file #tail file
(3)常见使用:
注意:默认显示为前10后10行内容
# head -n 5 file 显示文件前5行
# tail -n 5 file 显示文件后5行
# tail -f file 监控文件后10行的变化,通常用于监 控系统日志
# tac file 反向显示所有内容
# sed -n 5,8p file 显示5-8行内容
# sed -ne “5p;8p” file 显示第5行,第8行内容
ls
(1)作用:文件信息查看(属性,内容)
(2)语法:# ls file1 # ls dir1
(3)常见使用:
# ls 查看本身目录包含内容
# ls dir查看指定目录内容
# ls -l dir 查看目录中文件的属性
# ls -ld dir 查看目录本身属性
# ls -l file 查看文件属性
# ls -a dir查看目录所有包括隐藏的文件
# ls -s dir 查看目录所有文件大小
# ls -S dir 查看目录所有文件大小并按大小排序
1.6 linux下的文件的复制及移动
cp
(1)作用:复制文件或目录,当目的地文件存在会有询问
(2)语法:# cp file1 file2 # cp -r dir1 dir2
(3)常见使用:
# cp file1 file2 复制文件内容,不改变文件名,当file2文件存在会有询问
# cp -r dir1 dir2 复制目录到目录中
# cp file1 file2 dir 复制多个文件到一个目录中,注意:目的地目录必须存在
# cp -r dir1 dir2 dir 复制多个目录到一个目录中,注意:目的地目录必须存在
注意:1.目录是一个容器,复制时需要逐级复制,需要**-r**
2.复制是按照模板新建的过程
mv
(1)作用:移动文件或目录,相同分区的移动是重命名的过程,不同分区的移动是复制删除过程
(2)语法:# mv file1 file2 # mv dir1 dir2
(3)常见使用:
# mv file1 file2 file1重命名为file2,ID不变,当file2文件存在会被覆盖,内容变成file1原来的内容。
# mv dir1 dir2 移动目录到目录中,ID不变。
注意:相同分区的移动是重命名的过程,不同分区的移动是复制删除过程。
1.7 linux下的文件统计
file
(1)作用:文件的名称不能代表文 件的类型,file可以查看文件的真 实类型是什么
(2)语法:# file westos1
(3)常用查看文件
# stat file 查看文件状态
# ls -i file 查看文件ID
#file file1 查看文件类型
wc
(1)作用:用于统计文件的字数,字符数,行数
(2)语法:# wc file1
(3)常见使用:
# wc -l file 文件的行数
# wc -w file 文件的字数
# wc - m file 文件的字符数
# wc -c file 文件的字节数
注意:1个汉字为1个字符,1个字符为3个字节。当统计字符时,每个单词后面有隐藏的/n,也算一个字符。
1.8 Linux系统中的根文件系统的层级结构
FHS | 文件系统层级结构标准 |
---|---|
/ | 根目录,系统中的顶级目录 |
/bin | 所有用户可执行的命令程序文件 |
/sbin | 系统管理命令程序,通常只有root用户可以执行 |
/boot | 系统启动引导过程中加载的文件存放目录 |
/dev | 系统设备文件存放路径 |
/etc | 系统程序的配置文件 |
/home | 普通用户家目录集合,此目录中的子目录通常被设定为用户家目录,不是基本系统目录 |
/root | 超级用户家目录 |
/lib&/lib64 | 系统启动程序和根下应用程序(/bin,/sbin等)提供共享库 |
/media&/mnt | 临时设备挂载点 &系统磁盘的临时挂载点 |
/opt | 系统默认第三方软件安装的位置 |
/proc&/sys | 进程和内核相关参数信息&内核参数目录 |
/srv | 当前主机位系统服务提供的数据 |
/var | 经常变化的系统数据 |
/tmp | 系统临时文件存放目录 , 系统中的所有用户都会用到所以要对所有用户可写 |
/usr | 全局共享只读资源 |
/run | 当前运行进程相关数据 |
1.9 Linux系统中文件寻址
- 相对路径
• 此名称不以“/”开头
• 此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值 - 绝对路径
• 绝对路径是文件在系统的真实位置
• 此命令是以“/”开头的
• 此命令在命执行时系统不会考虑现在所在位置的信息
例:当问位置Desktop,相对路径为file或./file(.代表当前位置)
绝对路径为/root/Desktop/file
pwd
(1)作用:显示路径
(2)语法:# pwd file
cd
(1)作用:切换路径,进入指定目录
(2)语法:# cd dir1
(3)常见使用:
# cd ..进入当前目录的上级目录
# cd - 当前目录和当前目录值前所在目录之间的切换
1.10 Linux系统中文件批处理
1.系统中的通用配置符号
? | 匹配单个字符 |
---|---|
[[:alpha:]] | 单个字母 |
[[:lower:]] | 单个小写字母 |
[[:upper:]] | 单个大写字母 |
[[:digit:]] | 单个数字 |
[[:punct:]] | 单个字符 |
[[:alnum:]] | 单个数字或字母 |
[[:space:]] | 单个空格 |
[[:punct:][:upper:]] | 单个个符号或单个大写字母 |
2.字符集合
精确匹配 | 模糊匹配 |
---|---|
{} | [] |
{1,3,5} 3个数字 | [1-9] 1位任意1-9数字 |
{1…9} 9个数字 | [!1-3]一位任意不是1-3的数字 |
3.“~”应用汇总
~ | 当前用户家目录 |
---|---|
~ username | 指定用户的家目录 |
~+ | 当前所在目录 |
~- | 进入当前目录之前所在目录(和# cd - 中的-一样,也可写作# cd ~- ) |