Linux常用命令(二)

【常用命令】

who:查看最近谁登陆了主机

mkdir -p fileName:递归创建目录

rmdir -p fileName:递归删除目录

rm -rf fileName:递归删除目录和文件,注意使用这个命令时一定要注意,万一删除根目录的文件就over了

which rm

mv bb aa:移动文件、文件重命名,当目标文件存在,目标文件将会成为目录,如果目标文件是文本,将内容复制到目标文件

cat -n -A fileName:显示行号和特殊字符

tac fileName:反向显示文件

【文件所属主和所属组】

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

Linux这样设置文件属性的目的是为了文件的安全。例如,test文件的所属主是user0 而test1文件的所属主是user1,那么user1是不能查看test文件的,

相应的user0也不能查看test1文件。然后有这样一个应用,我想创建一个文件同时让user0和user1来查看怎么办呢?

Linux文件属性不仅规定了所属主和所属组,还规定了所属主(user)、所属组(group)以及其他用户(others)对该文件的权限。

你可以通过ls -l 来查看这些属性。

 

【linux文件属性】

上例中,用ls –l 查看当前目录下的文件时,共显示了9列内容(用空格划分列),都代表了什么含义呢?

1列,包含的东西有该文件类型和所属主所属组以及其他用户对该文件的权限第一列共10其中第一位用来描述该文件的类型上例中,我们看到的类型有”d”, “-“ ,其实除了这两种外还有”l”, “b”, “c”,”s”

表示该文件为目录;

表示该文件为普通文件;

表示该文件为连接文件(linux file),上边提到的软连接即为该类型;

表示该文件为块设备文件,比如磁盘分区;

表示该文件为串行端口设备,例如键盘鼠标;

表示该文件为套接字文件(socket),用于进程间通信

后边的9位,每三个为一组均为rwx 三个参数的组合其中代表可读,w代表可写,x代表可执行前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限下面拿一个具体的例子来述说一下一个文件的属性为-rwxr-xr-- ,它代表的意思是,该文件为普通文件,文件拥有者可读可写可执行,文件所属组对其可读不可写可执行,其他用户对其只可读对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录例如一个目录的属性为 drwxr--r-- 其所属主为root,那么除了root外的其他用户是不能打开这个目录的

2列,表示为连接占用的节点(inode),若为目录时,通常与该目录地下还有多少目录有关系,关于连接(link)在以后章节详细介绍

3列,表示该文件的所属主

4列,表示该文件的所属组

5列,表示该文件的大小

67列和第8列为该文件的创建日期或者最近的修改日期,分别为月份日期以及时间

9列,文件名如果前面有一个则表示该文件为隐藏文件

相关命令:

  1. chgrp [组名] [文件名]    改变文件的所属组
  2. groupadd  [组名]        创建组
  3. chown [ -R ] 账户名 文件名  这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改
  4. useradd 用户名 添加用户
  5. chmod [-R] xyz 文件名 (这里的xyz,表示数字)

umask

上边也提到了默认情况下,目录权限值为766,普通文件权限值为644那么这个值是由谁规定呢?追究其原因就涉及到了umask

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

查看umask值只要输入umask然后回车 umask预设是0022,其代表什么含义?先看一下下面的规则:

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

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

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里面更改,预设情况下,rootumask022,而一般使用者则为002,因为可写的权限非常重要,因此预设会去掉写权限

【在linux下搜索一个文件】

which 用来查找可执行文件的绝对路径。

在前面章节中已经多次用到该命令,需要注意的一点是,which只能用来查找PATH环境变量中出现的路径下的可执行文件这个命令用的也是蛮多的,有时候我们不知道某个命令的绝对路径,which一下很容易就知道了

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

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

-b:只找binary 文件

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

-s:只找source来源文件

-u:没有说明档的文件

find 这个搜索工具是笔者用的最多的一个,所以请你务必要熟悉它。

语法: find [路径] [参数下面介绍几个笔者经常用的参数

-atime +n :访问或执行时间大于n天的文件

-ctime +n :写入更改inode属性(例如更改所有者权限或者连接)时间大于n天的文件

-mtime +n :写入时间大于n天的文件

看到这里,你对这三个time是不是有些晕了,那笔者就先给你介绍一下这三个time属性

文件的 Access timeatime 是在读取文件或者执行文件时更改的文件的 Modified timemtime 是在写入文件时随文件内容的更改而更改的文件的 Create timectime 是在写入文件更改所有者权限或链接设置时随 Inode 的内容更改而更改的 因此,更改文件的内容即会更改 mtime  ctime,但是文件的 ctime 可能会在 mtime 未发生任何变化时更改,例如,更改了文件的权限,但是文件内容没有变化 如何获得一个文件的atime mtime 以及ctime 

ls -l 命令可用来列出文件的 atimectime  mtime

ls -lc filename         列出文件的 ctime

ls -lu filename         列出文件的 atime

ls -l filename          列出文件的 mtime    

atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用了noatime参数那么就不会更新atime的信息而这是加了 noatime 取消了不代表真实情況反正這三個 time stamp 都放在 inode  mtime, atime 修改inode 就一定會改既然 inode 改了 ctime 也就跟著要改了

继续讲find常用的参数

-name filename 直接查找该文件名的文件,这个使用最多了

-type type :通过文件类型查找文件类型在前面部分已经简单介绍过,相信你已经大体上了解了type 包含了 f, b, c, d, l, s 等等。

【linux文件类型】

在前面的内容中简单介绍了普通文件(-),目录(d)等,在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下的快捷方式这种文件在linux中很常见,而且笔者在日常的系统运维工作中用的很多,所以你要特意留意一下这种类型的文件在后续章节笔者会介绍

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

* linux 文件后缀名

对于后缀名这个概念,相信你不陌生吧linux系统中,文件的后缀名并没有具体意义,也就是说,你加或者不加,都无所谓但是为了容易区分,linux爱好者们都习惯给文件加一个后缀名,这样当用户看到这个文件名时就会很快想到它到底是一个什么文件例如1.sh, 2.tar.gz, my.cnf, test.zip等等,如果你首次接触这些文件,你也许会感到很晕,没有关系,随着学习的深入,你就会逐渐的了解这些文件了笔者所列举的几个文件名中1.sh代表它是一个shell script 2.tar.gz 代表它是一个压缩包,my.cnf 代表它是一个配置文件,test.zip 代表它是一个压缩文件

另外需要你知道的是,早期Unix系统文件名最多允许14个字符,而新的Unix或者linux系统中,文件名最长可以到达 256 个字符!

 

 

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值