mkdir 创建目录

-p 递归创建目录

-v 显示创建信息

[root@zycentos7 ~]# mkdir -p {mylinux/{bin,conf,lib,logs,webapps/{docs,examples},work},test/test1}
[root@zycentos7 ~]# tree .
.
├── mylinux
│ ├── bin
│ ├── conf
│ ├── lib
│ ├── logs
│ ├── webapps
│ │ ├── docs
│ │ └── examples
│ └── work
├── test
│ └── test1

cat,more,less 文件查看

cat 将文件的内容打印到标准输出

参数 含义
-n 对所有输出的行数编号
-b 对输出的非空白行数编号
-s 当遇到连续1+空白行,只输出一行
-E 在每行结束处显示$
-T 将Tab显示为^I

more,less 逐屏显示内容

参数 含义
-num 一次显示的行数
-f 计算时按实际行数
-p 先清屏再显示

less和more都可以按空格翻页

less可以按键盘上下方向键显示上下内容,more不能

less不必读整个文件,加载速度会比more更快

less退出后shell不会留下刚显示的内容,而more会

ln 创建链接文件,默认创建硬链接

请点击了解inode知识

硬链接 通过索引节点进行链接

  一个inode节点号对应了多个文件名,这多个文件互为硬链接,且互不影响

命令语法

ln TARGET LINK_NAME

示例

注意先TARGET,再LINK_NAME

可以看到硬链接的inode节点相同

[root@localhost ~]# touch f1
[root@localhost ~]# ln f1 f2
[root@localhost ~]# ln f3 f1
ln: failed to access ‘f3’: No such file or directory
[root@localhost ~]# ls -li f*
16838551 -rw-r--r--. 2 root root 0 Oct 6 11:18 f1
16838551 -rw-r--r--. 2 root root 0 Oct 6 11:18 f2

作用

  允许一个文件拥有多个有效路径名,通过建立硬链接到重要文件,防止“误删”。

硬链接知识小结

  1.具有相同Inode节点号的多个文件互为硬链接文件。

  2.互为硬链接对文件系统来说是完全平等的,删除其中任何一个都不会影响另一个的访问。

  3.只有删除了源文件及所有对应的硬链接文件,文件实体才会被删除。

  4.当所有硬链接文件及源文件被删除后,再存放新的数据会占用这个文件的空间,或者磁盘fsck检查时删除的数据被系统回收。

  5.硬链接文件是文件的另一个入口。

  6.可以通过给文件设置硬链接文件,来防止重要文件被误删。

  7.对于静态文件(没有进程正在调用的文件)来说,当对应硬链接数位0(i_link),文件就被删除。 i_link的查看方法(ls -l第三列内容)

文件真正的删除条件

  只有当最后一个连接被删除后,文件的数据块目录的连接才会被释放,即文件真正的删除条件是与之相关的所有硬链接文件均被删除

软链接 类似于Windows的快捷方式

  软链接也叫符号链接,在符号链接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

命令语法

ln -s TARGET LINK_NAME

示例

注意先TARGET,再LINK_NAME

[root@localhost ~]# touch f1
[root@localhost ~]# ln -s f1 f2
[root@localhost ~]# ln -s f3 f1
ln: failed to create symbolic link ‘f1’: File exists

不能给两个都不存的文件创建软连接

软链接知识小结

  1.软链接的源文件和链接文件inode节点不相同,文件类型不同,它们指向不同的数据块。

  2.软链接是“”主从”关系,“主”被删除了,“从”仍然存在(因为是两个不同的文件),但指向的是一个无效的连接。

  3. 软链接类似windows的快捷方式。

  4. 软链接类似一个文本文件,里面存放的是源文件的路径,指向源文件实体。

  5. 软链接失效的时候一般是红字白底闪烁提示。


目录链接

1.对于目录,不可以创建硬链接,但可以创建软链接。

2.目录的硬链接不能跨越文件系统。

3.每个目录下面都有一个硬链接“.”号,和对应上级目录的硬链接“..”。

4.在父目录里面创建一个子目录,父目录的链接数增加1(子目录里都有..来指向父目录)。但是在父目录里创建文件,父目录的链接数不会增加。


file 显示文件类型

file namefile

cp 拷贝文件或目录

命令语法

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

常用 cp [OPTION]... SOURCE... DIRECTORY

OPTION

-f 强制覆盖目标文件

