1, . 当前目录  ..上层目录

2, 目录的相关操作

1)cd(切换目录)

[root@node1 ~]# cd [相对路径或绝对路径]

[root@node1 ~]# cd      : 回到自己的主文件夹

[root@node1 ~]# cd ~   : 也表示回到自己主文件夹

[root@node1 ~]# cd ~ilink : 去ilink这个用户的主文件夹,即/home/ilink

2)pwd(显示目前所在目录)  ,即 我在哪

对于连接文件,显示出实际的工作目录,而不是连接文件本身的目录名时, 可以使用 -P 参数

3)mkdir(新建新目录)

[root@node1 test]# mkdir [-mp] 目录名

参数: -m 配置文件案的权限。直接设置,不需要看默认权限(umask)

-p 帮助你直接将所需要的目录(包括上层目录)递归创建起来  (一般不建议常用-p这个参数)

4)rmdir(删除 “空” 的目录)

3, 关于执行文件路径的变量 $PATH

1) echo “ 有显示,打印的意思 ”

[ilink@node1 test]$ echo $PATH

PATH(一定要大写),这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)隔开,每个目录都是有" 顺序 " 之分的

2) 将某个路径加入PATH中

[ilink@node1 test]$   PATH="$PATH":/home/ilink/test

3) 为了安全,不建议将" . "加入PATH中

4, ls 查看文件与目录

[ilink@node1 test]$ ls[-aAdfFhilnrRSt] 目录名称

[ilink@node1 test]$ ls [--color={never,auto,always}] 目录名称

[ilink@node1 test]$ ls [--full-time] 目录名称

参数说明:

-a : 全部的文件,连同隐藏文件一起列出来(常用)

-d : 仅列出目录本身,而不是列出目录内的文件数据(常用)

-l : 列出长数据串,包含文件的属性与权限等数据(常用)

-t : 依时间排序,而不是文件名排序

--color=never  : 不要依据文件特性给予颜色显示

--color=always : 显示颜色

--color=auto    : 让系统自行依据设置来判断是否给予颜色

--full-time        : 以完整时间模式(包含年、月、日 、时、分、秒)输出

5, cp(复制文件或目录)

[ilink@node1 test]$ cp[-adfilprsu] 源文件(source)  目标文件(destination)

[ilink@node1 test]$ cp [options] source1 source2 source3... directory

参数:

-a : 相当于 -pdr的意思 (常用)

-f : 为强制(force)的意思,若目标文件已经存在且无法开启,则删除后再尝试

-i : 若目标文件(destination)已经存在时,在覆盖时会先询问操作的进行(常用)

-p: 连同文件的属性一起复制过去,而非使用默认属性(备份常用)

-r: 递归持续复制,用于目录的复制行为(常用)

-s : 复制成为符号链接文件(symbolic link),即“快捷方式”文件;

-u : 若destination比source旧时才更新destination

由于 cp 有种种的文件属性与权限特性,所以,在复制的时候,必须清楚的了解到:

是否需要完整保留来源文件的信息?  源文件是否为软连接文件(symbolic link file)?

源文件是否为特殊文件,例如 FIFO、Socket等?

源文件是否为目录?

6, rm(移除文件或目录)

参数:

-f : 就是 force 的意思,忽略不存在的文件,不会出现警告信息;

-i : 互动模式,在删除之前询问用户是否操作

-r: 递归删除。最常用在目录的删除上。 比较危险的参数

注意:文件名最好不要使用 "-" 号开头,因为 "-" 后面接参数,因此,单纯使用 "rm -aaa-"系统的命令就会误判,所以对于这样的使用 " rm ./-aaa" 。

7, mv(移动文件与目录,或更名)

[root@node1 ~]# mv [-fiu] source destination

[root@node1 ~]# mv [options] source1 source2 source3 .... directory

参数:

-f :就是 force 的意思,如果目标文件已经存在,不会询问而直接覆盖;

-i : 若目标已经存在,就会询问是否覆盖

-u: 若目标文件已经存在,且source比较新,才会更新.

8, 取得路径的文件名与目录名称  basename dirname

9, 文件内容查阅

cat  :   由第一行开始显示文件内容

tac  :   从最后一行开始显示,可以看出是cat的倒写

nl    :   显示的时候,顺便输出行号

more:  一页一页的显示文件内容

less  : 与more类似,但是比more更好用,可以往前翻页

head : 只看头几行

tail    : 只看结尾几行

od    : 以二进制的方式读取文件内容

10,cat (concatenate)

  [root@node1 ~]# cat [-AbEnTv]  文件

