Linux Day04

文件管理命令:

cd:这个命令是用来变更用户所在目录的,后面如果什么都不跟,就会直接到当前用户的根目录下。

./ 表示当前目录,../ 表示当前目录的上一级目录

pwd:打印出当前所在目录。

mkdir:创建目录。‘mkdir’ 其实就是make directory的缩写。

-m :指定创建目录的权限。

-p : 可以创建多级目录。如果要创建目录已经存在,会覆盖。

rmdir:删除空目录。用法与mkdir相同,用的少,一般用rm代替。

rm:删除文件或目录。最常用。

-m : 删除目录是用的选项,等同于rmdir。但是可以删除非空目录。同时会提示是否确认删除。

-f : 强制删除。不会提示确认删除。就算文件要删除的文件不存在也不会报错。要删除一个目录时,即使加上 ‘-f’ 选项也会报错,所以删除目录一定要加 ‘-r’ 选项。

cp :copy的简写,即拷贝。格式为 cp [选项] [ 来源文件 ] [目的文件] 。

-r :如果要拷贝目录是必须加 -r。

-i : 安全选项。和rm类似,如果遇到一个存在的文件,会问是否覆盖。在Redhat 和 centos系统中,cp默认覆盖。

mv:‘mv’ 是move的简写。格式为 mv [ 选项 ] [源文件] [目标文件] 。

-i :安全选项。会有提示。

该命令有几种情况:

1) 目标文件是目录,而且目标文件不存在;

2) 目标文件是目录,而且目标文件存在;

3) 目标文件不是目录不存在;

4) 目标文件不是目录存在;

目标文件是目录,存在和不存在,移动的结果是不一样的,如果存在,则会把源文件移动到目标文件目录中。不存在的话移动完后,目标文件是一个文件。相当于重命名,常用。

cat: 查看文件。

-n : 查看文件时,把行号也显示到屏幕上。

-A : 显示所有东西出来,包括特殊字符.

tac :用来把文件的内容显示在屏幕上,只不过是先显示最后一行,然后是倒数第二行,最后显示的是第一行。

more:查看文件内容,当屏幕占满后按空格才能看下一屏幕。按q可提前退出。

less:查看文件内容,可以上下翻阅。按 ‘j’ 键可以向下移动,按 ‘k’ 键向上移动。

在用more和less查看内容是可以通过:按一下 ‘/’ 键,然后输入一个word回车,这样就可以查找这个word了。如果是多个该word可以按 ‘n’ 键显示下一个。另外也可以不按 ‘/’ 而是按 ‘?’ 后边同样跟word来搜索这个word,唯一不同的是, ‘/’ 是在当前行向下搜索,而 ‘?’ 是在当前行向上搜索。

head:显示文件的前十行。如果加 -n 选项则显示文件前n行。

tail:显示文件最后十行。如果加-n 选项则显示文件最后n行。

文件的所属主以及所属组:

一个linux目录或者文件,都会有一个所属主和所属组。所属主,即文件的拥有者,而所属组,即该文件所属主所在的一个组。

可通过ls -l查看文件属性。

[root@localhost hadoop]# ls -l

总用量 4

-rw-r--r--. 1 root root 13 6月  16 23:08 file.txt

[root@localhost hadoop]#

1

2

3

4

Linux文件属性:

[root@localhost etc]# ls -l yum

总用量 4

drwxr-xr-x. 2 root root  6 4月  13 20:58 fssnap.d

drwxr-xr-x. 2 root root  83 6月  5 21:45 pluginconf.d

drwxr-xr-x. 2 root root  26 4月  13 20:58 protected.d

drwxr-xr-x. 2 root root  37 4月  13 20:58 vars

-rw-r--r--. 1 root root 444 4月  13 20:58 version-groups.conf

1

2

3

4

5

6

7

在查看文件属性时,有9列内容:具体含义如下:

第一列:代表这个文件是“目录、文件或链接文件等”。

若是【d】则代表该条记录是目录;

若是【-】则代表是文件;

若是【|】则表示为连接文件(linkfile);