-i 交互式复制,即覆盖之前提醒用户确认 普通用户使用-i增加交互提示,root用户默认提示

-R,-r递归复制目录

-p 复制的时候保留源文件目录属性,包括所有者、所属组、权限与时间

-P --parents,保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经存在

-d 复制符号链接文件本身,而其指向的源文件

-a -dR --preserve=all, archive,用于实现归档

练习

请点击了解通配符知识

1.复制/etc目录下,所有以m开头,以非数字结尾的文件或目录至/tmp/magedu.com目录cp -r /etc/m*[^0-9] /tmp/magedu.com

具体过程

[root@localhost ~]# cp -r /etc/m*[^0-9] /tmp/magedu.com
cp: target ‘/tmp/magedu.com’ is not a directory
[root@localhost ~]# mkdir /tmp/magedu.com
[root@localhost ~]# cp -r /etc/m*[^0-9] /tmp/magedu.com
[root@localhost ~]# ls /tmp/magedu.com/
machine-id makedumpfile.conf.sample mke2fs.conf modules-load.d mtab my.cnf.d
magic man_db.conf modprobe.d motd my.cnf

DIRECTORY必须已存在(cp [OPTION]... SOURCE...DIRECTORY)

2.复制/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录至/tmp/man/目录下cp -r /usr/share/man/man[0-9] /tmp/man/

3.复制/etc目录下,所有以.conf结尾,且以m,n,r,p开头的文件或目录至/tmp/conf.d/目录下cp -r /etc/[mnrp]*.conf/tmp/conf.d


find 实时查找工具

命令语法

find [PATH] [OPTION] [action]

OPTION

与时间有关的选项 与当前系统时间有关

-mtime n 在n天之前的【一天之内】被修改过内容的文件

-mtime +n 在n天之前(不含n天本身)被修改过内容的文件

-mtime -n 在n天之内(含n天本身)被修改过内容的文件

-newer file 列出比file新的文件

范例一: 将过去系统上面24小时内有修改过内容(mtime)的文件列出

find / -mtime 0 0代表目前的时间,即从现在开始到24小时前有变动过内容的文件都会被显示

范例二: 找出大于等于 5 天前被更动过的文件档名

find /var -mtime +4

范例三: 找出4 天内被更动过的文件档名

find /var -mtime -4

范例四: 寻找/etc下面的文件,如果文件日期比/etc/passwd新就列出

find /etc -newer /etc/passwd -newer可以用于辨别两个文件之间的新旧关系

范例五: 将3天前那一天的24小时内有修改过内容(mtime)的文件列出

find / -mtime 3

与使用者或用户组名称有关的参数

-uid n  UID

-gid n  GID

-user username 按文件
属主
来查找

-group groupname 按文件
所属组
来查找

-nouser 查找无有效属主的文件

-nogroup 查找无有效所属组的文件

范例一: 查找/home下面属于zhao的文件

find /home -user zhao

范例二: 查找系统中不属于任何人的文件

find / -nouser

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

-name filename 按名字查找

-type TYPE 按文件类型查找

符号 文件类型
f 普通文件
d 目录文件
l 符号链接文件
b 块设备文件
c 字符设备文件
p 管道文件
s 套接字文件

-perm 按权限查找(待补充)

-perm [/|-]mode mode,精确权限匹配

-perm mode 搜寻文件权限等于mode的文件

-perm /mode 任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足 9位权限之间存在“或"关系

-perm -mode 每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足 9位权限之间存在“与”关系

范例一: 找出名称为passwd的文件

find / -name passwd

范例二: 找出文件名包含了passwd这个关键词的文件

find / -name "*passwd" 利用 -name "*key" 可以搜寻文件名包含关键词的文件

范例三: 找出 /run 目录下,文件类型为Socket的文件

find /run -type s

额外可进行的动作

-exec command 对匹配的文件执行该参数所给出的shell命令,形式为command {} \; 注意{}与;之间有空格

-ok 与exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执行

-print 将结果输出到标准输出

-print0 不换行输出,用于归档 find命令在查找到有空格的文件名的文件时,输出内容将被认为是多个文件

find 【路径】【参数】【内容】-exec 【shell命令】{} ;

范例一: 将查找出来的文件删除

find /opt -name filename -exec rm -rf {} \;

范例二: 列出查找的文件的大小

find /etc -type d -exec du -h {} \;

范例三: 在执行命令之前,给出提示