参数 -A :相当于 -vET的整合参数,可列出一些特殊字符,而不是空白而已;

-b : 列出行号,仅针对非空白行做行号显示,空白行不标行号;

-n : 打印出行号,连同空白行也会有行号,与 -b 不同

11,more 与 less

都是一页一页显示,他们的快捷键基本上与man一样 ,不再解释

12, head(取出前面几行)

  [root@node1 ~]# head [-n number] 文件

[root@node1 ~]#  head /etc/man.config           默认情况下显示前10行;

   [root@node1 ~]# head -n 20 /etc/man.config   显示前20行;

[root@node1 ~]# head -n -100 /etc/man.config 列出前面的所有行,但不包括后面100行

13,tail(取出后面几行)

[root@node1 ~]# tail [-n number] 文件

[root@node1 ~]#  tail /etc/man.config           默认情况下显示后10行;

   [root@node1 ~]# tail -n 20 /etc/man.config   显示后20行;

[root@node1 ~]# tail -n +100 /etc/man.config 列出100行以后的数据

例如: 我想显示 /etc/man.config的第11行到20行呢?

答案: head -n 20 /ect/man.config | tail -n 10

14, od(非纯文本文件)

  [root@node1 ~]# od [-t TYPE] 文件

参数

-t   : 后面可以接各种"类型"的输出,例如:

a        : 利用默认的字符输出

c        : 使用ASCII字符输出

d[size]: 利用十进制(decimal)来输出数据,每个整数占size bytes

f[size]: 利用浮点数(floating)来输出数据,每个数占size bytes

o[size]: 利用八进制(octal)来输出数据,每个整数占size bytes

x[size]: 利用十六进制(hexadecimal)来输出数据,每个整数占size bytes

15, touch(修改文件的时间或创建新文件)

每个文件在linux下面都会记录许多的时间参数,有三个主要的变动时间

modification time(mtime) 当该文件的"内容数据"更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或者权限;

status time(ctime)当该文件的"状态"(status)改变时,就会更新这个时间,举例说明,当权限与属性被更改了,就会更新这个时间;

access time(atime)当该文件的"内容被取用"时,就会更新这个时间(access)。举例说明,使用cat去读取/etc/man.config,就会更新该文件的atime了。

[root@node1 ~]# touch [-acdmt] 文件

参数:

-a  : 仅修改访问时间;

-c  : 仅修改文件的时间,若该文件不存在则不创建新文件;

-d : 后面可以接欲修改的时间而不用当前的时间,也可以使用 --date="日期或时间";

-m: 仅修改mtime ;

-t :  后面可以接欲修改的时间而不是当前时间,格式[YYMMDDhhmm]

touch这个命令最常被使用的情况是:

创建一个空的文件;    将某个文件日期修改为目前时间(mtime与atime);

16, 文件默认权限:umask

  umask就是指定 "目前用户在新建文件或目录时候的权限默认值"

要注意的是:umask的分数指的是"该默认值需要减掉的权限"。因为r、w、x分别是4、2、1,也就是说,要拿掉能写的权限,就输入2,要拿掉读的权限就输入4,那么要拿掉读与写的权限就输入6...

17, 文件的隐藏属性

  chattr(设置文件的隐藏属性)

  [root@node1 ~]# chattr [+-=] [ASacdistu] 文件或目录名称

  参数+,-,= 与权限是一样的,不再说明

a   :  当设置a之后,这个文件只能增加数据,而不能删除也不能修改,只有root才能设置这个属性, 一般log file这种的登录文件常用

i    :  可以让一个文件" 不能被删除、改名、设置连接也无法写入或添加数据 "。这对于系统的安全性有很大的帮助,只有root能设置此属性.

18, lsattr(显示文件隐藏属性)

  [root@node1 ~]# lsattr [-adR] 文件或目录

  -a  : 将隐藏文件的属性也秀出来

-d :  如果接的是目录,仅列出目录本身的属性而非目录内的文件名

-R :  连同子目录的数据也一并列出来

19, 查看文件类型 file

  如果想知道某个文件的基本数据,例如属于ASCII或者data文件,或是binary,就可以利用file这个命令查看

