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. ACL权限控制列表

    1.查看文件系统是否支持ACL (xfs文件系统强制开启ACL,如果该分区已格式化为xfs,在使用dumpe2fs会看不到superblocks信息)zheng@ubuntu16:~$ sudo du ...

  2. 【Shell Basic】Shell脚本编写规范

    shell脚本需要有较高的实用性.可维护.可阅读.方便他人阅读,因而需要建立一定的规范来操作 dream361@master:~$ cat test2.sh #!/bin/bash 所使用的bash程 ...

  3. go web 第二天 学习笔记

    package main import ( "crypto/md5" "fmt" "html/template" "io" ...

  4. Spring同mybatis整合讲义(事物)

    1.mybatis的作用. 它是一个数据持久化的解决方案,它是一个ORM的框架. 2.Spring的作用? 备注:将本地jar包拷贝至本地的maven仓库里:oracle的jar包需自己发布到mave ...

  5. Eclipse关闭项目

    Eclipse 关闭项目 为什么要关闭项目? Eclipse 工作空间包含了多个项目.一个项目可以是关闭或开启状态. 项目打开过多影响有: 消耗内存 占用编译时间:在删除项目.class 文件(Cle ...

  6. mock server 前后端分离小结(转)

    1.前台开发受限于后台开发的速度 2.后台提供给前台的接口缺字段,时常需要联调 基于Mock Server开发的好处: 对于前端来讲,可以独立于后端进行开发. 对于后端来讲,根据前端定义的接口进行开发 ...

  7. Semaphore实现原理分析

    synchronized的语义是互斥锁,就是在同一时刻,只有一个线程能获得执行代码的锁.但是现实生活中,有好多的场景,锁不止一把. 比如说,又到了十一假期,买票是重点,必须圈起来.在购票大厅里,有5个 ...

  8. Info模式下的隐形杀手(SpringMVC同时使用<mvc:resources.../>和FormattingConversionServiceFactoryBean时出现的问题)

    天气一天比一天变的凉快了,而我一天天踩的坑更加贱了,首先在北京向各位问好,也给身边献身教育事业的亲朋好友们补上一句节日快乐! 今天早上手贱把项目误删了,不得不去SVN上去乞求了.我个人习惯项目运行的时 ...

  9. Go数组、切片、映射的原理--简明解析

    数组.切片.映射是Golang的最重要的数据结构,下面是对这3种数据结构的一点个人总结: 一.数组 数组是切片和映射的基础数据结构. 数组是一个长度固定的数据类型,存储着一段具有相同数据类型元素的连续 ...

  10. [置顶] 基于FPGA的VGA简易显存设计&NIOS ii软核接入

    项目简介 本项目基于Altera公司的Cyclone IV型芯片,利用NIOS II软核,2-port RAM与时序控制模块,实现64*48分辨率的显存(再大的显存板载资源m9k不够用) 实现效果如下 ...