7月27号,马哥学习第四天,继续学习了linux的文件系统。

  • centos7的目录结构如下图所示

wKiom1eaEGzymuVWAAEjtQ8sOp8925.jpg-wh_50


  • 文件命名除了斜杠和空格,所有字符都有效,但特殊字符不推荐使用

  • linux的文件类型

    -:普通文件

    d: 目录文件

    b: 块设备

    c: 字符设备

    l: 符号链接文件

    p: 管道文件pipe

    s: 套接字文件socket

wKiom1ebTWHhy_C4AACVrA9FwmU804.jpg

  • stat 查看文件状态(包括元数据)

  • echo $[$RANDOM%80] 随机显示一个80以内的数

  • rm /root/-h -f 用绝对路径的方式删除-h文件

  • echo "- - -" > /sys/class/scsi_host2/scan 发现新添加的硬盘

  • /dev/sdb 块设备

  • 在文件中写入数据:

    dd if=读取路径 of=输出路径 bs=1M count=块数

  • hexdump -C f3.txt 读取二进制代码

    -v 全显示(包括空格的代码)

    -c 转换过后的代码(如换行符显示为\n)

    (windows的回车键比linux多一个控制符od)

  • hexedit f3.txt 编辑二进制代码

    安装hexedit:

    rpm -i /run/media/root/CentOS\ 7\ x86_64/Packages/hexedit-1.2.13-5.el7.x86_64.rpm

  • 相对路径不一定是相对于当前路径

    绝对路径(以/开始) 比如 /etc/sysconfig/network

    相对路径(不以/开始) 比如 sysconfig]# ./network 和sysconfig]# network

    . 表示当前路径 ..表示当前路径的上一级路径

    sysconfig]# ../issue

  • cd 绝对路径或相对路径

    cd - 到以前的工作目录

    cd=cd~ 切到主目录

    cd ..到上一级目录

    cd~wang 切换到wang的工作目录

  • 提高远程连接的速度:

    vim /etc/ssh/sshd_config

    将UsednS yes改为no

  • 列出当前目录的内容或指定目录 :ls [options] [files_or_dirs]
    ls -a 包含隐藏文件
    ls -l 显示额外的信息
    ls -R 目录递归通过
    ls -ld 目录和符号链接信息
    ls -1 文件分行显示
    ls �S 按从大到小排序
    ls �u 配合-t选项,显示并按atime从新到旧排序
    ls -r 逆序显示

    ls �U 不排序按目录存放顺序显示
    ll f[a-c]* 显示a到c之间的字母开头的文件,顺序为aAbBc

    ll f[[:lower]]* 显示所有小写字母开头的文件

    ll --block-size=MB 功能同 ll -h (文件大小按照MB显示)

  • 文件通配符

    * 匹配零个或多个字符

    ? 匹配任何单个字符
    ~ 当前用户家目录

    ~username 用户家目录

    ~+ 当前工作目录

    ~- 前一个工作目录

    [0-9] 匹配一个数字范围

    [a-z]:大写和小写字母

    [wxc] 匹配列表中的任何的一个字符
    [^wxc] 匹配列表中的所有字符以外的字符
    [:digit:]:任意数字,相当于0-9

    [:lower:]:任意小写字母

    [:upper:]: 任意大写字母

    [:alpha:]: 任意大小写字母

    [:alnum:]:任意数字或字母

    [:space:]:空格

    [:punct:]:标点符号

  • touch可以生成文件,也可以刷新时间

    -c: 如果文件不存在,则不予创建

    -a: 仅改变 atime

    -m: 仅改变 mtime

    -t:STAMP: -a: 仅改变 atime -m: 仅改变 mtime -t:STAMP:

  • 三个时间戳(可用stat查看)

    atime 读取文件时内容(cat)时 atime变化(centos6和7中得满足如下一种条件才改变:1距离上次改变已经一天以上,2atime比mtime早)

    mtime 修改文件内容(数据)时 mtime改变

    ctime 修改文件元数据(文件名等)时 ctime改变

  • 复制文件和目录cp

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

    cp [OPTION]... SOURCE... DIRECTORY

    -r,-R: 递归复制目录及内部的所有内容;

    -a: 归档,相当于-dR --preserv=all

    -p: 等同--preserv=mode,ownership,timestamp

    -v: --verbose

    -f: --force