20, 文件名的查找

  通常find不很常用,因为速度慢!通常先使用whereis或者locate来检查,如果真的找不到,才以find查询。为什么?因为whereis与locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询硬盘,比较节省时间。

  [root@node1 ~]# whereis [-bmsu] 文件或目录名

  参数:

    -b : 只找二进制的文件.

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

    -s : 只找source源文件

    -u : 查找不在上述三个选项当中的其它特殊文件

  [root@node1 ~]# locate [-ir] keyword

  参数:

  -i : 忽略大小写的差异;

  -r : 后面可接正则表达式的显示方式

  locate 来寻找数据的时候特别,这是因为locate寻找的数据是由已创建的数据库/var/lib/mlocate里面的数据所查找的,数据库默认是每天执行一次,所以当你新建文件后查找该文件,那么locate会告诉你 "找不到" ,因为必须要更新数据库。

  我们可以手动更新数据库,方法很简单直接输入 " updatedb " 即可。

  updatedb : 依据 /etc/updatedb.conf 的设置去查找系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库文件

  locate : 依据/var/lib/mlocate 内的数据库记载,找出用户输入的关键字文件名

  [root@node1 ~]# find [PATH] [option] [action]

  1)参数

    与时间有关的参数共有 -atime 、-ctime 与 -mtime,下面以mtime说明

    -mtime n : n 为数字,意义为在n天之前的"一天之内"被改过的文件;

    -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;

    -mtime -n : 列出n天之内(含n天本身)被更改过的文件;

    -newer file : file为一个存在的文件,列出比file还要新的文件。

    例子: 列出 过去系统上面24小时内有改动的(mtime)的文件

    [root@node1 ~]# find / -mtime 0               这个0是重点!0代表目前时间,所以从现在开始到24小时前,有改动的文件都会列出来!

    那么如果3天的24小时内? find / -mtime 3

    从图中可以看到,越往左则代表越早的时间,

      +4 代表大于等于5天前的文件名 : find /var -mtime +4

      -4 代表小于等于4天内的文件名 : find /var -mtime -4

      4 则代表4~5那一天的文件名 : find /var -mtime 4

  2)参数

    与用户或用户组有关的参数:

    -uid n : n为数字,这个数字是用户对应的账号ID,即UID,这个UID记录在/etc/passwd里面与账号名称对应的数字.

    -gid n : n为数字,这个数字是用户组的ID,即GID,这个GID记录在/etc/group中

    -user name :name 为用户账号名称。例如ilink

    -group name : name为用户组名称

    -nouser  :寻找文件的所有者不存在 /etc/passwd的人

    -nogroup: 寻找文件的所有用户组不存在于/etc/group中的文件

  3)参数

    与文件权限及名称有关的参数

    -name filename :查找文件名为filename的文件

    -size [+-]SIZE :  查找比SIZE还要大(+)或小(-)的文件。这个SIZE的规格有: c:代表byte,k:代表1024bytes,

    -type TYPE :  查找文件类型为TYPE的 ,类型主要有: 一般正规文件(f)、设备文件(b、c)、目录(d)、连接文件(l)、socket(s)、及FIFO(p)等属性

    -perm mode : 查找文件权限“刚好等于”mode的文件。

    -perm +mode: 查找文件权限"包含任意mode的权限"的文件,举例说,查找 -rwxr-xr-x,即-perm +755时,但一个文件属性为 -rw-------也会被列出来,因为它有-rw...的属性存在

    -perm -mode : 查找文件权限"必须要包含全部mode的权限",举例说,查找-rwxr--r--,即 0744的文件,使用-perm 0744,当一个文件权限为-rwsr-xr-x,即0755时,也会被列出来,因为 -rwsr-xr-x属性包括了-rwxr--r--的属性

   4)其他可进行的操作

    -exec  command : command为其它命令,-exec后面可再接其它的命令来处理查找到的结果

    -print  :将结果打印到屏幕上,这个操作是默认操作

    [root@node1 ~]# find / -perm +7000 -exec ls -l {} \;   注意到,-exec后面的ls -l 就是额外命令,命令不支持命令别名,所以不能使用 ll

    

    find 的特殊功能就是能够进行额外的动作(action)。

    {}代表的是 "由find找到的内容",

    -exec 一直到"\;"是关键字,代表find额外命令的开始(-exec)到结束(\;),中间是find命令内的额外命令。

    因为";"在bash环境下有特殊意义的,因此利用反斜杠来转义。

    find还可以利用通配符查找文件名 ,如  find /etc -name 'print*'