[root@localhost opt]# touch file1
[root@localhost opt]# find -name file1 -ok rm -rf {} \;
< rm ... ./file1 > ? y

-exec 后面的shell指令不支持命令别名ll,需要使用ls -l

其他选项

-depthfind filename -depth 加-depth先处理目录下的子内容,再处理目录本身,否则相反

-mindepthfind / -mindepth # -name passwd 从第#层目录下开始查找

-maxdepthfind / -maxdepth # -name passwd 查找到第#层目录

-prune在当前指定的目录下查找

-path pattern 文件名与shell模式匹配

-size [+/-]# 指定查找文件的大小

组合测试

符号 文件类型
-a
-o
-not,-!

范例一 找出/tmp目录下属主为非root的所有文件

[root@localhost tmp]# find /tmp -! -user "root"
/tmp/file1
[root@localhost tmp]# ls -l /tmp/file1
-rw-r--r--. 1 zhao root 82 Oct 13 16:36 /tmp/file1

范例二 找出/tmp目录下文件名中不包含fstab字符串的文件

[root@localhost tmp]# find /tmp -not -name "\*fastb*"
/tmp
/tmp/.X11-unix
/tmp/.XIM-unix
/tmp/.Test-unix
/tmp/.font-unix
/tmp/.ICE-unix
/tmp/file1
/tmp/file2

范例三 找出/tmp目录下属主为非root,而且文件名不包含fstab字符串的文件

[root@localhost tmp]# find /tmp -! -name "*fastb*" -a -! -user root
/tmp/file1

综合练习

1)查找/var目录下属主为root,且属组为mail的所有文件或目录

find /var -user root -a -group mail -ls

2)用两种方法查找/usr目录下不属于root, bin或hadoop的所有文件或目录

find /usr -not -user root -a -not -user bin -a -not -user hadoop

find /usr -not \( -user root -o -user bin -o -user hadoop \) -ls

3)查找/etc目录下最近一周内其内容修改过,且属主不是root用户也不是hadoop用户的文件或目录

find /etc -mtime -7 -a -not \( -user root -o -user hadoop \) -ls

find /etc -mtime -7 -a -not -user root -a -not -user hadoop -ls

4)查找当前系统上没有属或属组,且最近一周内曾被访问过的文件或目录

find / \( -nouser -o -nogroup \) -atime -7 -ls

5)查找/etc目录下大于1M且类型为普通文件的所有文件

find /etc -size +1M -type f -exec ls -lh {} \;

6)查找/etc目录下所有用户都没有写权限的文件

find /etc -not -perm /222 -type f -ls

7)查找/etc目录至少有一类用户没有执行权限的文件

find /etc -not -perm -111 -type f -ls

8)查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件

find /etc -perm -113 -type f -ls

9)查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件

find /etc/ -path /etc/sane.d -a -prune -o -name "*.conf"

10)查找/etc/下,除/etc/sane.d目录和/etc/fonts目录的其他所有.conf后缀的文件

find /etc/ −path /etc/sane.d −o −path /etc/fonts -a -prune -o -name "*.conf"


split 分割文档

split命令用于将一个文件分割成数个。该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件。

命令语法

split [OPTION]... [INPUT [PREFIX]]

PREFIX:代表前导符,可作为切割文件的前导文件

OPTION

-b 每一输出文档的大小,单位为 byte

-C 每一输出文档中,单行的最大 byte 数

-a 指定数字的长度

-d 使用数字作为分割文件的文件名后缀,默认是2位长度 与-a配合使用,指定后缀长度

-l 为每一个分割文件输出的行数

实例

[root@localhost tmp]# dd if=/dev/zero of=date.file bs=10k count=1
1+0 records in
1+0 records out
10240 bytes (10 kB) copied, 0.000216012 s, 47.4 MB/s
[root@localhost tmp]# split -b 1k date.file
[root@localhost tmp]# ls
date.file sys vm xaa xab xac xad xae xaf xag xah xai xaj

mv 变更存储位置或文件/目录改名

mv命令是move的缩写,可以用来移动文件或者将文件改名

命令语法

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

常用 mv [OPTION]... SOURCE... DIRECTORY

OPTION

-b 当目标文件存在时,先备份覆盖

-f 当目标文件存在时,强制覆盖

-i 当目标文件存在时,提示是否覆盖 普通用户使用-i增加交互提示,root用户默认提示

-t指定目标指定文件

