• Linux基础命令(2)


    Fskey servername

    保存登陆信息,下次登陆不必再输入密码

    Fskey  username@192.168.0.2
    

    scp命令

    说明

    用于2个 linux 主机间复制文件

    格式:

    scp  [可选参数]  file_source  file_target
    

    示例

    从“本次”复制到“远程”:

    复制文件:scp  local_file_path  username@192.168.0.2:remote_folder_path
    复制目录:scp  -r  local_file_path  username@192.168.0.2:remote_folder_path
    

    从 “远程” 复制到 “本地”:

    复制文件:scp  username@192.168.0.2:remote_folder_path  local_file_path
    复制目录:scp  -r  username@192.168.0.2:remote_folder_path  local_file_path
    

    grep 命令

    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

    示例

    在文件4.txt中查找含student的行

    grep  student  4.tx
    

    在所有以d开头的文件中查找含test的行

    grep 'test'  d*
    

    在aa.js、bb.js、cc.js文件中查找含test的行

    grep 'test' aa.js bb.js cc.js
    

    从当前文件夹的所有子文件(包含子目录中的文件)中查找含test的行

    grep 'test' . -r
    

    示例:-E(开启正则查找)

    查找含“template/”或“static/”的行

    grep -E "template/|static/"  test.text
    

    查找含“template/|static/”的行

    grep "template/|static/"  test.text
    

    查找含“$”的行

    grep "\\$" test.text
    

    find 命令

    在指定目录下查找文件,查找的范围包含了“指定目录”的子目录。

    格式

    find pathname -options
        * -print: find命令将匹配的文件输出到标准输出
        * -type:
            * b - 块设备文件。
            * d - 目录。
            * c - 字符设备文件。
            * p - 管道文件。
            * l - 符号链接文件。
            * f - 普通文件。
        * -name:按照文件名查找文件。
    

    示例

    列出当前用户目录(/home/username/)下的所有文件,下面两句命令作用相同

    find $HOME -print
    find ~ -print
    

    在当前目录下的所有.svn文件夹

    find  .  -type  d  -name  '.svn'
    

    在当前目录下查找文件名包含ent的文件

    find . -type f -name '*ent*'
    

    echo 命令

    向屏幕上打印输出;或将内容输出到某一文件中。

    示例:

    打印222

    echo '222';
    

    将222“输出”到log.txt,会替换到原文件里的内容。

    echo '222' >log.txt;
    

    将222“追加”到log.txt

    echo '222' >>log.txt;
    

    清空log.txt

    echo  >log.txt
    

    逐行读取t.js的文件,追加到Log.txt中

    while read line; 
    do 
        echo $line >>log.txt;
    done <'t.js'
    

    xargs 命令

    大多数 Linux 命令都会产生输出:文件列表、字符串列表等。
    但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?使用xargs。

    示例:

    在当前目录下查找“.svn”文件夹,并产出这些文件夹。“find”命令查找,然后将查找出的内容传给后面的“rm”命令

     find . -type d -name ".svn" | xargs rm -rf;
    

    file 命令

    辨识文件类型,有些类似windows中的"查看->详细信息列表"

    示例

    列出当前目录下所有“文件”和“文件夹”的信息

    file ./*;
    

    列出当前目录下“docs”文件夹的信息

    file ./docs;
    

    cat 命令

    输出,类似于echo;但其可以对输出的内容进行加工

    参数:

    n 或 --number 由 1 开始对所有输出的行数编号
    -b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
    -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
    v 或 --show-nonprinting
    

    示例:

    textfile的内容为:

    aaa
    
    bbb
    ccc
    

    把 textfile1 的档案内容加上行号后输入到 textfile2 这个档案里

    cat -n textfile1 > textfile2;
    
    textfile2的内容为:
         1  aaa
         2
         3  bbb
         4  ccc
    

    把 textfile1 的档案内容加上行号(空白行不加)之后将内容附加到 textfile2 里。

    cat -n textfile1 > textfile2;
    
    textfile2的内容为:
         1  aaa
    
         2  bbb
         3  ccc
    

    把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

    cat -b textfile1 textfile2 >> textfile3
    

    此为清空/etc/test.txt档案内容,使用echo不能完全清空文件内容,文件仍有一个空行符。

    cat /dev/null > /etc/test.txt
    

    cat 也可以用来制作 image file。例如要制作软碟的 image file,将软碟放好后打

    cat /dev/fd0 > OUTFILE
    

    相反的,如果想把 image file 写到软碟,请打

    cat IMG_FILE > /dev/fd0
    

    /dev/null

    把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.

    示例

    禁止标准输出,原本要输出的内容,现被写入到"/dev/null"中,从而不显示任何内容

    cat filename >/dev/null;
    

    带有编号的示例

    • 2 # 如果"$filename"不存在,将不会有任何错误信息提示
    • 3 ...
    • 还有其他的编号

    禁止标准输出和标准错误的输出

    cat filename 2>/dev/null >/dev/null
    

    tar 打包

    所谓打包,就是把多个文件(夹)组成一个集合。linux下只能对一个文件进行压缩,所以如果想对多个文件进行压缩的话,就必须先打包。

    格式: tar -参数 压缩后的文件名 需要压缩的文件

    参数

    • -c :建立一个压缩文件的参数指令(create 的意思);
    • -x :解开一个压缩文件的参数指令!
    • -t :查看 tarfile 里面的文件!
    • 特别注意,c/x/t 仅能存在一个!因为不可能同时压缩与解压缩。
    • -z :是否需要用 gzip 压缩?
    • -j :是否需要用 bzip2 压缩?
    • -v :压缩的过程中显示文件!
    • -f :使用档名,请留意,f后面紧跟归档的文件名

    gzip 压缩

    对打包后的文件进行压缩

    示例:打包和压缩

    压缩

    将整个 "/etc" 目录下的文件全部打包成为 "/tmp/etc.tar"

    tar  -cvf  /tmp/etc.tar  /etc;      # 仅打包,不压缩
    tar  -zcvf  /tmp/etc.tar.gz  /etc;  # 打包,并以 gzip 压缩
    tar  -jcvf  /tmp/etc.tar.bz2  /etc; # 打包,并以 bzip2 压缩
    

    解压和解包

    gzip -d test.tar.gz;    # 将“test.tar.gz”解压为“test.tar”  
    tar  -xf  test.tar;     # 将“test.tar”的包解开
    

    上述两步骤可以合称为:

    tar -zxvf .tar.gz;    # 解开一个gizp压缩的包
    tar -xvf  .tar;       # 解开一个tar包
    

    awk 命令

    awk是一种用于处理数据和生成报告的编程语言。一般的使用格式是:

    awk '{pattern + action}' {filenames}
    

    文件test.txt的内容如下,相应的分割符号为两个空格

    aa2  bb3  cc4
    dd  ee  ff
    gg  ee  hh
    

    执行命令:awk '{print $2}' test.txt,该命令的“pattern”部分为空,就是匹配所有行,输出结果如下

    bb3
    ee
    ee
    

    执行命令:awk '/e/ {print $2}' test.txt,该命令会匹配含有字符"e"的行,输出结果如下

    ee
    ee
    

    综合示例

    svn st | grep -E 'template/|static/' | grep -E 'M|?' | awk '{print $2}'
    

    上述命令的功能是,筛选出当前版本库内“template”和“static”两个目录下修改的文件,并打印出这些文件,详解:

    * 第一部分:显示文件和子目录的状态
    * 第二部分:筛选出含template/或static/的行
    * 第三部分:筛选出含M或?的行
    * 第三部分:只输出文件的地址列
    
  • 相关阅读:
    [转帖]Mootools源码分析03 Hash
    iphone的手势与触摸编程学习笔记
    怎样使项目中的cocos2d默认模板支持ARC内存管理
    xCode4.2下添加TableViewController会出现”Prototype cells“警告
    关于31天App教程示例中一些因SDK版本而出现的问题
    带你掌握二进制SCA检测工具的短板及应对措施
    HDZ城市行深圳站|AIoT时代,如何抓住智联生活的战略机会点?
    分析内部运行机制,教你解决Redis性能问题
    今天谈谈用户故事地图,不是用户故事
    云图说|ModelArts Pro:让AI开发更简单
  • 原文地址:https://www.cnblogs.com/rainman/p/2179304.html
Copyright © 2020-2023  润新知