在Linux中有一个重要特性:everything is file
在Linux中对系统管理归根到底就是对文件进行管理,也就是对文件实施增删改查,因此学好文件管理是非常重要的!
1.文件和目录的建立
-
文件
新建文件的正确命令:<touch> 空格 <文件名>
touch file #新建文件名为file的文件#
touch file1 file2 file3 #新建多个文件,分别为file1 file2 file3#
<touch -t >空格<时间> 空格<文件名>: 用来修改文件的时间戳
<ls -l 文件名>:查看文件的属性
在下面这个示例中,我们可以看到在调用touch -t 命令后,file文件的时间被改变
-
目录
新建目录的正确命令:<mkdir> 空格 <目录名>
mkdir linux #新建linux目录#
mkdir linux1 linux2 linux3 #新建多个目录,分别为linux1 linux2 linux3#
mkdir -p linux4/content/test #新建层级目录,linux4中包含content目录,content中有test目录#
2.文件和目录的删除
-
删除文件的命令:<rm > 空格 <文件名>
rm linux #删除linux文件#
rm linux1 linux2 linux3 #批量删除文件#
<rm >空格 <-f> <文件名> 强制删除文件,没有删除提示(-f=-force)
- 删除目录的命令:<rm>空格 <-r> 空格 <目录名> # -r表示递归删除,删除目录本身及其所包含的所有内容#
rm -fr dir #删除目录#
rm -fr dir1 dir2 dir3 #批量删除目录#
3.文件的编辑
gedit: 图形文本编辑,直接编辑文件,与windows中 的txt记事本操作类似。(只有在图形时才可以使用)
vim: Linux中常用文本编辑工具
3.1 、vim的基本用法
<vim 文件名> # 打开文件并进入vim命令模式#
[I] #按i键进入插入模式,可以修改文件内容#
[esc] #书写完毕后按esc,退出插入模式返回命令模式#
:wq #在命令模式下 :wq 推出保存#
!!!在vim中编写时要注意到它的工作模式,这样在使用时就会减少很多错误操作
3.2、vim调整工作参数
- 在命令模式下(此设定为临时设定,vim关闭后设定消失)
<:set 参数信息 > 例如 set nu #设置行号#
- vim下永久设定 : 编写vimrc文件
vim /etc/vimrc 全局配置文件,所有用户都生效
vim /root/.vimrc 超级用户配置vim(进入家目录,编辑.vimrc文件,不同用户的设定只对自己有用)
- 常用参数
参数 | 作用 |
---|---|
set nu | 显示行号 |
set cursorline | 显示当前行 |
set ai | 设置自动缩进 默认值为8个空格 |
set ts=4 | 设置Tab键宽度为4个空格 |
3.3、vim命令模式下字符的搜索
【/关键字】 | 高亮显示关键字 |
【:noh】 | 撤销高亮 |
【n】 | 向下匹配 |
【N】 | 向上匹配 |
命令效果
3.4、vim命令模式下字符管理
命令 | 作用 |
---|---|
【y[n]l】 | 复制n个字符 |
【y[n]w】 | 复制n个单词 |
【y[n]y】 | 复制n行 |
【d[n]l】 | 删除n个字符 |
【d[n]w】 | 删除n个单词 |
【d[n]d】 | 删除n行 |
【c[n]l】 | 剪切n个字符 |
【c[n]w】 | 剪切n个单词 |
【c[n]c】 | 剪切n行 |
【p】 | 粘贴 |
【u】 | 撤销 |
【ctrl】+【r】 | 恢复 |
注意:剪切操作会进入插入模式,粘贴时按esc退出插入模式进行粘贴
3.5、vim可视化模式
- 在vim可视化模式中处理字符区域
*在命令模式下按【ctrl+v】进入可视化模式
*键盘上下左右可以移动选择区域
- 在可视化模式下批量添加字符
*【ctrl+v】选中要加入字符所在的列
*按大写的【I】
*加入字符
*esc退出
3.6、vim命令模式下字符的替换
字符替换的命令: <:%s/原字符/替换后字符/g>
# %s表示全文所有行# # g表示全文所出现原字符的列#
示例:
① <:%s/a/1/g > #替换全文的a为1#
② <:1,5s/a/1/g > #替换1-5行的a为1#
③ <:/haha/,/hehe/s/a/1/g> #替换haha到hehe之间的a为1 #
3.7、vim命令模式下的分屏功能
【ctrl+w s】 | 上下分屏 |
【ctrl+w v】 | 左右分屏 |
【ctrl+w c】 | 关闭光标所在屏幕 |
【ctrl+w 上下左右】 | 光标移动到指定屏幕 |
【:sp file2】 | 同时编辑当前文件和file2 |
3.8、vim在命令模式下光标的移动
【gg】 | 光标移动到文件的第一行 |
【G】 | 光标移动到文件的最后 |
【:数字】 | 光标移动到到指定的行 |
3.9、vim的编写模式进入
【i】 | 光标所在位置插入 |
【I】 | 光标所在行插入 |
【o】 | 光标所在行的下一行插入 |
【O】 | 光标所在行的上一行插入 |
【a】 | 光标所在字符的下一个字符插入 |
【A】 | 光标所在行的行尾插入 |
【s】 | 光标所在字符删除并插入 |
【S】 | 光标所在行删除并插入 |
3.10、vim的退出模式
- vim的退出命令:
【:q】 | 退出,在文件内容没有被改变时使用 |
【:wq】 | 退出保存 |
【:q!】 | 强制退出不保存,在改变文件后不想保存时使用 |
【:wq!】 | 强制退出保存,在只对文件编写时使用 |
- vim退出异常:
* vim异常退出 当vim还没保存编写内容而被强制关闭时
* .filename.swp 文件内保存没有写入部分数据,此文件手动删掉vim恢复正常
* 快捷键说明
【O】pen Read-Only | 只读打开 |
【E】dit anyway | 继续编辑 |
【R】ecover | 恢复数据 |
【D】elete it | 删除.swp文件 (按D后恢复正常) |
【Q】uit | 退出 |
【A】bort | 恢复后退出 |
- 异常页面
4.文件的查看
4.1、cat
查看文件的正确命令:<cat> 空格<文件名>
cat file # 显示file文件全部内容
cat -b file #显示file文件全部内容并显示行号(空行不显示行号)
cat -n file #显示file文件全部内容并显示行号(空行显示行号)
4.2、 less
<less filename > #分页浏览工具,会开启less环境#
less环境下的操作
上下键 #逐行查看
pgup|pgdown #逐页查看
[/关键字] #搜索关键字,n向下匹配 N向上匹配
[v] # 进入vim环境 编辑完成后:wq 回到less
[q] # 退出less模式
4.3、head|tail
head file #显示file文件前10行#
head -3 file #显示file文件前3行#
tail file #显示文件后10行#
tail -3 file #显示文件后3行#
4.4、查看文件类型
不能用文件的后缀名来判断文件的类型,要用file 命令来查看
查看文件的正确命令:<file> 空格 <文件名>
4.5、文件内容统计
统计文件内容命令:<wc> 空格 <参数> 空格<文件名>
参数 | 作用 |
---|---|
wc -l file | 文件file的行数 |
wc -w file | 文件的字数 |
wc -m file | 文件的字符数 |
wc -c file | 文件的字节统计(一个汉字3个字节) |
4.6、文件信息查看
查看文件的命令:<ls> 空格 <参数>空格 <文件名>
ls -l file #文件属性
ls dir #目录中包含的内容
ls -d dir #目录本身
ls -a dir #所有文件包括隐藏文件
ls -S dir #查看dir目录中内容并按大小排序
ls -s file|dir #查看文件大小
stat file #查看文件信息,比ls更详细
5.文件复制
复制文件的命令:<cp>空格 <souecefile>空格 <destfile>
cp file linux ## 复制file到linux ,当linux文件存在会覆盖文件内容,不存在会自动创建#
cp file1 file2 filedir ##复制多个文件到filedir目录中, filedir必须为目录#
cp -r filedir1 filedir2 ##复制目录到指定目录 ,必须用-r参数#
6.文件的移动
mv file linux #当linux存在则覆盖linux内容,不存在即重命名#
mv filedir filedir1 #移动filedir到filedir1目录中#
mv file1 file2 filedir #移动多个文件到filedir目录中 ,filedir必须为目录#
7.关于路径
7.1相对路径:
• 相对与当前系统所在目录的一个文件名称的简写
• 此名称省略了系统当前所在目录的名称
• 此名称不以“/”开头
• 此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
7.2绝对路径:
7.3 关于路径的命令
<cd 目录名称 > #进入指定路径
<cd - > # 当前目录和当前目录之前所在目录之间的切换
<cd .. > #进入当前目录的上级目录
【~】 #当前用户家目录
【~username】 #指定用户家目录
【~+】 #当前目录
【~-】 #进入当前目录所在目录中
cp /etc/passwd ~- ##复制etc中的passwd文件到进入当前目录之前所在目录中
cp /etc/passwd ~+ ##复制etc中的passwd文件到当前目录
注意:"~-"相当于“cd -"中的“-",但”-“不能用来进行文件管理,如【cp /etc/passwd -】不是把passwd复制到之前目录中,而是进行重命名
8.文件批处理
8.1 、系统中的通用配置符号
? | 匹配单个字符 |
[[:alpha:]] | 单个字母 |
[[:lower:]] | 单个小写字母 |
[[:upper:]] | 单个大写字母 |
[[:digit:]] | 单个数字 |
[[:punct:]] | 单个符号 |
[[:space:]] | 单个空格 |
[[:alnum:]] | 单个数字或字母 |
[[:punct:][:upper:]] | 单个符号或大写字母 |
示例:
rm -fr ?? ##删除文件名为两个字符的文件
rm -fr *[[:digit:]] ##删除文件名最后一个字符为数字的文件
8.2、字符集和
{} 用于精确匹配内容
{1,2,5} 3个, 1 2 5
[] 用于模糊匹配
[1-9] 1位,这位是1-9的数字
[a-z] 1位,a-z的任意字母
[!2-6] 1位,不是2-6的数字
[^2-8] 1位,不是2-8的数字
touch {1..5} #创建文件名分别为1,2,3,4,5的五个文件
rm -fr [2-4] #删除文件名为2,或3,或4的文件
模糊匹配与精确匹配的对比
9.Linux系统中的根文件系统的层级结构
目录 | 说明 |
---|---|
/ | 根目录,系统中的顶级目录 |
/bin | 所有用户可执行的命令程序文件 |
/sbin | 系统管理命令程序,通常只有root用户可以执行 |
/boot | 系统启动引导过程中加载的文件存放目录 |
/dev | 系统设备文件存放路径 :字符设备 块设备 |
/etc | 系统程序的配置文件 |
/home | 普通用户家目录集合:
•
此目录中的子目录通常被设定为用户家目录,是可选目录,此目录不是基本系统目录
•
普通用户在登录后默认被设定进入此目录中的相应子目录中
|
/root | 超级用户家目录:超级用户登录系统后默认进入的系统目录 |
/lib | 系统启动程序和根下应用程序 (/lib64:64位系统存放64位库的路径) |
/media | 临时设备挂载点:cdrom usb |
/mnt | 系统磁盘的临时挂载点 |
/opt | 系统默认第三方软件安装的位置 |
/proc | 进程和内核相关参数信息 |
/sys | 内核参数目录 |
/tmp | 系统临时文件存放目录,对所有用户可写 |
/usr | 全局共享只读资源,除根目录外系统最重要的目录 |
/run | 当前运行进程相关数据,此目录中的文件通常被程序自动调用 |