Linux基础篇学习——文件目录常用管理命令mkdir,cat,more,less,ln,file,cp,find,split,mv的更多相关文章

  1. Linux随笔-鸟哥Linux基础篇学习总结(全)

    Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...

  2. Linux基础篇四:常用命令

    .     一个点表示是 当前目录 ..    两个点表示当前目录的上一层目录 .   与   ..  相对路径的一种表现形式 cd ~/test/     ~当前用户的家目录    绝对路径 注意: ...

  3. Linux基础篇学习——Linux文件系统之文件存储与读取:inode,block,superblock

    Linux文件类型 代表符号 含义 - 常规文件,即file d directory,目录文件 b block device,块设备文件,支持以"block"为单位进行随机访问 c ...

  4. Linux基础篇学习——常见系统命令:ls,pwd,cd,date,hwclock,passwd,su,clear,who,w,uname,uptime,last,dmesg,free,ps,top

    ls 显示指定目录中的内容 ls [OPTION]... [FILE]... OPTION -a --all,显示所有文件包括隐藏文件 -l 列出长属性,显示出文件的属性与权限等数据信息 -i  列出 ...

  5. Linux基础篇九:用户管理

    查看当前用户的ID信息(也可以查看其他用户的ID信息) 每个进程都会有一个用户身份运行 cat /etc/passwd 账号的操作: useradd  (新建用户) 例题:   groupadd  s ...

  6. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  7. VBox&vmware虚拟机安装Linux及Linux基础入门学习

    VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...

  8. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  9. docker专题(2):docker常用管理命令(上)

    http://segmentfault.com/a/1190000000751601 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备 ...

随机推荐

  1. 7/8段码管(LED)

    LED显示器在许多的数字系统中作为显示输出设备,使用非常广泛.它的结构是由发光二极管构成的a.b.c.d.e.f和g七段,并由此得名,实际上每个LED还有一个发光段dp,一般用于表示小数点,所以也有少 ...

  2. 快速入门和查询Python

    评分: 4.5 作者: Ryan Lu 类别:Python 时间: 1. 注释 三种方式: 单行注释以 # 开头 多行注释用三个单引号 ''' 将注释括起来 多行注释用三个双引号 "&quo ...

  3. CSS中怎么设置元素水平垂直居中?

    记录怎么使用text-align与vertical-align属性设置元素在容器中垂直居中对齐.text-align与vertical-align虽然都是设置元素内部对齐方式的,但两者的用法还是有略微 ...

  4. py基础之模块与包

    '''模块:当代码越来越多时,将所有代码放入一个文件中便会无法维护,所以放到多个文件中去,这样每一个py文件就是一个模块 包:模块越来越多时容易重名,便将模块放入不同的包中,每个包中必须有一个__in ...

  5. 输入URL到浏览器显示页面的过程,搜集各方面资料总结一下

    面试中经常会被问到这个问题吧,唉,我最开始被问到的时候也就能大概说一些流程.被问得多了,自己就想去找找这个问题的全面回答,于是乎搜了很多资料和网上的文章,根据那些文章写一个总结. 写得不好,或者有意见 ...

  6. React解决长列表方案(react-virtualized)

    github地址 高效渲染大型列表的响应式组件 使用窗口特性,即在一个滚动的范围内,呈现你给定数据的一小部分,大量缩减了呈现组件所需的时间,以及创建DOM节点的数量. 缺点:滑动过快,可能会出现空白的 ...

  7. JZOJ 1774. 合并果子 (Standard IO)

    1774. 合并果子 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 在一个果园里,多多已经将所有的果子打 ...

  8. 【译文连载】 理解Istio服务网格(第七章 安全)

    全书目录 第一章 概述 第二章 安装 第三章 流控 第四章 服务弹性 第五章 混沌测试 第六章 可观测性 本文目录 第7章 安全 7.1 身份认证 7.1.1 Kubernetes上的Istio的身份 ...

  9. utuntu sever1804显示中文putty可以输入中文

    默认情况下,putty连接ubuntu server以后,哪怕设置的Utf-8的连接,也是无法显示中文的. 应该是ubuntu服务器端,没有字库的问题. 如果在putty显示和输入中文呢,因为配置信息 ...

  10. MATLAB中的Regex

    regexprep——用于对字符串进行查找并替换. regexp Definition: 用于对字符串进行查找,大小写敏感. startIndex = regexp(str,expression) 返 ...