zoukankan      html  css  js  c++  java
  • Linux基本命令

    一、Linux操作环境

    ~所在的位置是/root/目录下

    • root:当前登陆的用户名
    • @分隔符
    • chengliang:主机名
    • ~:当前路径位置

    Linux目录结构:

    切换目录:

    新建目录:

    ls 查看当前目录内容
    ls -ld /data 查看/data目录详细内容

    绝对路径:从根开始的路径

    C:Program Files (x86)Microsoft Office

    从根开始的路径就是绝对路径

    绝对路径:/etc/sysconfig/network-scripts/ifcfg-eth0

    相对路径:不从“/”根开始,而是把当前所在路径当作根,目标文件或目录距离当前路径的“距离”。

    二、文件操作

    创建文件:

    为zcl.txt 增加内容“I am a student"

    cat 表示查看文件内容; echo "xx" >> file 表示追加文件内容

    windows复制粘贴:

    • ctrl+c
    • ctrl+v

    Linux下:
      复制====>copy===>cp:将/data目录下的zcl.txt文件复制到tmp/目录下。注意:如果没创建tmp目录需先创建。我这里原本的tmp目录已经有zcl.txt文件,故会提示说是否需要覆盖原来的zcl.txt文件。

    小结:

    cp 复制文件或目录(默认不能拷贝目录)
    -r:递归,复制目录,目录及其子孙后代
    -p:复制文件同时保持文件属性不变,
    -a ===-pdr

    把/data 移动到 /root 目录下面:

    mv /data /root
    小结
    /data ===> /data 及/data下面的子孙后代
    /data/===> /data下面的子孙后代
    注意:这里目录的移动,如果想仅仅移动目录下面文件而不移动目录使用mv /data/* /root 即可

    递归删除

    rm -rf data 删除目录必须加-r,-f免提示 删除data目录及目录下的所有东西
    注意:此命令非常危险,建议不用,采取移动mv的删除方式(在linux跟目录下建立一个垃圾箱文件夹,想删除的都mv过来)
    请熟记,运维人员的职责:安全稳定高效

    小结:

    rm 无后缀只能删除文件
    -f 免提式强制删除
    -r 删除目录(递归删除目录下所有东西)
    #慎用
    替代方法:mv 移动文件或目录

    通过find命令提高删除的准确度

    find data -type f -name "chensiqi.txt"
    -type:查找的目标的类型
    f : 文件类型
    -name + 文件名:文件的名字
    第一步:先找出文件
    第二步:再删除文件

    管道命令:xargs
    之前的删除文件操作还可以这么处理:

    生产环境下,运维人员如何最大限度的避免误删除文件

    1. 修改或删除数据前请务必备份,最好有异地备份,修改配置等先提交版本管理系统再发布到线上
    2. 运维新手删除应使用mv命令替代rm命令,无用的文件不要着急删除,而是移动到回收站/tmp里观察一段时间可以通过设置别名等手段屏蔽rm,这样一旦直接用到rm命令就是意识到(当然真想用有手段可以越过别名)。
    3. 如果非要删除数据,还可以find结合rm替代单纯的rm,包括设定定时任务等动作执行清理。
    4. 如果非要使用rm删除,请尽量先切换目录再删目录下的数据,能不用通配符就不用通配符
    5. 如果必须要使用rm -rf 命令强制且递归删除文件夹,最后的避免错误方法就是要用tab去不全文件夹名字,不要手敲任何字符,防止误删除
    6. 如果删除的不是目录,就不要用rm -rf,采用最小化的方法rm -f即可,甚至重要的少量文件,可以不用-f,以获得确认删除提示信息

    总结:

    a,删除数据后,多数情况是可以恢复的,但会影响业务
    b,例如:需要停机恢复,且数据丢了,较长时间用户访问不了对应数据了
    c,恢复工具诸如ext3grep等
    d.事情发生前未雨绸缪永远比发生了在解决好得多
    e,养成规范,专业科学的运维习惯,运维流程是避免当黑锅侠的关键!

    企业面试题

    问:linux下删除一个目录下的所有文件,但保留一个指定文件

    方法一:find(最重要必须会)

    ! 取反,也就是说删除目录下文件类型为f的所有文件但是排除-name为 file9 的文件

    方法二:grep过滤内容:通过find查出所有目标文件夹下的文件内容后,通过管道 | grep 过滤-v排除掉目标内容后再 | xargs 将内容传递给rm命令进行删除

    方法三:命令嵌套命令
    此方法只适用于删除当前目录下的内容

    ``符号(tab键上边的~符号不按shift输入就是)它的意思是取符号内的命令的执行结果。本方法的意思就是rm删除掉``符号内的命令的执行结果的内容 

    退出到上级目录删除data目录:

    cd /root/data 进入目录
    cd .. 退出当前目录回到上一级目录
    find 找出目标data目录
    | xargs 传递给rm删除

    特殊符号

    “.”(点):表示当前目录/路径
    “..”:表示当前目录的上级目录
    “#” :表示注释(linux会无视,略过)

  • 相关阅读:
    左萧龙(LZ)个人博客
    不同样式的计数
    CSS径向渐变radial-gradient
    优秀的Android资源
    读取csv格式的数据
    php 获取URL 各部分参数
    phpstorm查找替换文件中的变量
    PhpStorm 快捷键大全 PhpStorm 常用快捷键和配置
    phpstorm 代码注释后,撤销某段代码的注释的,快捷键是什么?
    关于thinkphp5手动抛出Http异常时自定义404页面报错的问题
  • 原文地址:https://www.cnblogs.com/0zcl/p/6778334.html
Copyright © 2011-2022 走看看