目录结构
文件和目录
从使用者的角度来介绍Linux文件系统,Linux根据文件形式将文件分为目录和普通文件,目录或文件的名称长度不超过255个字符,文件或目录名可由下列字符构成:
Uppercase letters (A–Z)
Lowercase letters (a–z)
Numbers (0–9)
Underscore ( _ )
Period(.)
Comma(,)
文件或目录名区分大小写,属于不同的文件或目录。
文件扩展名与不可见文件名
与Window操作系统有很大不同的是,Linux文件对文件扩展名没有强制要求,例如假设编写了一个c语言源文件,你可以将其命名为complier.c,也可以是其它如complier、complier.ccc等文件名,但不推荐这么做,因为如果能将文件扩展名与特定的文件进行关联的话,有利于理解文件内容
绝对路径与相对路径
在Linux中绝对路径与相对路径是一个很重要的概念,所有以根目录”/”作为开始的都是绝对路径,其它的均为相对路径
目录操作
创建目录 mkdir
有时不想层层目录创建,此时可以在mkdir 后面加上参数 -p(parents),将父子目录一起创建
mkdir /home/test
mkdir -p literature/promo
更改目录 cd
cd 加绝对路径或者相对路径
删除目录 rmdir
mdir是remove directory的简称,用于删除目录,它先删除目录下的所有文件,然后再删除该目录,但当目录下还有子目录时,该命令不能执行,需要使用rm命令.其中rm -r中的r指的是递归的删除目录及目录中的文件,因此它具有很强的破坏力,要谨慎使用
rmdir temp/
rm -r literature/
移动目录 mv
mv demo/ /home/test/
复制目录 cp
如果包括子目录的话,则加上-r参数,表示递归地拷贝
cp -r literature/ /home/test/
文件操作
创建文件
通过echo命令,将输出的命令重定向到文件.
touch命令,如何文件不存在,会创建文件
echo "hello linux" > hello.txt
touch hello.txt
查看文件
cat命令会将文件中所有的内容全部一次性显示出现,有时候我们希望能够分屏查看文件内容,此时可以使用less或more分页程序,less和more的使用方式相差不大,通过空格键显示下一屏信息,它们之间的差别在于less在文件末尾会显示END消息,而more直接返回shell终端.
cat test.txt
less test.txt
more test.txt
cp命令复制文件
需要注意的是cp命令在复制时,如果目标目录中已存在该文件,系统不会给出警告,而是直接覆盖,因此它可能存在销毁文件的风险,为解决这个问题可以使用-i参数让系统给出警告
cp -i test.txt literature/demo
显示文件头部或尾部
显示文件头部内容用head命令,尾部用tail命令,默认显示行数为10,head及tail的默认行数是可以修改的.
head test.txt
tail test.txt
tail -2 test.txt
tail命令在查看日志文件内容增长时可能经常会使用,例如在hadoop启动之后,会产生许多日志,但出现问题时,可以采用tail命令动态地监测日志文件内容的增长
在一个窗口运行tail命令,会显示文件内容,在窗口2运行追加内容,你会发现窗口一中的内容发生了变化
//窗口1
tail -f test.txt
//窗口2
echo "456" >>test.txt
文件链接
硬链接
inux中的硬链接另一个文件的形式出现在文件结构中,如果硬链接与被链接文件在同一个目录中,则名字必须不一样,不在同一个目录的话,可以没有此要求。硬链接以文件形式存在,但它实质上指向的是同一个文件,只不过是创建了指向目标文件的指针,即ln命令不会创建文件的副本,即它与cp命令有着本质的区别。
//创建两个硬链接
ln test1.txt /home/ewen/test1link
ln test1.txt /home/ewen/test1link2
ls -l
//可以看到有两个链接,这个后面权限控制的时候会具体解释下面的含义
//-rw-r--r--+ 2
symbolic link & soft link
linux操作系统除了支持硬链接之外,还支持符号链接(symbolic link)或软链接(soft link)。硬链接是直接指向文件的指针,它除了可以创建文件的符号链接之外,还可以创建目录的符号链接。
使用cd命令切换到目录的符号连接时,路径名中显示的是符号链接名称
符号链接可以指向一个不存在的文件
硬链接由于采用的是指针的方式,如果文件删除,它将一直指向已删除的文件,而软链接总是指向新创建的文件
ln --symbolic test softlink_test
删除链接
删除符号链接或硬链接与删除其它文件是一样的
rm softlink_test.txt
压缩和归档文件
如果文件较大的话,占用大量的磁盘空间或网络流量,常常会对文件进行压缩存储或网络传送,本节将介绍几种常用的文件压缩和归档方法
bzip2
//压缩
bzip2 -v test
//解压
bunzip2 test.bz2
//查看
bzcat test.bz2 | tail -10
gzip
//压缩
gzip test
//解压
gunzip test.gz
tar打包文件
采用tar -cvf命令进行目录或文件的打包, c表示create,v表示verbose,显示详细信息,f表示从一个文件进行读写,打包好的文件以tar作为扩展名结尾
//打包c代表creat
tar -cvf test.tar test
//解包文件,使用-x(extract)
tar -xvf test.tar
文件查找
- whereis 在标准路径下搜索与名称相关的文件,whereis将所有搜索到的文件都显示
- which 在设定的搜索路径下进行目录搜索,只显示搜索到的第一个文件
- locate命令用于在本地文件系统上进行文件搜索,可以搜索与ewen相关的所有系统文件,包括隐藏文件
whereis test
which test
locate ewen
常用文件操作
这些操作都不会改变文件内容,只会更改显示方式
//根据文件内容排序
sort test.txt
hello linux
hello linux linux
//逆序输出
sort -r test.txt
hello linux linux
hello linux
//diff进行内容比较
diff test.txt hello.txt
//向文件中追加内容
echo "hello linux linux" >> hello.txt
//内容比较
diff test.txt hello.txt