Linux文件操作及管理
—恢复内容开始—
一、Linux系统的结构
1、Linux是一个倒树型结构,最大的目录名称为“/”(根目录)
2、Linux系统的二级目录
/bin ##binary二进制可执行文件,系统常规命令
/boot ##启动目录,存放系统自动启动文件,内核,初始化程序
/dev ##系统设备管理文件
/etc ##大多数系统配置文件存放路径
/home ##普通用户家目录(/home/student)
/media ##临时的挂载点
/lib ##函数库
/lib64 ##64位函数库(含有.bll)
/mnt ##临时挂载点
/run ##自动临时设备挂载点(u盘)
/opt ##第三方软件安装的位置
/sbin ##系统管理命令,通常只有root可以执行
/proc ##系统硬件信息和系统进程信息~~~~
/srv ##系统数据目录
/var ##系统数据目录
/sys ##内核相关数据
/usr ##用户相关信息数据
/tmp ##临时文件产生目录
/root ##超级用户家目录
***使用mount命令来更改临时设备的挂载点***
二、文件管理命令
1、文件的建立
命令:touch filename ## 通常用来创建文件,也可以修改文件的时间戳
注释:时间戳分为atime、mtime、ctime
atime :文件内容被访问的时间标识
mtime :文件内容被修改的时间标识
ctime :文件属性或文件内容被修改的时间标识
实例:使用*** touch file *** 建立一个名为file的文件,并使用stat命令进行查看
- 若进行文件的查看后,则访问时间将会被改变,结果如下:
- 若文件进行编辑后,则访问时间、修改时间和文件改变时间三者均会变化,结果如下:
注意:使用*** touch –help ***进行其他参数的查看
2、目录的建立
命令:mkdir directory ## 用来建立名为directory的目录
mkdir -p test/redcat/linux ## -p 进行多级目录的创建
注释:也可使用 mkdir –help命令进行参数的查看
实例:使用*** mkdir niu ***创建一个目录名为niu,结果如下:
- 多级目录创建结果如下:
3、文件的删除
命令:rm file ## 进行文件的删除
rm -f test ## -f 为强行删除文件
实例:使用*** ls file ***命令删除文件file,结果如下:
4、目录的删除
命令:rm -r directory ## -r表示递归删除所有内容
rm -r -f dir ## 删除目录不再提示
rm -rf dir ## j结果与上一个相同,且有 -a -b -c= – abc = – cba
实例:使用*** rm -rf test*** 删除test目录以及test目录下的所有内容,结果如下:
5、文件编辑
- gedit 编辑器
命令:gedit file ## 必须有图形界面,进行file文件的编辑
- vim 编辑器
命令:vim file ——> 按 i 进入insert 模式 ——> 书写内容 ——> esc退出insert模式 – —–> wq退出并保存
实例:gedit使用(使用以下命令即可打开file文件,并进行编辑)
- 使用vim.tiny实例应用如下:(vim 和vim.tiny功能类似)
###### 使用vim 会出现异常情况 ######
当vim异常退出时,会生成.file.swp文件(原因是修改文件未保存)
当helloc未保存后再次打开时,会出现以下情况:(下面文字接着图的more)
Swap file “.hello.swp” already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
只读打开 继续编辑 恢复数据 删除swap文件 退出
分析:无论按【o】【e】【r】【q】【a】任何一个都不会删除.swp文件,再次打开还会
有这样的这个问题,直到按【D】后,.swp被删除,vim恢复正常。
6、文件的复制(复制目录的时候用- r)
命令:cp sourcefile objectfile ## 表示把远文件复制到目标文件
cp -r 源目录 目的地目录
cp 源文件1 源文件2 目的地目录 ## 目的地目录必须存在
cp -r 源目录1 源目录2 目的地目录 ## 目的地目录必须存在
实例:把file文件中的内容复制到file1中,结果如下:
- 使用 *** cp -r test test1 ***命令把test目录下内容复制到test1目录中,结果如下:
- 使用 *** cp file1 file2 dir ***命令,把file1和file2文件复制到目录dir下,结果如下:
- 使用*** cp -r dir dir1 dir2 ***把目录dir1和dir2复制到目录dir3下,结果如下:
7、文件的移动
命令:mv 源文件 目的地文件 ## 重命名
mv 源目录 目的地目录
实例:使用*** mv file file1***命令,把file重命名为file1,结果如下:
使用*** mv niu/file test/ ***把niu目录下的file文件移动到test目录中,结果如下:
(.代表当前目录)例:把test目录下的file1复制到当前目录下,命令如下:
注意:相同磁盘的文件移动是重命名的过程,不用磁盘的移动是复制删除的过程。
8、文件的查看
命令:cat filename ## 表示查看文件的全部内容
cat -b filename ## 查看内容并显示行号
less filename ## 分页浏览(以下命令在less命令之后的操作)
上|下 ## 逐行移动
pageu|pagedn ## 逐页移动
/关键字 ## 高亮显示关键字,n向下匹配,N向上匹配
v ## 进入vim模式,然后按i进行编辑,返回vim模式按esc
q ##退出vim模式
实例:使用*** cat file1***命令查看file1中的内容,结果入下:
- 查看内容并显示行号,结果如下:
- less 命令既修改文件中的内容,也可以使用快捷键进行查找,在此就不放截图了。
9、文件的寻址
相对路径:
相对与当前系统所在的目录的一个文件名称的简写;
此名称省略了系统当前所在目录的名称;
此名称不以“/”开头;
此名称在命令执行时会自动在操作对象前加入”pwd”所显示的值。
绝对路径:
绝对路径是文件在系统中的真实位置;
此命令以“/”开头;
此命令在执行时不会考虑现在的位置的信息。
注意:当操作对象是 对象1 空格 对象2 时,这两个对象没有任何关系
亲 ## 动作时被系统执行,不能作为名称出现
“亲” ## 引号的作用是把动作变成名称字符,这种方法叫引用
pwd ## 显示当前工作目录
10、自动补齐
《tab》
系统中的《tab》键可以实现命令的自动补齐;
可以补齐系统中存在的命令,文件名称,和部分命令的参数;
当一次《tab》补齐不了时,代表以此关键字开头的内容不唯一;
可以使用《tab》两次来列出所有一次关键字开头的内容散
三、关于路径的命令
ls –help ## 用来查看关于ls的所有参数
touch .file ## 建立一个隐藏文件.file,使用*** ls*** 显示不出来
注意:若是建立一个目录为 -a ,则删除的时候使用*** rm -rf ./-a ***来进行删除
实例:
1、显示路径
命令:pwd ## 显示的是绝对路径
2、切换路径
命令:cd - ## 当前目录和当前目录之前所在目录之间的切换
cd .. ## 进入当前目录的上级目录
cd ~ ## 进入当前用户家目录
cd ~user ## 进入user家目录
cd 目录名 ## 进入到制定目录中
cd ~+ ## 表示跳转到当前目录
cd ~- ## 跳转到当前用户之前的目录
实例:使用***cd – ***命令切换在/etc和/home/niu123进行切换,结果如下:
- 使用*** cd .. ***命令,使当前目录切换到上一层/home目录,显示如下:
- 使用***cd ~***命令切换到当前用户家目录,如下:
- 使用***cd ~niu123***命令,同样可以切换到niu132家目录(也可切换到其他用户名):
- 使用 ***cd 目录名***可以任意切换到指定得目录中,显示如下:
- 使用命令***cd ~-***切换到上一个目录(与cd -相似),cd ~+切换到当前目录:
2、路径的查看
命令:ls ## 显示当前目录下的所有内容
ls -l file ## 文件的属性
ls dir ## 目录中包含的内容
ls -d dir ## 目录本身(list directory)
ls -a dir ## 显示所有文件包含隐藏的(all)
ls -S dir ## 查看并且按大小排序
ls -ld ## 表示的是目录本身的属性
ls -R ## 显示当前所在文件的所有文件和对应目录的子目录
实例:使用命令*** ls -S Desktop***从大到小排序并显示
- 使用***ls -R ***分级显示文件和目录对应的子目录
(在这就只显示着两个参数的结果,其他参数结果请回看“上一篇:Linux虚拟机基本操作”)
4、文件查看
命令:cat ## 输出文件全部内容
less ## 分页浏览
head file ## 查看文件的前十行
head -n 3 file ## 查看文件的前3行
tail file ## 查看文件的后十行
tail -n 3 file ## 查看文件的后三行(数字是可以改变的)
tail -f file ## 监控文件后十行内容的变化
实例:由于前面写过cat和less基本用法,这就不演示了。主要是head和tail的简单操作,
使用命令*** head /etc/passwd ***显示/etc/passed文件的前十行内容:
- 使用命令*** head -n 3 /etc/passed ****显示文件的前三行内容:
- 使用命令*** tail /etc/passwd***显示文件的后十行内容:
- 使用***tail -n 2 /etc/passwd ***命令显示文件后两行内容:
- 使用 ***tail -n 3 -f file ***来监控文件后3行的变化:
注意:使用*** tail -f ***命令进行监控时,首先要打开一个终端,输入监控命令;然后再桌
面上打开另一个终端,利用echo进行输入;此时就可以在第一个终端出看到输入的字符
了。若在第二个终端使用vim编辑器进行编辑,则在第一个终端不会看到相应的变化;这
时可以用watch命令进行监控。
5、文件大小统计
命令:wc filename ## 显示文件基本信息
wc -l filename ## 显示文件内容的行数
wc -c filename ## 显示文件的字节数
wc -m filename ## 显示文件字符数
wc -w filename ## 显示文件内容的单词数
实例:显示文件file的基本信息:
其中,9表示文件的行数,10表示单词数,66表示字符数,file为文件的名字。
- 使用命令*** wc -l file ***显示文件file的行数,结果如下:
- 使用命令分别显示file的字节数、字符数、单词数,结果如下:(由于内容均为字母,
一个字符是一个字节,故其结果是相同的)
四、系统中历史记录的调用
命令:histroy ## 查看历史记录
history -c ## 清空当前环境中的历史
!数字 ## 调用此行历史,比如!5时表示执行历史中第五条指令
!test ## 执行以test关键字开头的最近一条历史
ctrl+r+关键字 ## 会调用最近一条含有关键字的命令
实例:使用history查看历史记录
- 使用*** !2 ***查看第二条命令并执行的结果如下:
- 使用关键字查看,其结果是显示ls开头的历史记录,即第13条记录的结果:
- 使用***ctrl + r + cd***查询有关最近一条有关cd的命令并显示结果:
- 使用*** history -c***进行历史记录的清除:
五、系统中获取帮助的方法
1、查看命令的用途
命令:whatis 命令 ##查看命令的用途
实例:对cat命令进行查看
2、查看命令的用法
命令: –help ## 查看命令的基本用法,适用于多数命令
标识符:【】 ## 表示选项可以加也可以不加
… ## 表示选项加入的个数是任意的
<> ## 表示选项是必须要加的
usage ## 表示命令用法
Options ## 对参数的作用作说明
3、查看命令或文件的说明手册
命令:man 命令 ## 查看命令的说明和用法
man 5 文件 ## 查看文件的说明
注意:man的级别有九种(1命令;2系统调用接口;3函数库调用接口;4特殊设备
文件;5系统配置文件;6为游戏规则说明;7包说明;8系统管理命令;9内核
调用说明);配置文件的编写用man(manual)
man基本用法:
上|下 ## 逐行查看
pgup|pgsn ## 分页查看
/关键字 ## 高亮显示
:q ## 表示退出
man -k 字符串 ## 查看当前字符串在系统中拥有的man级别
man man ## 查看man的相关内容
六、系统中通用配置
* ## 表示匹配多个字符
? ## 表示匹配单个字符
[[:alpha:]] ## 匹配单个字符
[[:lower:]] ## 单个小写字母
[[:upper:]] ## 单个大写字母
[[:digit:]] ## 单个数字
[[:punct:]] ## 单个符号
[[:space:]] ## 单个空格
[[:alnum:]] ## 单个数字和字母(除了用[![:alnum:]]表示)
[1-9] ## 表示1位,是1-9中任意数字
[!3-5] ## 1位,不是3-5的数字
[^3-5] ## 与上述情况相同
[a-z] ## 1位,a-z的任意字母
{1..3} ## 3个,表示1,2,3
{1,3,5} ## 三个,表示1,3,5
实例:建立文件file1-file6结果如下:(两种方式,文件建立的时候必须是精确的)
- 使用单个字符进行删除,如下图所示,rm -rf file[1-2]删除file1和file2;
rm -rf file[!1-2]则删除不是file1和file2的其他file{3,4,5,6}。
- 命令*** rm -rf fi* ***删除文件以fi开头的所有文件;*** rm -rf test[[:digit:]]***表示
删除以test开头最后一个字符为数字的文件
作业一
1、用一条命令建立12个文件WESTOS_classX_linuxY(X取值范围1-2,Y取值范围为1-6)
这些文件都包含在root用户桌面的study目录中;
2、用一条命令建立8个文件redhat_versionX(X的范围1-8),且文件包含在/tem目录下的
VERSION中;
3、用一条命令把redhat_versionX中带奇数的文件复制到桌面的SINGLE中;
4、用一条命令把redhat_versionX中带偶数的文件复制到桌面的SOUBLE中;
5、用一条命令把WESTOS_classX_linuxyY中class1的文件移动到桌面的LCASS1中;
6、用一条命令把WESTOS_classX_linuxyY中class2的文件移动到桌面的LCASS2中;
7、备份/etc目录中名字带数字且以.conf结尾的文件到桌面上的confdir中;
8、删除掉刚建立或备份的所有文件
—恢复内容结束—