4、常见命令操作(详细)

先介绍几个属性

    -f force强制
    -i interactive 提示
    -p 创建目录
    -r 删除目录

介绍几个符号

    ~   用户的家目录
    -   上次用户目录

    0   标准输入
    1   标准输出
    2>  标准错误输出
    2>&1  把标准错误重定向到标准输出(也可以用>&)

详细解读命令

1、mkdir创建目录
    mkdir 一个目录
    mkdir -p 多层目录
2、touch 摸
    创建不存在的文件
    若文件存在,则改变文件的时间戳
3、cat
    查看文件的内容 cat oldboy.txt
    输入重定向-->多行写入文件  cat >oldboy.txt   cat >>oldboy.txt
    将几个文件合并为一个文件  cat f1.txt f2.txt > file.txt  cat f1.txt f2.txt >> file.txt
【补充:tac】
    行反转内容输出
4、ls  查看路径
    ls -a 所有文件(隐藏文件也显示出来)
    ls -l 文件的详细信息也打印出来
    ls -s  文件大小
5echo
    打印到屏幕
    写入到文件echo "ABCD" > oldboy.txt   echo "ABCD" >> oldboy.txt
6、vi、vim编辑器
    :set nu   显示行号
    :w write
    :q quit
    行号+gg  定位当某一行
    gg  到文件头部  GG当文件尾部
    dd  删除当前行
    yy  拷贝当前行
    p   粘贴
7、head与tail (默认显示10行)
    head -n  10 oldboy.txt   打印前10行
    head -n -10 oldboy.txt   打印除了后10行外的其他行
tail同理
【补充】
    tail可以跟踪一个文件结尾的变化
        tail -f oldboy.txt 
================================================================================================
8、复制 cp(复制目录时,加上-r,否则会失败)
提示:最常用的是-a,因为-a包含-r,-p,-d
    cp f1.txt  /else/f2.txt  如果/else/文件下没有f2.txt,则将f1.txt复制到/else/文件下,并改名为f2.txt ;如果/else/文件下有f2.txt,会提示是否覆盖。
    cp -r /data1  /else/  将目录data1复制到/else/下
9、删除 rm  remove(删除目录时,加上-r,否则会失败)
    -f 强制删除,不会提示
    -i 提示是否删除
    -r 删除目录
10、移动、改名 mv(移动目录时,不用加-r)
提示:移动不用任何属性
    mv f1.txt f2.txt   如果当前目录下没有f2.txt,执行的操作是:把f1.txt改名为f2.txt
目录也同理:
    mv dir1 dir2  将目录dir1改名为dir2
================================================================================================
【属性介绍】
    -r 目录
    -v 不包含  没有-v表示包含
    -n 行号

【符号介绍】
[ ]  用来框出来一个范围,例如:[0-9]  [a-z]  [a-zA-Z]  //注意:中间用的是 - ,而不是 ..
^两种含义
    [^]  ^在[] 内,表示反向选择
    ^[]  ^在[] 外,表示以_____为开头
    ^[^  ]  表示,查找以[^  ]为开头的内容

三剑客
1、grep 文件的搜索工具  “过滤”
-E(同时过滤多个字符串)
i(忽略大小写)
(1) 
    grep 'test' d*  在文件名为d*下搜索字符串为'test'的并打印出来
    find /data -name "da*" -type f | xargs grep 'ee'  搜索到多个文件,在查找文件中(而不是目录中)有关键字为'ee'的项,并打印输出
(2)
    grep -v 'test' oldboy.txt 不包含'test'的输出
(3)
    grep [^0-3] oldboy.txt   查找oldboy.txt中不包含0-3的内容
    grep ^[^0-3] oldboy.txt  查找oldboy.txt中不以0-3为开头的内容
(4)行首^    行尾$
    查找空白行  grep '^$' oldboy.txt
    查找以.结尾 grep '\.$' oldboy.txt
(5).一个元素    _*表示0个_元素或者0个以上的_元素
例子
    grep 'QQQ*' oldboy.txt  查找两个或者两个以上的包含Q的内容(至少两个Q)
    grep g..d oldboy.txt   g和d中间只有两个任意元素
    grep g.*d oldboy.txt   g和d中间有任意个数的任意元素
    grep g'[0-9][0-9]*' oldboy.txt  g和d中间有任意个数的数字元素

2、sed 管道命令 “行”   “取各种内容”

链接:http://blog.csdn.net/improve100/article/details/50956173

查找   p 输出指定内容,但默认会输出2次匹配的结果;因此使用-n取消默认输出
增加   a 追加文本到指定行后   i 插入文本到指定行 
删除   d 删除指定的行  打印文件内容但不包含oldboy
替换   s###g  c 用新行取代旧行1)查找
    sed -n '1~2p' person.txt   说明:取行就用sed,最简单
    sed -n '/CTO/p' person.txt   按字符串查询
混合查询
    sed -n '2,/CFO/p' person.txt
    sed -n '/feixue/,2p' person.txt 特殊情况,前两行没有匹配到feixue,就向后匹配,如果匹配到feixue就打印此行
(2)新增 a  i  
单行增加
    sed '2a 106,dandan,CSO' person.txt   a 追加文本到2行后
    sed '2i 106,dandan,CSO' person.txt   i 插入文本到指定行2行
多行增加  无非就是有\n
    sed '2a 106,dandan,CSO\n107,bingbing,CCO' person.txt


(3)删除  d
    sed '1,2d' oldboy.txt   除去oldboy.txt中1-2行的内容,把其他的输出
    sed '10,$d'  oldboy.txt  除去oldboy.txt中10-末尾的内容,并把其他的内容输出
    sed '/oldboy/d' person.txt  删除包含"oldboy"的行
(4)替换  
c :c 用新行取代旧行
    sed '2c ABCDEFG' oldboy.txt  用新行ABCDEFG替换第2's#▇#▲#g' :字符串替换
    sed 's#ABCD#abcd#g'  oldboy.txt   替换,只是替换后输出,并没有改变文件的内容

练习题:

题目1、如何过滤出已知当前目录下的所有一级目录(提示:不好喊oldboy目录下面目录的子目录以及隐藏目录,即只是一级目录)
    ls -l 中以d开头的就是目录
答1ls -l . | grep ^d    .表示当前目录,d表示目录
    正则表达式:
        ^表示以____开头,如:^d
        $表示以____结尾,如:oldboy$
        ^$表示空行
        [^]:^在[]里面表示“非”
或者
    ls -dl */
    ls -l | sed -n '/^d/p'   -n取消默认输出  p打印
答2ls -F . | grep /$   ___$表示以什么结尾
    注:ls -F输出结果后边以/结尾的是目录 
答3:
    find . -type d -maxdepth 1 -mindepth 1 
小结:
(1)主要是ls的相关参数的实战应用
ls的参数:
    -p -F 在每个文件名后附上一个字符以阐明该文件的类型,“*”表明可执行的一般文件; “/”表明目录; “@”表明符号连接; “|”表明FIFOs; “=”表明套接字(sockets)。
    -d 目录directory
    -l 列出文件的具体信息。
    -i 输出文件的 i 节点的索引信息。
(2)共给出了7中方法,当前能熟练记住前两中ls的用法即可,find也是个重要命令
(3)本文用到的find的参数有: -type , -name , ! 非

题目2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值