鸟哥Linux学习笔记04的更多相关文章

  1. 鸟哥Linux学习笔记06

    Linux 系统常用的压缩命令 1,*.Z compress程序压缩的文件,这个已经很老了,几乎不再使用,因此不再介绍. 2,gzip应用最广泛的压缩命令.目前gzip可以解开compress.zip ...

  2. 鸟哥Linux学习笔记05

    1,          文件系统通常会将 权限与属性放置到inode中,至于实际数据则放置到data block块中.另外还有一个超级块(superblock)会记录整个文件系统的整体内容,包括ino ...

  3. 鸟哥Linux学习笔记03

    1, 在Linux中,默认情况下所有的系统上的账号都记录在/etc/passwd这个文件内,密码记录在/etc/shadow这个文件下,所有的组名都记录在/etc/group内,这三个文件可以说是Li ...

  4. 鸟哥Linux学习笔记07

    1, vi 是 老式的文字处理器,不过功能已经很齐全了,但是还是有可以进步的地方. vim可以说是程序开发者的一项很好用的工具,vim官网(http://www.vim.org)自己也说vim是一个“ ...

  5. (原创)鸟哥linux学习script shell相关笔记

    在使用鸟哥linux进行script shell学习的过程中碰到一些不太明白的知识点,在这里进行一些记录 1. [root@www scripts]# vi sh03.sh #!/bin/bash # ...

  6. Linux学习笔记04—IP配置

    一.自动获取IP只有一种情况可以自动获取IP地址,那就是你的Linux所在的网络环境中有DHCP服务.只要你的真机可以自动获取IP,那么安装在虚拟机的Linux同样也可以自动获取IP. 方法很简单,只 ...

  7. Linux 学习笔记04丨Linux的用户和用户组管理

    Chapter 3. 用户和用户组管理 由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统. 3.0 用户与 ...

  8. Linux学习笔记04

    文件查找命令find 文件查找命令: which locate find which:查找命令字所在的位置 locate:模糊匹配(只要包含关键字的文件都查找出来) 不是实时的,基于数据库查找, up ...

  9. Linux学习笔记之兄弟连

    systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...

随机推荐

  1. Centos7安装mysql-5.7.19

    Centos7安装Mysql 一 mysql下载 地址: https://dev.mysql.com/downloads/mysql/#downloads 二 在centos7上创建安装文件存放.解压 ...

  2. Linux云计算 面试时最常遇到的40个问题

    1)使用云计算有哪些优点? 使用云计算有下列优点: a)备份数据和存储数据b)强大的服务器功能c)SaaS(软件即服务)d)信息技术沙盒功能e)提高生产力f)具有成本效益,并节省时间 2)可否列举哪些 ...

  3. Entity Framework - 基于外键关联的单向一对一关系

    代码的世界,原以为世界关系很简单,确道是关系无处不在.NET世界里ORM框架中EntityFramework作为其中翘楚,大大解放了搬砖工作的重复工作,着实提高了不少生产力,而也碰到过不少问题!比如关 ...

  4. HTML <td> 标签的 colspan 属性

    HTML <td> 标签的 colspan 属性 实例 表格单元横跨两列的表格: 浏览器支持 所以浏览器都支持 colspan 属性. 没有浏览器支持 colspan="0&qu ...

  5. python链接MySQLdb报错:2003

    使用python链接Mysql数据库操作,遇到问题! 问题如图所示: 解决方法:将"localhost"改为"127.0.0.1" db=MySQLdb.con ...

  6. github如何搜索资料

    进入自己的主页,然后点击explore→trending; 或者google搜索,如github java 后端 请参考:http://mp.weixin.qq.com/s?__biz=MzA4NTQ ...

  7. Vue.js入门指南(一)

      前  言 JRedu 之前用过一段时间的AnglarJS 1.X,在低版本的AngularJS中,脏值检查在变量增多的情况下会影响程序的响应速度.后期的2.X和更高版本在脏值检查等问题上做了优化, ...

  8. java中的ArrayList 使得集合中的对象不重复

    JAVA中的List接口存放的元素是可以重复的,在这个我重写对象里面的equals()方法,让集合里存放的对象不能重复 首先建一个类,在里面的main()方法中实现 list1中存放的是可以重复对象的 ...

  9. URI和URL的区别 一起学习呗

    一直存在很多技术上的争论,其中最为妙的恐怕就是web地址应该叫什么的问题.通常情况就是这样:有人把地址栏的内容叫"URL",这时候有些人就来劲了:"不!其实那就是URI. ...

  10. 【Linux相识相知】yum的配置使用和程序包的编译安装

    在上一篇博客中,写到了如何使用rpm命令来安装.卸载软件等,但是大家都知道,各个软件包之间可能存在依赖关系,如果安装某个软件需要额外的依赖其他若干的包,那么我们就需要将其他额外的包一个一个的安装上去, ...