linux文件管理命令
标题linux系统结构
linux是一个倒树型结构,最大的目录名称叫“/” (根目录)
linux系统中的二级目录
/bin ##二进制可执行文件,系统常规命令
/boot ##启动目录,存放系统自动启动文件,内核,初始化程序
/dev ##系统设备管理文件
/etc ##大多数系统配置文件存放路径
/home/子目录 ##普通用户家目录
/lib ##函数库cp
/lib64/ ##64位函数库
/media ##临时挂载点
/mnt ##临时挂载点
/run ##自动临时设备挂载点
/opt ##第三方软件安装路径
/proc ##系统硬件信息和系统进程信息
/root ##超级用户家目录
/sbin ##系统管理命令,通常只有root可以执行
/srv ##系统数据目录
/var ##系统数据目录
/sys ##内核相关数据
/tmp ##临时文件产生目录
/usr/ ##用户相关信息数据
文件管理命令
文件的建立
touch filename
注意;touch不但可以建立文件也可以修改文件的时间戳。
时间戳分为:
atime:文件内容被访问的时间标识。
mtime:文件内容被修改的时间标识。
用touch命令创建文件名为file的文件 用touch一次性可以建立多个文件,上图同时创建了file1,file2,file3这三个文件。
目录的建立
mkdir directory
mkdir -p dir1/dir2/dir3 (-p表示递归建立目录,当上层目录不存在时自动建立)
创建名为dir的目录。
若递归建立目录,必须加入“- p”,负责否则会发生如下错误
正确的建立递归行目录如下图所示,命令运行后,打开目录dir1可以看到dir1中存在dir2,dir2中存在dir3表示建立递归目录成功.
文件的删除
rm file表示删除文件file(该命令需要对删除文件进行确认)
rm -f file -f=force 标示强制删除不提示
可以看到在运行rm file命令后,系统提问是否删除文件file,输入y表示同意删除。在rm -f file1该条命令中,系统不会提问,而会直接删除文件file1
目录的删除
rm -r directory -r标示递归删除,也就是删除目录本身和里面的所有内容
rm -r -f dir 删除目录不提示
rm -rf dir 在命令参数使用过程中,-a -b -c =-abc =-bac ,顺序是不需要注意的。
rm -fr dir
在删除目录时需要加入-r,r表示递归的删除目录,负责系统会将其当作文件处理,引发错误。
可以看到,下图中删除了目录dir,系统依旧会提问是否删除,我们可以加入-f去除询问环节。在删除目录dir1后可以看到dir1中的目录并没有出现,而是被一并删除,加入-f后系统也没有询问,而是直接删除了目录dir1.(rm -f -r dir1==rm -fr dir1)
编辑文件
1.gedit
gedit file ##必须有图形
用gedit编辑文件file2.vim
vim file -->按[i]进入insert模式–>书写内容–>按[esc]退出insert模式–>:wq退出保存
用vim编辑之间用gedit编辑的文件进入file文件
按i进入“insert”模式,添加“hello world”字样。
按esc推出插入模式,按:wq推出并保存编辑内容
用cat查看文件file的内容,发现文件编辑成功。(cat为查看文件内容的命令,下面会提到)
vim异常退出
当vim异常退出时会生成.file.swp文件
当再次打开此文件时会出现以下情况:
file name: ~kiosk/Desktop/hello
modified: YES
user name: kiosk host name: foundation0.ilt.example.com
process ID: 31820
If this already, delete the swap file “.hello.swp” <<<此文件中存放大是未保存的数据
Swap file “.hello.swp” already exists!
[O]pen Read-Only, (E)dit anyway, ®ecover, (D)elete it, (Q)uit, (A)bort:
只读打开 继续编辑 恢复数据 删除swap文件 退出 退出
无论按[O] (E) ® (Q) (A) 任何一个都不会删除.swp文件
那么再次打开hello文件是还会出现以上界面直到按(D),.swp文件被删除
vim恢复正常工作
异常推出生成的.swp文件(该文件为隐藏文件) 可以直接安d不保留之前修改的内容或-a找到该隐藏文件后用rm命令删除(用ls -a查看隐藏文件,两种方法原理相同,都是删除.swp文件)文件的复制
cp 源文件 目的地文件
cp -r 源文目录 目的地目录
cp 源文件1 源文件2 目的地目录 ##目的地目录必须存在
cp -r 源目录1 源目录2 目的地目录 ##目的地目录必须存在
新建文件file1,并将file中的文件复制到file1中
可以看到在未复制之前,file1为一个空文件,而将file中的文件复制后,内容则会变成与file一样。(执行复制命令时,源文件或目录并不会发生改变)先创建递归目录1/2/3,然后将目录dir与dir1复制到目录1中,可以看到目录1的子目录多出了dir与dir1.(源目录依旧存在)
复制文件到目的地目录时,目的地目录必须存在,否则会发生如下所示的错误。
我们已经创建了目录dir,然后复制文件file与file1到目录dir中,然后查看目录dir内容,可以看到目录中多出了file与file1这两个文件。(之前该目录是一个空目录,ls为查看目录的命令,后面会提到)
复制目录dir与dir1到目录1中,可以看到目录1中多出了dir与dir1这两个子目录。
文件移动
mv 源文件 目的地文件 ##重命名
mv 源目录 目的地目录
mv dir/* . ##把dir中的所以文件移动到当前目录中"."代表当前目录
注意:
相同磁盘的文件移动只是一个重明名过程
不同磁盘的文件移动是复制删除过程
可以看到之前存在两个文件file与file1,file为一个空文件,而将file1中的文件移动到file时,file1文件会被删除,其文件内容则被移动到file。(相当于把文件file1重命名为file)将桌面的目录1移动至桌面目录4
命令执行后,目录1会被删除。
将目录dir中的所有内容移动到桌面,可以看到目录dir中的两个文件在执行该命令后会被移动至桌面,因为当前路径为桌面(“.表示当前路,“*”表示所有的内容)。(相当于将dir中的文件复制到桌面,然后删除dir中的文件)
文件的寻址
1.文件的地址分为:
相对路径:
相对与当前系统所在目录的一个文件名称的简写,
此名称省略了系统当前所在目录的名称
此名称不以“/”开头
此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值
绝对路径:
绝对路径是文件在系统的真实位置
此命令是以“/”开头的
此命令在命执行时系统不会考虑现在所在位置的信息
注意:
当操作对象是 对象1 空格 对象2 时,
这两个对象之间没有任何关系
豆角 茄子 ##这是2个对象
豆角茄子 ##这是一个对象
亲 ##动作是被系统执行的,不能作为名称出现
“亲” ##用引号的作用是把动作变成名称字符,这种方法叫引用
自动补齐
系统中的键可以实现命令的自动补齐
可以补齐系统中存在的命令,文件名称,和部分命令的参数
当一次<TAB>补齐不了时代表以此关键字开头的内容不唯一
可以用<TAB>X2来列出所有以此关键字开头的内容
关于路径的命令
1.显示路径
pwd
当前路径为/root/Desktop
2.切换路径
cd 目录名称 ##进入到指定目录中
进入到目录/mnt中,可以看到当前位置发生了改变,由Desktop变为了mnt
cd - ##当前目录和当前目录值前所在目录之间的切换
可以看到,先由目录bin进入到Desktop后,在进入bin目录,然后运行“cd -“,路径会一直在这两个目录跳转。
cd ~ ##进入当前用户家目录
刚开始我们所在的路径为/bin,在使用cd ~命令后,我们切换路径到/root,因为超级用户的家目录为/root
cd ~user ##进入user家目录
刚开始的路径为/root,在执行”cd ~student“后,路径跳转到/home/student,因为student用户的家目录为/home/student
cd … ##进入当前目录的上级目录
用户之前的目录为/home/Desktop,运行“cd …"命令后,路径切换到该目录的上一层目录”/home“中。
3.查看
ls
查看目录下的内容
ls -l file ##文件属性
查看文件
ls dir ##目录中包含的内容
查看目录4中的子目录
ls -d dir ##目录本身
查看目录本身的信息
ls -a dir ##所有文件包含隐藏的
显示当前目录的所有文件,包含隐藏文件。
ls -S dir ##查看并且按照大小排序
ls -s file|dir##查看文件大小
文件查看
cat file ##查看文件的全部内容
cat -b file ##-b显示行号不包含空行
cat -n file ##-n显示行号包含空行
cat file ##查看文件的全部内容
cat -b file ##-b显示行号不包含空行
cat -n file ##-n显示行号包含空行
less file ##分页浏览
用法:
上|下 ##逐行移动
pageup|pagedown ##逐页移动
/关键字 ##高亮显示关键字,n向下匹配,N向上匹配
v ##进入vim模式 在vim模式中按:wq 退回到less模式
q ##退出
分页查看文件file
分页浏览下”/关键字“匹配关键字
n从下向上匹配关键字he
N从上向下匹配关键字he
head file ##查看文件前10行
head -n 3 file ##查看文件前3行(用head±n+x文件查看文件的前x行)
tail file ##查看文件后10行
tail -n 3 file ##查看文件后3行用(tail±n+x+文件,来查看文件的后x行)
文件大小统计
wc
wc -l ##行数
wc -w ##单词数
wc -m ##字符数
wc -c ##字节数
文件file共32行,单词数为54,字节数为387,字符数为387
系统中历史的调用
history ##查看历史
history -c ##清空当前环境中的历史
!数字 ##调用此行历史比如"!5"时执行历史中地5条命令
!test ##执行以test关键字开头的最近一条历史
ctrl +r +关键字 ##调用历史中最近一条含有此关键字的历史
示例:
(reverse-i-search)':-s (reverse-i-search)
-s’: ls -s 1 ##会调用最近一条命令中含有test字符的历史
上键|下键 ##逐条调用历史
在系统中获得帮助
1.查看命令大用途
whatis 命令 ##查看命令的用途
2.查看命令的用法
命令 --help ##查看命令的基本用法,适用于多数命令
[] ##标示选项可以加也可以不加
… ##标示选项加入的个数任意
<> ##标示选项是必须要加入的
Userage: ##标示命令用法
Opetions: ##对参数的作用做说明
3.man查看命令或文件的说说明手册
man 命令
man 5 文件
man的级别
1 #命令
2 #系统调用接口
3 #函数库调用接口
4 #特殊设备文件
5 #系统配置文件
6 #游戏规则说明
7 #包说明
8 #系统管理命令
9 #内核调用规则
man的基本用法
上|下 ##逐行查看
pgup|pgdn ##分页查看
/关键字 ##高亮显示关键字,n向下匹配,N上向匹配
:q ##退出
man -k 字符串 ##下看当前字符串在系统中拥有的man的级别
/usr/share/doc ##系统中所有安装过的软件的帮助文档
系统中的通用配置符号
-
##匹配0到任意字符
? ##匹配单个字符
[[:alpha:]] ##单个字母
[[:lower:]] ##单个小写字母
[[:upper:]] ##单个大写字母
[[:digit:]] ##单个数字
[[:punct:]] ##单个符号
[[:space:]] ##单个空格
[[:alnum:]] ##单个数字或字母
[[:punct:][:upper:]] ##但个符号或但个大写字母
改图为建立的fiXle类型的文件,可以看到(X表示上述alpha等符号)
删除大写字母的文件
删除含有空格的文件
删除含有数字的文件
删除含有字母的文件
删除小写字母的文件
删除含有特殊字符的文件
删除含有数字或字母的文件
删除含有数字或字母或特殊字符的文件
[1-9] #1位,这位是1-9的任意数字
[!3-5] #1位,不是3-5的数字
[^3-5] #1位,不是3-5的数字
[a-z] #1位,a-z的任意字母
{1…3} #3个,1 2 3
{1,4,7} #3个1,4,7这三个数
~ #当前用户家目录
~username #指定用户的家目录
~+ #当前目录.
~- #进入当前目录之前所在目录(olddir)cd - 中的"-"