初识linux
一切皆文件
在学习linux的第一天,老师就告诉我们,在linux中有一句话:Everything is file。即是说,我们会对linux中的一切作为文件来处理。正因为如此,下面的这些文件管理的基本命令就格外重要了。
常用文件管理基本命令
文件建立
-
文件建立
-
文件建立: touch
touch filename(文件名)
touch:通常被用来新建文件,但是也可以被用来修改时间戳(时间标识)
使用stat命令可以查看文件的时间戳:stat filename
(atime mtime ctime)
(assess time 访问时间 modify time 文件内容修改时间 change time 文件内容或属性修改时间)
(modify time更新后,change time也一定会更新;但是change time更新,modify time不一定会更新)
下图为例:
使用touch filename 命令新建文件,并查看文件,使用stat命令查看文件时间戳
已有文件file后,使用touch file命令,更新文件的时间戳(三个时间戳同时更新)
使用vim命令编辑文件内容,保存并退出后,再次查看文件的时间戳,可以发现三个时间戳也是同时被修改了
而当我们鼠标右键单击文件file,选择properties选项后,随意更改一项文件属性后,再次查看文件时间戳,我们可以发现:与上一操作相比,本此次操作只是改变了文件的change time
这次操作,我只是使用vim命令查看了file的内容,使用:q不加以保存退出vim命令。再次查看文件的时间戳,可以发现:这次与上一次相比,只有access time更新了
目录建立 -
目录建立:mkdir
mkdir directory(目录名)
常用参数:
-p(pass)直接创建多级目录
(这是类似于盖楼房一样的,高层建筑的建立,必须是再底层建筑的基础之上的;本来是要先建立外层目录后,才可以新建内层目录。而通过使用该参数-p,我们可以直接考虑内层的建立,由系统直接先帮我们建立了所需的基础外层目录)
下图为例:
删除文件
-
删除文件
-
删除文件:rm
常用参数:
-r(-resource)递归删除,用于删除目录以及其内的文件
-f(-force)强制删除,不进行提示
下图为例:
将上面所建立的目录dir以及多层目录dir1都删除
由下图可见,即便dir是一个内部没有任何文件的空目录,其删除也必须使用-r参数才可以,而不加参数-f,则系统会进行询问,是否确认要删除该文件? 输入y(yes)表示确认
(尽管删除文件file不需要-r参数,但是使用-r参数来删除并不会出错)
文件编辑
-
文件编辑
-
文件编辑:gedit ,vim
其中,gedit的编辑依赖于图形,而在公司中实际很少涉及图形,因此主要使用vim。
vim filename
进入浏览模式,按‘i‘进入插入模式(编辑文件),按esc退出该模式
然后输入:wq(write quit),保存文件并退出
注意:vim编辑文件后如果有未保存的文件,异常退出时会生成 .file.swap文件
下图为例:
vim的异常退出:直接点击shell窗口右上角的叉号,关闭父进程shell,强制关闭子进程vim命令的执行,导致vim有更改内容却未经保存退出(注意的是,如果不存在新修改的内容的话,并不会在重新在shell中vim命令编辑该文件时产生异常)
下图中异常的解决办法:可以看到,系统给出了多个选项,按照自身要求处理该未保存内容的文件即可;需要注意的是,直到在某一次输入大写字母D后,删除该异常产生的文件,才不会再出现此异常提示,否则只要该文件存在,仍会有此提示
文件复制
-
文件复制
-
文件复制:cp
cp filename directory
常用参数:
-r(resource)递归复制
下图为例:
分别使用cp命令将file与dir复制到当前路径中;同时可见,该空目录也必须使用参数-r 才能操作
文件移动
-
文件移动
-
文件移动:mv
mv filename directory
注意:即便是移动内部含有文件的目录,也不需要参数
下图为例:
显示当前所在路径
-
显示当前所在路径
-
显示当前所在路径:pwd
下图为例:
查看文件内容
-
查看文件内容
-
查看文件内容:cat,less,head,tail
cat file 查看文件的全部内容
常用参数:
-b 显示行号不包含空行
-n 显示行号包含空行
下图为例:
less file 分页浏览
进入该模式后:
上|下 逐行移动
pageup|pagedown 逐页移动
/关键字 高亮显示关键字,n向下匹配,N向上匹配
v 进入vim模式 在vim模式中按:wq 保存并退回到less模式
q 退出less模式
下图为例:
head file 查看文件前n行
不加参数时:默认查看文件前10行
常用参数:
-n 查看文件前n行
下图为例:
第一幅图,可见head不加参数,默认查看文件前10行
第二三幅图,二者功能相同
tail file 查看文件后n行
不加参数时:默认查看文件后10行
常用参数:
-n 查看文件后n行
(该命令与head功能相反,但用法一致,故而不再插图)
文件大小统计
-
文件大小统计
-
文件大小统计:wc
wc filename 对文件内容的信息进行统计,默认查看文件行数,单词数,字符数
常用参数:
-l 行数
-w 单词数
-m 字符数
-c 字节数
下图为例:
文件内容如下图所示,调用wc命令显示信息4行,5单词,28字符,28字节
(字符与字节的统计是包含空格,回车字符的,且vim编辑的文件结尾会自动加一个回车)
系统中历史命令的调用
系统中历史命令的调用:
:history 查看历史命令
history -c 清除历史命令
!n(以这个数字n为行号的历史命令)
!c(以这个字母c开头的最近的一条历史记录)
ctrl+r 输入关键字(调用中间含有该关键字的最近一条历史命令)
下图为例:
显示路径下的文件
-
显示路径下文件
-
ls (不加参数,默认显示当前路径下文件的名称,按首字母从小到大的顺序排列)
常用参数:
-l 显示文件属性
-d 显示目录本身的信息
-a(-all)显示路径下全部文件(包括隐藏文件)(以 . 开头的文件为隐藏文件)
-s(-size)(显示出的数字以kb为单位)显示文件大小
-S按照文件大小从大到小显示文件
-R递归显示(用于显示目录内的文件)
-i(-id)查看文件的编号,编号相同的文件是同一个文件
下图为例:
从系统中获得帮助
-
从系统中获得帮助
-
从系统中获得帮助:whatis,help,man
whatis 用于查看命令的用途
help 用于查看命令的具体使用方法,但不是所有的命令都有help
usage: 【】括号内选项可加可不加 ,…表示该参数可以有任意多个 ,<>内的参数是必须有的,可以直接连着写来输入多个参数,如:%T%H,或%T_%H,使用下划线_隔开。
【option】(选项)当有功能上的改变时查看此区域,寻找实现想要实现功能的参数
【format】(格式)显示格式不同,根据想要显示的格式,选择不同的参数
man 当help显示较少时,使用该命令查看详细用途(9个级别,默认为1)
man -k command(命令) (查看该操作对象所能使用的man的级别)
/关键字 查找关键字
q直接退出
下图为例:
文件寻址
相对路径:
相对于当前系统所在目录的一个文件名称的简写,
此名称省略了系统当前所在目录的名称(即相对于当前目录的位置,由于当前目录位置是不定的,故为相对路径)
此名称不以“/”开头
此名称在命令执行时会自动在操作对象前加入“PWD”所显示的值(即当前目录位置)
绝对路径:
绝对路径是文件在系统中的真实位置(即相对于根目录的位置,由于根目录位置是绝对的,故为绝对路径)
此命令是以“/”开头的
此命令在命执行时系统不会考虑现在所在位置的信息
系统中的通配符
系统中的通用配置符(元字符)
*匹配任意个数的任意字符
? 匹配一个任意字符
[[:alpha:]] 匹配一个字母
[[:lower:]] 匹配一个小写字母
[[:upper:]] 匹配一个大写字母
[[:digit:]] 匹配一个数字
[[:punct:]] 匹配一个符号
[[:space:]] 匹配一个空格
[[:alnum:]] 匹配一个数字或字母
[[:punct:][:upper:]] 匹配一个字符,该字符为符号或大写字母
[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(用户名)代表指定用户的家目录
~+代表当前目录.
~-代表进入当前目录之前所在目录
注意: 使用通配符可以更好的提高程序的可移植性,兼容性
下图为例:
该命令将/etc/目录下含有两位数字,或是先有一小写字母且后有一数字的文件复制到桌面来
根目录下的二级子目录
bin(binary) 系统中二进制的通用可执行命令文件(没有该文件的话,系统将无法执行相应的命令)
boot 启动系统的文件(删除的话,系统运行不会出错,但是重启会失败)
dev 系统设备管理文件
etc 大多数系统配置文件存放路径
home 其中的子目录是普通用户的家目录
lib(library):系统的函数库目录
lib64 64位函数库
media 临时挂载点
mnt 临时挂载点(手动挂载)
run 临时设备挂载点(自动挂载)
opt 第三方软件安装路径
proc (process) 系统硬件信息和系统进程信息
root 超级用户的家目录
sbin(system bin) 系统管理命令,通常只有root可以执行
srv 系统数据目录
var 系统数据目录
sys 内核相关数据
tmp 临时文件产生目录
usr 用户相关信息数据