wKioL1ebVRSiClBCAAM54_esSlI997.jpg

  • 移动和重命名文件

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

    mv [OPTION]... SOURCE... DIRECTORY
    -f 强制

  • 删除

    rm [OPTION]... FILE...

    -f: 强制删除

    -r: 递归

    --no-preserve-root

  • 目录操作

    tree 显示目录树

    -d: 只显示目录

    -L level:指定显示的层级数目

    -P pattern: 只显示由指定pattern匹配到的路径

    mkdir 创建目录

    -p: 存在于不报错,且可自动创建所需的各目录;

    -v: 显示详细信息

    -m MODE: 创建目录时直接指定权限;
    rmdir 删除空目录

练习题

1、只显示指定目录的隐藏目录和文件

ls .[^.]*


2、只显示指定目录下的目录(不显示文件)

ls -d /etc/*/

ls -d ./*/

tree -d


3、显示/var目录下所有以l开头,以一个小写字母结尾,且中 间出现至少一位数字的文件或目录

ls /var/l*[0-9]*[[:lower:]]


4、显示/etc目录下以任意一位数字开头,且以非数字结尾的 文件或目录

ls /etc/[0-9]*[^0-9]

5、显示/etc/目录下以非字母开头,后面跟了一个字母及其 它任意长度任意字符的文件或目录

ls /etc/[^[:alpha:]][[:alpha:]]*


6、显示/etc目录下所有以m开头以非数字结尾的文件或目录
ls -d /etc/m*[^0-9]


7、显示/etc目录下,所有以.d结尾的文件或目录
ls -d /etc/*.d


8、显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文 件或目录

ls -d /etc/[mnrp]*.conf


9、使用别名命令,每日将/etc/目录下所有文件, 备份到/testdir/下独立的新目录下,并要求新目录 格式为 backupYYYY-mm-dd ,备份过程可见

alias cp1='cp -rpv /etc/ /testdir/backup`date +%F`'

cp1回车


10、先创建/testdir/rootdir目录,再复制/root所有 下文件到该目录内,并要求保留原有权限

cp -rp /root/ /testdir/rootdir/


11、如何创建/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a,/testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/b

mkdir /testdir/dir1/{x,y}{/a,/b}


12、如何创建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b

mkdir -pv /testdir/dir2/{x/{a,b},y}


13如何创建/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/dir3,/testdir/dir5/dir4

mkdir -pv /testdir/dir{3,4,5/dir{3,4}}

shipping version 提交版本

DAY4:CentOS6.8及7的文件系统2的更多相关文章

  1. Html5 canvas实现粒子时钟的示例代码

    这篇文章主要介绍了Html5 canvas实现粒子时钟的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  3. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  4. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  5. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  6. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  7. 在Xcode4中,你可以更改用于显示隐形字符的字符吗?

    我更喜欢VisualStudio显示隐形的方式……

  8. ios – 应用程序商店描述特殊字符

    是不是可以在AppStore描述中使用像星星这样的特殊字符了?我得到这个错误:描述不得包含标记语言.说明不得包含以下字符:★提前致谢:)解决方法仍然允许一些unicode字符.以下字符已经过测试并仍然有效:◆√至于现在他们工作正常,但苹果可以随时再次改变条件.

  9. ios – 将数组中的字符转换为整数

    即使我搜索了文档,我似乎无法弄清楚如何做到这一点.我试图弄清楚如何将数组中索引处的字符转换为整数.例如,假设我有一个名为“容器”的字符数组,我无法弄清楚该怎么做:谢谢您的帮助!解决方法Swift并不容易在原始和类型表示之间进行转换.这是一个在此期间应该有所帮助的扩展:这使您可以非常接近您想要的:对于遇到此问题的任何工程师,请参阅rdar://17494834

  10. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部