zoukankan      html  css  js  c++  java
  • 《Linux命令行手册》学习笔记

    粗略过了一遍,记录一下方便自己查询。 

    利用cat连接文件

    a.jpg.001      a.jpg.002

    cata.jpg.* > a.jpg

    利用cat创建文件

     

    cat < 文件 与 cat 文件  的效果一样。

     

    使用less 来分页显示

    上下 jk,首尾Gg,翻页pageup,pagedown

     

    配合 sort -r 倒序

     

    head , tail

     

    $((expression))

    expression 是数值或者算术操作符

     

    花括号扩展

     

    命令替换

     

    引号 

    双引号

    echo的时候 加上双引号会将引号内容当做一个参数。

    因此 会使得echo 的单词分隔失效。此外路径名、波浪线、花括号扩展也会失效。

    但是算数扩展和命令替换还会生效。

     

    单引号

    使所有扩展都失效

     

    转义字符

    经常用于配合双引号使用

    也用于 之类 , 表示制表符等

    单引号中的只是一个简单的字符

     

    echo 命令带上-e 就能解释转移字符序列

     

     

    history 与 !

    history  显示出 行号 命令

    可以通过 !行号 来执行

     

    shell如何寻找命令

    当输入ls的时候, shell会寻找 PATH中目录列表

     

    而 PATH 通常定义在/etc/profile中

     

    最后一行 export 将环境导出到随后要运行的程序中

    激活我们的修改

    可以在.bashrc中添加我们的别名 如 alias ll = 'ls -l --color=auto'

    只有在启动shell的时候才会读取.bashrc 之类的文件, 因此,修改此类文件后要关闭会话并重新打开的时候才会生效。 可以使用source .bashrc 强制生效

    vim在编辑多个文件

    vim a.txtb.txt

    :n    ,  :N 分别可以跳到下一个、上一个文件。

    :buffers 可以查看所有在编辑的文件

    :buffer  数字  可以跳到对应文件

    vim插入整个文件

    :r a.txt

    :r表示读取

    带时间的提示符

    [13:31root@VM_0_7_centostest]$PS1="[Au@h W]$"

    然后保存在/etc/profile或者~/bashrc中

    颜色

    修改  vim ~/.bash_profile

    PS1="[u@hW]33[1;32mA33[1;0m $ "

    33[1;32m表示字体淡绿色    33[1;0m表示字体正常色

    范围

    字体颜色33[1;30m  黑色 到 33[1;37m 白色

    背景色33[0;40m  黑色 到 33[0;47m 白色

    echo -e "33[背景;字体颜色m 字符串33[0m"

    eg : echo -e"33[30m 黑色字 33[0m"

    find

    查找 路径下 名称为 某个前缀 大于30M 的文件

     

    action

     -exec command {} ;

    这里{} 是指当前路径名, ;是必须的结尾

    -ok 会在执行前询问

     

    多次执行

     

    xargs--show-limits获取最大参数数量

    $xargs --show-limits

    Your environmentvariables take up 2301 bytes

    POSIX upper limit onargument length (this system): 2092803

    POSIX smallestallowable upper limit on argument length (all systems): 4096

    Maximum length ofcommand we could actually use: 2090502

    Size of commandbuffer we are actually using: 131072

    快速创建类似的目录/文件

     mkdir -p testdir/dir-{00{1..9},0{10..99},100} 

    touchtestdir/dir-{00{1..9},0{10..99},100}/file-{a..z}

    {00{1..9},0{10..99},100}   理解为 001-009 ,010-099,100三段

     

     

    -regex 正则查找文件

     

    stat : ls的加强版

    gzip,gunzip , bzip2,bunzip2

    bzip更慢质量更高

    gunzip -c  xx.gz |less 查看

    zcatxx.gz |less

     

    tar归档

    tar -zcvf  归档并压缩  gzip

    tar -zxvf    解压   gzip

    zip压缩+归档,主要用于与windows交互

    rsync同步

    rsyncsource destination

    source 和 destination必须有一个是本地

    远程 由 rsync://[user@]host:[:port]/path指定

     

    $$ 为当前bash进程

    可见 , 当前进程 运行了子程序

     

    grep

     

    -n 显示行号

    -v 不匹配

     -L 不包含的文件

    -l 包含的文件

     

    没有d 此外{ } 需要转移

     

    这里可以直接 find ./-regex "[0-9]" -ok delete  

    设置LANG

    为了防止某些错误

    vim/etc/profile

    LANG=en_US.UTF-8

    LANGAGE=en_us

    对文本的处理

    diff :逐行比较文件

    !表示被改变的行

     

    comm:逐行比较两个文件

     

    uniq 报告并忽略重复行

    只能检测相邻的行

    sort 对文本行排序

     

    -n 基于数值排序

     

    -k 对 指定的字符排序 这里 -k 2 表示对第二个字段排序

    -t 表示 指定分隔符,默认空格或者制表符

     

     

    多键值排序

    sort -k3.7nbr 0k 3.1 nbr -k 3.4nbr ls.txt

    ls.txt

    abc  123  11/25/2008

    abc2  123 10/20/2007

     

     

    path-对源文件进行diff操作

     

    打补丁后 c1变成了c2的样子

    tr 替换/删除字符

     

    删除相邻的重复

     

    sed

    替换,  2s表示只对第二行替换

     

    -n选项和p命令一起使用表示只打印那些发生替换的行:

    来自 <http://man.linuxde.net/sed>

     

    除了匹配行的其他行

     

    去掉注释

    写入文件:w命令  

    在example中所有包含test的行都被写入file里:

    sed -n '/test/w file' example

    来自 <http://man.linuxde.net/sed>

    变量

    read 来读取

     

    declare -i 声明 整数变量

                  -a 声明array

                  -r   readonly

     

     

    #、##变量内容的删除替换

    注意 从左的话 就要指定 最左端的/ ?

      从右边 就要指定最右端的 bin?

    删除匹配的内容

    #删除最短, ##删除最长

     

     

    %与%%类似。 不过是从右往左

    删除最后一个

    这里从: 到 bin止

    保留第一个

     

    /  、//替换 一个和全部

     

    new_var={old_var-default} 若old_var不存在,则default值,否则为$old_var

     

    :-    如果是空或者空字符,都为default内容

     

    new_var={old_var+default},若old_var不存在 则new_var为空,否则为default

    当为+:的时候,old_var不存在或者为空,new_var为空,否则default

    new_var={old_var=default}与 - 的区别在于,old_var是否设置。 详细参考《鸟哥的Linux》p316

    new_var={old_var?expr},若old_var不存在 则输出expr

    new_var={old_var:?expr},若old_var不存在或者为空字符串则输出expr

     

    获取字符串长度

    ${#param}

     

    字符串分片切割

    ${param:begin:end}  

     

    编码转换

    iconv -f 旧编码 -t 新编码 文件 -o 输出到新文件

    繁体转简体

    iconv -f UTF8 -tbig5 cn.txt |  iconv -f big5 -t gb2312 |iconv -f gb2312 -t utf8 -o cn2.txt

     

    简体转繁体

    iconv -f UTF8 -tgb2312 c.txt |  iconv -f gb2312 -t big5 |iconv -f big5 -t utf8 -o cn.txt

     

    格式化输出

    nl , cat -n 输出行号

     

    fold设置行长度

    连续的字符不会被切断

     

    printf

     

    ftp

    ftp ftp.gnu.org

    anonymous

    cdgnu/diction

    ls

    get xx

    bye

     

    ./configure && make && make install 编译

    ./configure 后生成Makefile

    Makefile描述了生成最后可执行程序时各部件之间的依赖关系

    make后 生成了许多-o的文件  这里是Makefile里面指定的。

     

    make clean 后清除了

     

    移除后 再make就生成了

     

    make install后 出现在/usr/local/bin中

     

    make install后的程序卸载:

    可以直接 rm $(whichxx)

     

    Makefile里有没有uninstall这一节,如果有的话,就可以用

    make uninstall

    如果没有的话,你修改一下Makefile,把cp改称rm -rf就行了

    其他

    进制

    分别为 16 2 8 10 进制

     

    位运算和 数字的三元表达式

     

    数组

     

    多个命令执行重定向

     

    进程替换

    <(list)

    list为一系列命令

     

    把awk的输出赋值到变量

    利用进程替换 

    效果如图:

     read i j <  <(echo "$(echo "123 456" |awk '{printf "%d %d
    ",$1,$2}')")
    
    echo "$i_$j"

  • 相关阅读:
    查看java代码,命令,ctrl+r
    JVM调优
    springboot线程池
    jpa
    复制java对象,jpa,save
    springboot添加切面
    gunicorn 实现 gevent 多线程
    经典算法
    python-生僻字转拼音
    HTML介绍
  • 原文地址:https://www.cnblogs.com/thewindkee/p/12873178.html
Copyright © 2011-2022 走看看