若是【b】则表示设备文件里面的可供存储的接口设备;

若是【c】则表示设备文件里面的串口端口设备,例如键盘、鼠标。

接下来以3个为一组:“rwx”

其中【r】代表可读(read);

其中【w】代表可写(write);

其中【x】代表可执行(execute);

这3个权限的位置不会改变,如果没有相应的权限,就会出现减号【-】

前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。

第二列表示有多少文件名连接到此节点(i-node)

第三列表表示这个文件(或目录)的“所有者账号”

第四列表表示这个文件的所属用户组

第五列为这个文件的大小,默认单位为B

第六列为这个文件的创建文件日期或者是最近的修改日期

第七列为文件名.

图:示例

更改文件权限:

更改所属组:chgrp

语法:chgrp [组名] [文件名]

‘chgrp’命令也可以更改目录的所属组,但是只能更改目录本身,而目录下面的目录或者文件没有更改,要想级联更改子目录以及子文件,需要加个参数:-R。

该命令使用不多,可用可用chown代替。

更改文件的所属主:chown

语法: chown [ -R ] 账户名 文件名 chown [-R] 账户名:组名 文件名

这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。

改变用户读文件的读写执行权限:chmod

chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字,‘-R’ 选项作用同chown,级联更改)

在linux中为了方便更改这些权限,linux使用数字去代替rwx, 具体规则为 ‘r’ 等于4, ‘w’ 等于2, ‘x’ 等于1, ‘-‘ 等于0。

举个例子: ‘-rwxrwx—’ 用数字表示就是 ‘770’, 具体是这样来的: ‘rwx’ = 4+2+1=7; ‘rwx’ = 4+2+1=7; ‘- -

-‘ = 0+0+0=0.

在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.

’chmod’ 还支持使用rwx的方式来设置权限。九个属性分别是(1)user (2)group (3)others,

可以使用u, g, o 来代表它们三个的属性,此外, a 则代表 all 亦即全部。例:chmod u-x test/test2

另外还可以针对u, g, o, a增加或者减少某个权限(读,写,执行),例:chmod u-x test/test2

umask:

umask语法: umask xxx (这里的xxx代表三个数字)

umask预设是0022,其代表什么含义?先看一下下面的规则:

1)若用户建立为普通文件,则预设 ‘没有可执行权限’, 只有’rw’两个权限。最大为666 (‘-rw-rw-rw-‘).

2)若用户建立为目录,则预设所有权限均开放,即777 (‘drwxrwxrwx’).

umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。所以目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. umask的值是可以自定义的,比如设定umask 为 002,您再创建目录或者文件时,默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.

umask 可以在 /etc/bashrc 里面更改,预设情况下,root的umask为022,而一般使用者则为002,因为可写的权限非常重要,因此预设会去掉写权限。

修改文件特殊属性:chattr

