文件
读取文件
cat (Concatenate(连续)的缩写)由第一行开始显示文件内容
tac 由文件最后一行开始显示文件内容
nl 显示的时候顺便输出行号
more 一页一页的显示文件内容
less 与more类似,但比more更好的是它可以往前翻页
head 只看前几行
od 以二进制的方式读取文件内容
查看文件类型 file
如果想要知道某个文件的基本数据,例如是属于ASCII或者data文件,或者是binary可以使用file这个命令。
文件属性
新建文件的默认属性
umask 指定了新建文件的默认属性
umask -S 显示新建文件默认的属性
umask 显示新建文件默认的属性(用数字显示)数字代表需要减去的属性
文件隐藏属性 chattr, lsattr(仅支持Ext2/Ext2的文件系统)
chattr - 设置文件属性
lsattr - 读取文件属性
参数:
+ 增加一个特殊参数,其他参数不变
- 减少一个特殊参数,其他参数不变
= 赋值
A 当设置了此属性,访问此文件或目录时,他的访问时间atime将不会被修改,可避免I/O较慢的机器过度访问磁盘。这对速度较慢的计算机有帮助
S 一般文件是异步写入磁盘的,如果设置了此参数,将会同步写入磁盘
a 当设置a之后,这个文件将只能增加数据而不能删除或修改数据,只用用root才能够设置此权限
c 这个属性设置之后将会自动将文件进行压缩,在读取的时候会自动进行解压
d 当dump程序被执行的时候,设置d属性可使该文件(或目录)不会被dump备份。
i i属性可以让一个文件不能够被删除、改名、设置连接也无法写入或添加数据。只有root权限能够设置此属性
s 当文件设置了s属性后如果文件被删除,它将会被完全从这个硬盘空间中删除
u 与s属性相反,当使用u这个属性来配置文件时,如果该文件被删除了,则数据内容其实还存在磁盘中,可以使用来找回该文件
文件查找
命令查找
which
which用来查找命令的所在目录,这个命令是通过PATH来进行查找的
which [-a] command
-a 将所有找到的路径都列出来而不是找到第一个名称后就停止
文件查找
whereis
whereis 我进场用来查找命令所在路径,这个命令是通过数据库来进行查找的,如果数据库跟实际的文件不匹配的话可能导致查找到的结果有误,但是一般情况下是不影响的,经常发生增加删除的文件除外啊
whereis [-bmsu] 文件明或目录名
-b 只查找二进制文件
-m 只查找在说明文件manual路径下的文件
-s 只查找source源文件
-u 查找不在上述三个选项当中的我文件
locate
locate命令也是通过数据库(/var/lib/mlocate内的数据库)来进行查找的,一般情况下数据库时每天执行一次更新(不同的distribution不一样),当然也可以手动进行更新(root权限执行updatedb命令就可以了,但是比较慢),这个命令在搜索的时候仅去需要部分文件名称就可以了,它会将包含该字符串的文件都找出来的
locate [-ir] keyword
-i 忽略大小写的差异
-r 后面可接正则表达式的显示方式
**note: ** 如果使用这个命令的时候提示没有数据库文件,直接使用updatedb命令创建就好了(需要root执行),但是时间可能会比较久
find
这个命令的功能可就强大了,它是直接扫描硬盘来进行搜索的所以搜索的时间可能会比较久,这个命令可以根据各种各样的条件来筛选最终的结果,比如可以根据修改的时间范围来进行搜索,也可以根据文件的大小来进行搜索,一般我用的比较多的是find / -name 命令
find [PATH] [option] [action]
-name 文件名称 # 示例 find / -name filename 其中/是搜索路径
文件系统的简单操作
连接文件
Linux 下连接分为两种,一种是软连接,一种是硬连接。其中软连接类似于Windows下的快捷方式,另一种硬连接则是通过文件系统的inode连接来产生新的文件名,而不是新的文件。
软连接:软连接是创建一个新的inode与block,block里面记录这源文件或目录的inode,所以当源文件或目录删除后软连接也就无法使用了
硬连接:硬连接则是在目录下对源的inode起了一个新的名字,不创建inode与block。所以硬连接也多了一些限制,不能跨文件系统,不能连接的目录
ln
ln [-sf] 源文件 目标文件
-s 默认是硬连接,-s 就是symbolic link
-f 如果目标文件存在时,就主动将目标文件删除后再创建
磁盘与目录的容量
df
列出文件系统的整体磁盘使用量
df [-ahikHTm] [目录或文件名]
-a 列出所有的文件系统,包括系统特有的"/proc"等文件系统
-k 以KB的容量显示各文件系统
-m 以MB的容量显示个文件系统
-h 以比较易读的单位显示(会自动显示为GB,MB,KB等)
-T 文件系统的名称一起显示(例如ext3)
-i 以inode的数量来显示
du
评估文件系统的磁盘使用量(经常用于评估目录所占的空间)
du [-ahskm] 文件或目录名称
-a 列出所有文件与目录的容量,默认仅显示目录下面的文件量
-h 以比较易读的单位显示
-s 列出总量
-S 不包括子目录
-k 以KB为单位
-m 以MB为单位
扩展
"/dev/shm"目录是利用内存虚拟出来的磁盘空间。所以在这个目录下面创建文件数据时访问速度是很快的,但也因为是内存虚拟出来的,它在每个机器上面的大小是不一样的,而且每次关机这里面的数据也就不见了。
其他
终端语言
echo $LANG # 查询当前终端语言
LANG=en_US # 设置当前终端支持的语言
日历
cal
计算器
bc
note: 默认情况下该计算器仅显示整数部分,如果需要显示小数部分,请使用 scale=number number就是小数点后的位数
显示日期与时间
date
将内存数据写入硬盘
sync
brief: Linux为了提高速度,修改的数据不会立刻写入硬盘中,而是保存在内存中,如果非正常关机可能会导致数据没有被保存回硬盘中,这个时候可以在关机前使用sync命令将内存中的数据保存到硬盘中
更改当前运行级别
init
brief: 修改当前运行级别
run level 0: 关机
run level 3: 命令行模式
run level 5: 图形界面
run level 6: 重启
Notice: 以上内容部分整理自《鸟哥的Linux私房菜》