df命令
作用:df命令用来计算磁盘所使用的文件系统及每个文件系统所使用的磁盘空间的情况,并将结果输出到标准输出设备显示出来。
-a:显示所有信息
-h:以更可读的方式显示,比如以K/M/G方式
可以指定目录显示
# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 41286828 11940896 27248648 31% / devtmpfs 12104288 168 12104120 1% /dev tmpfs 24208576 7260400 16948176 30% /dev/shm /dev/sda7 20641788 176196 19416952 1% /dump /dev/sda5 94952412 17405672 72723228 20% /home /dev/sda6 61931268 36530176 22255168 63% /opt shmfs 24208576 7260400 16948176 30% /dev/shm
df命令重在文件系统与磁盘之间的挂载关系
du命令
作用:显示磁盘空间使用信息,当然也可以使用某个目录
-a:显示所有目录包括子目录及文件的大小
-h:可读方式
-s:只显示当前目录,不显示子目录
示例1:du -sh /home/ptlportal/ /home/ptlsso/ 1.6G /home/ptlportal/ 250M /home/ptlsso/
hadparm命令
显示硬盘相关信息命令
hdparm /dev/sda /dev/sda: HDIO_DRIVE_CMD(identify) failed: Invalid exchange readonly = 0 (off) readahead = 1024 (on) geometry = 36351/255/63, sectors = 583983104, start = 0
上面的信息显示:/dev/sda的几何参数为2080(柱面)/255(磁头)/63(扇区),总的扇区为583983104
建立链接文件————ln
链接文件有两种,软链接和硬链接,软连接相当于windows下面的快捷方式,硬链接和源文件是一样的。无论是软链接还是硬链接都会同步源文件的每一处变化。注意:这是硬链接与复制不同的地方。复制这种源文件和复制的副本之间的变化没有任何关联。其中一个变动对另一个都没有影响。硬链接对源文件进行了完全相同的备份,并且源文件的任何变化都会同步到硬链接的备份上。软连接只是一个链接文件链接到源文件上。
ln功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s(建立软链接),具体用法是:ln –s 源文件 目标文件。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。例如:ln –s /bin/less /usr/local/bin/less -s 是代号(symbolic)的意思,表示软链接,如果不加表示硬链接。
连接文件或目录。这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接有软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。
注意:无论是软链接还是硬链接,链接名称可以随便起,没有限制
示例1:建立文件的软链接: ln -s hello.txt slnls 示例2:建立文件的硬链接: ln hello.txt hlnls ll total 8 -rw-r--r-- 2 root root 6 Jul 10 14:48 hello.txt -rw-r--r-- 2 root root 6 Jul 10 14:48 hlnls lrwxrwxrwx 1 root root 9 Jul 10 14:49 slnls -> hello.txt 示例3:建立文件夹的软链接: ln -s /home/demo slnls 示例4:建立文件夹的硬链接: ln -d /home/demo hlnls 注意:创建硬链接需要使用超级权限,但本人的操作系统没有这个权限
mv命令
mv 命令有命名和移动文件(夹)功能
命名:
mv 旧文件(夹) 新文件(夹)
移动:
mv 文件 文件夹
rm命令
删除文件或文件夹
-i:交互式删除,由用户确定是不是要删除
-f:强制删除
-r:是否删除相应目录下的子目录
cat命令
用于查看内容
> 将cat的内容添加到指定文件,注意:会覆盖指定文件的内容
>>将cat的内容添加到指定文件末尾
cat 文件1 > 文件2
其他查看文件的命令有more,less及head,tail
more和less都是翻页查看,而head是只查看文件的头部内容。head -100 abc.txt表示查看abc.txt的前100行
tail是查看文件的末尾内容,tail -100 abc.txt表示查看abc.txt的末尾100行内容
cut命令
查看指定的列内容
cut -b1-3 hello.txt
hel
cut -c1-3 hello.txt
hel
cut命令默认字段的分隔符号是空格键或者Tab键,如果是别的分隔符,需要用-d 命令来指示
-f:field 指定字段
od命令
以8进制方式查看文件内容
查看或修改文件的属性
文件的属性包括文件的基本信息和文件的访问权限。前者主要指文件类型、文件的长度、文件的大小、文件的属主和属组、文件的最后修改时间、访问时间。查看文件属性主要用file、ll、stat、lsattr,修改文件的属性主要由:chmod、chattr、chown、chgrp、touch、umask
1.查看文件的类型——file
在Linux系统中,不存在扩展名,因此判断文件的类型时不能像MS_WINDOW那样通过扩展名查看文件的类型。显然,利用ls -l功能可以查看文件的类型。但是Linux的file工具几乎可以查看任何文件的类型,并且详细显示该文件的类型。
示例1:查看音乐文件和图片文件类型
利用ll命令只能知道其为普通文件,若要查看其更详细的类型,可以利用file命令查看文件的具体类型
file migong
migong: Audio file with ID3 version 2.4, MP3 encoding
示例2:查看压缩文件的类型
我们经常在网上下载一些安装文件,有些文件以一定的扩展名(比如.gz、bz2)发布,这样可以很容易选择解压缩工具,但是有些文件没有给定扩展名,因此,若要正确选择解压缩工具,必须利用file对其进行查看。
file -z hadoop.zip
hadoop.zip: empty (Zip archive data, at least v1.0 to extract)
-z表示探测压缩过的文件
示例3:查看符号文件的类型和符号链接文件锁指向实际文件的类型
ln -s hello.txt ss
# ll
total 12
-rw-r--r-- 3 root root 6 Jul 10 14:48 hello.txt
-rw-r--r-- 3 root root 6 Jul 10 14:48 hlnls
-rw-r--r-- 3 root root 6 Jul 10 14:48 hlnls1
lrwxrwxrwx 1 root root 9 Jul 30 11:38 ss -> hello.txt
-rw-r--r-- 1 root root 0 Jul 11 10:46 test
-rw-r--r-- 1 root root 0 Jul 11 10:46 test.txt
# file ss
ss: symbolic link to `hello.txt'
# file -L ss
ss: ASCII text
文件类型对照表
- 普通文件
d 目录文件
b 块设备文件
c 字符设备文件
l 符号链
p 管道特殊文件
查看文件的属性————stat
ll只是简单地查看文件的属性,本节介绍的stat能够更加详细地显示文件的属性信息。
示例:查看demo的详细信息
stat demo
File: `demo'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 805h/2053d Inode: 4547234 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-30 11:38:30.000000000 +0800
Modify: 2013-07-30 11:38:29.000000000 +0800
Change: 2013-07-30 11:38:29.000000000 +0800
改变文件的属主或属组————chown
文件的属性包括文件属主和属组,文件的创建者默认为文件的属主(所有者),文件的数组默认为文件创建者所处的工作组,属主用户对自己创建文件具有最大的权限,其操作权限可以和超级用户相媲美;一个用户可以位于多个组内,因此一个文件也可以位于多个组内,同一组内的用户对文件具有共享的权限。
示例1:
chown -R 用户名:用户组 文件或文件夹
改变文件的属组————chgrp
示例:chgrp -R 属组名 文件或文件夹名
改变文件的访问权限————chmod
用法:chmod mode
mode是这样定义的
ugoa +-= rwx
u:表示文件属主
g:表示和文件的所有者属于同一个组的用户
o:表示组外的其他用户
a:表示所有的用户
+:表示增加权限
-:表示取消权限
=:表示唯一设定权限
r:表示可读
w:表示可写
x:表示可执行
X:表示该文件是个子目录或者该文件已经被设定过为可执行
改变文件的时间戳————touch
文件的时间属性包括文件的最后访问时间、最后修改时间以及最后在磁盘上修改的时间,命令stat显示结果显示了文件对应的3个时间属性;文件的时间属性记录了用户对文件所有操作的时间,而touch命令可以对这些时间值进行改变,但是前提是用户对该文件具有写权限,另外touch命令只能改变文件的最后访问时间和最后修改时间。
示例1:以当前时间设置账户文件的访问时间和修改时间
未设置前:
stat demo/
File: `demo/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 805h/2053d Inode: 4547234 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-30 13:45:47.000000000 +0800
Modify: 2013-07-30 11:38:29.000000000 +0800
Change: 2013-07-30 13:45:47.000000000 +0800
设置一下:
# touch demo/
设置后:
# stat demo/
File: `demo/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 805h/2053d Inode: 4547234 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-30 14:03:35.000000000 +0800
Modify: 2013-07-30 14:03:35.000000000 +0800
Change: 2013-07-30 14:03:35.000000000 +0800
示例2:按指定时间设置最后访问时间
touch -ad '2013-07-30 14:03:35' demo/
# stat demo/
File: `demo/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 805h/2053d Inode: 4547234 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-30 14:03:35.000000000 +0800
Modify: 2013-07-30 14:03:35.000000000 +0800
Change: 2013-07-30 14:06:31.000000000 +0800
示例3:按指定时间设置最后修改时间
#touch -md '2013-06-30 14:03:35' demo/
# stat demo/
File: `demo/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 805h/2053d Inode: 4547234 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2013-07-30 14:03:35.000000000 +0800
Modify: 2013-06-30 14:03:35.000000000 +0800
Change: 2013-07-30 14:06:54.000000000 +0800
设置文件的默认权限掩码————umask
文件权限是Linux系统中的一种安全机制,通过设置不同的权限可以达到限制用户操作的目的,有效地保证了文件的完整性。默认情况下,创建一个文件的权限位rw-r--r--,而创建一个目录的权限位rwxr-xr-x,若默认权限不符合用户的需求,可以利用chmod命令逐个对文件的权限进行设置,显然这样是比较低效的。为了解决此问题,Linux系统提供了一个方便的工具————umask
示例1:通过设置文件的权限掩码,使生产的文件默认权限位rw-rw----,即660
由于要使生成的文件默认权限改变,其权限掩码值为666-660=006,因此在shell提示符下输入umask 006即可。
文件归档————tar
# tar -cvf demo.tar demo/
demo/
demo/hlnls1
demo/test.txt
demo/ss
demo/hello.txt
demo/test
demo/hlnls
demo/hell.txt
# ll
total 16
drwxr-xr-x 2 root root 4096 Jul 30 14:11 demo
-rw-r--r-- 1 root root 10240 Jul 30 14:34 demo.tar