语法: chattr [+-=][ASaci [文件或者目录名]

‘+-=’ : 分别为增加、减少、设定

‘A’ : 增加该属性后,文件或目录的atime将不可被修改;

‘S’ : 增加该属性后,会将数据同步写入磁盘中;

‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性;

‘c’ : 自动压缩该文件,读取时会自动解压;

‘i’ : 增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据;

读取文件或目录的特殊权限:lsattr

语法为 lsattr [-aR] [文件/目录名]

‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出;

‘-R’ : 连同子目录的数据一同列出。

在Linux下搜索一个文件:

(1)通过which可以查找文件的绝对路径。

需要注意的一点是,which只能用来查找PATH环境变量中出现的路径下的可执行文件。

(2)whereis: 通过预先生成的一个文件列表库去查找跟给出的文件名相关的文件。

语法: whereis [-bmsu] [文件名称]

‘-b’ : 只找binary 文件

‘-m’ : 只找在说明文件manual路径下的文件

‘-s’ : 只找source来源文件

‘-u’ : 没有说明档的文件

这个命令一般很少使用。

(3)‘locate’ 类似于’whereis’, 也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里。

用的也不是太多。

(4)find:使用最多的搜索命令。

语法 : find [路径] [参数]

常用参数:

‘-atime +n/-n’ : 访问或执行时间大于/小于n天的文件.

‘-ctime +n/-n’ : 写入、更改inode属性(例如更改所有者、权限或者链接)时间大于/小于n天的文件。

‘-mtime +n/-n’ : 写入时间大于/小于n天的文件。

注:文件的三个time属性。

文件的 Access time也就是 ‘atime’ 是在读取文件或者执行文件时更改的。文件的 Modified time也就是 ‘mtime’ 是在写入文件时随文件内容的更改而更改的。文件的 Create time也就是 ‘ctime’ 是在写入文件、更改所有者、权限或链接设置时随inode的内容更改而更改的。 因此,更改文件的内容即会更改mtime和ctime,但是文件的ctime可能会在 mtime 未发生任何变化时更改,例如,更改了文件的权限,但是文件内容没有变化。

‘stat’ 命令可用来列出文件的 atime、ctime 和 mtime。

atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息。总之, 这三个 time stamp 都放在 inode 中。若 mtime, atime 修改 inode 就一定会改, 既然 inode 改了, 那 ctime 也就跟着要改了。

‘-name filename’ 直接查找该文件名的文件,这个选项使用很多。

‘-type filetype’ 通过文件类型查找。filetype 包含了 f, b, c, d, l, s 等。

-:普通文件

d :目录

c:字符设备

b:块设备

s:套接口文件

l:符号连接

Linux文件类型:

1)普通文件(regular file):就是一般类型的文件,当用 ls -l 查看某个目录时,第一个属性为 ‘-‘ 的文件就是正规文件,或者叫普通文件。正规文件又可分成纯文字文件(ascii)和二进制文件(binary)。纯文本文件是可以通过cat, more, less等工具直接查看内容的,而二进制文件并不能。例如我们用的命令/bin/ls 这就是一个二进制文件。

2)目录(directory):这个很容易理解,就是目录,跟windows下的文件夹一个意思,只不过在linux中我们不叫文件夹,而是叫做目录。ls -l 查看第一个属性为 ‘d’.

3)链接文件(link):ls -l 查看第一个属性为 ‘l’, 类似windows下的快捷方式。

4)设备(device):与系统周边相关的一些档案,通常都集中在 /dev 这个目录之下! 通常又分为两种:块(block)设备 :就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘。例如您的一号硬盘的代码是 /dev/sda1, 第一个属性为 ‘b’;另一种是字符(character)设备 :是一些串行端口的接口设备,例如键盘、鼠标等等,第一个属性为 ‘c’.

Linux文件后缀名

在linux系统中,文件的后缀名并没有具体意义,也就是说,加或者不加,都无所谓。但是为了容易区分,我们习惯给文件加一个后缀名,这样当用户看到这个文件名时就会很快想到它到底是一个什么文件。例如1.sh, 2.tar.gz, my.cnf, test.zip等等。

早期Unix系统文件名最多允许14个字符,而新的Unix或者linux系统中,文件名最长可以到达 256 个字符。

Linux的链接文件:

链接文件分为两种,硬链接(hard link)和软链接(symbolic link)。两种链接的本质区别关键点在于inode。

Hard Links : 当系统要读取一个文件时,就会先去读inode table,然后再去根据inode中的信息到块区域去将数据取出来。而hard link 是直接再建立一个inode链接到文件放置的块区域。也就是说,进行hard link的时候实际上该文件内容没有任何变化,只是增加了一个指到这个文件的inode, hard link 有两个限制:(1)不能跨文件系统,因为不同的文件系统有不同的inode table; (2) 不能链接目录。

硬链接只是复制了一份inode信息。空间大小不变

Symbolic Links : 跟hard link不同,这个是建立一个独立的文件,而这个文件的作用是当读取这个链接文件时,它会把读取的行为转发到该文件所link的文件上。软连接就是windows中的快捷方式。

建立软连接即快捷方式的命令:ln

语法 : ln [-s] [来源文件] [目的文件]

ln 常用的选项就一个 ‘-s’, 如果不加就是建立硬链接,加上就建立软链接。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容