美文网首页
Linux常用命令笔记

Linux常用命令笔记

作者: PennLi | 来源:发表于2017-03-29 09:40 被阅读18次

    文件命令

    cd - 切换为之前目录
    wc -l -w file
    cmd --help
    apropos keyword
    apropos cpu >
    type foo    检查命令类型,是否已被占用
    alias foo='cd;ll;cd -'
    foo
    
    ll /etc/passwd > pw.txt (输出重定向时,>自动创建不存在的文件)
    > file (删除一个文件)
    
    cmd >> file 文件尾部追加,不存在则创建之
    
    0--标准输入文件
    1--标准输出文件
    2--标准错误文件
    cmd 2> err.txt
    cmd &> outerr.txt 
    cmd 2> /dev/null
    
    cat f1 f2 > f3            文件合并
    $ cat           (等待键盘输入)
    $ cat -ns file      删除空行,且对行编号
    ctrl-D      (文件触底,end of file)
    
    cmd | tee file | grep pattern
    
    echo a{A{1..2},B{3..4}}
    aA1 aA2 aB3 aB4
    
    mkdir {2015..2016}-0{1..9} 
    2015-01 
    2015-02
    2015-03
    
    ls -l $(which cp)
    ls -l `which cp` 反引号` 等同于 $,作为命令替换
    ls -l "my test.txt" 双引号""将特殊字符($ / `除外)视为普通字符
    echo "$(cal) "
    echo '$(cal)' 单引号‘’抑制所有扩展
    $(cal)
    
    echo "money \$:5" 反斜杠阻止双引号内特殊字符($ ! & 空格等)扩展
    

    命令行键盘编辑技巧

    光标移动

    ctrl-A 光标到行首
    ctrl-E 光标到行尾
    CTRL-F 前移一个字符
    CTRL-B 后移一个字符
    ALT-F 前移一个字
    ALT-B 后移一个字
    

    文本编辑

    ctrl-D 删除字符
    ctrl-T 前字符替换
    Alt-U 大写转换
    

    剪切复制

    ctrl-K 剪切光标到行尾
    ctrl-U 剪切光标到行首
    ALT-D 剪切光标到词尾
    ALT-Backspace 剪切光标到词首
    ctrl-Y 复制kill-ring缓冲区到光标
    

    Tab命令自动补齐
    ls l(Tab)---ls log

    !88 --执行history中第88行命令
    !! 执行history最后一行命令
    
    id
    cat /etc/passwd
    cat /etc/group
    
    $ su -c 'command'
    sudo与su区别:
    执行有限条指令;
    sudo无需输入root密码,只输用户密码;
    不启动新shell环境,不加载另一个用户环境
    

    进程

    sleep N?
    ps  只显示当前会话终端进程
    ps x  显示所有进程
    sort命令内部排序机制
    ps aux
    gedit &   后台运行进程,ctrl-c无法中断
    jobs        查看终端所有作业
    fg %jobid       进程回到前台运行
    bg %jobid       进程回到后台
    
    ctrl-z  暂停前台进程
    kill [-signal] PID…
    kill -SIGHUB/1 PID/%jobid      前台程序终止,后台进程重新初始化
    kill -INT PID/%jobid           中断信号,终止程序
    killall [-u user] [-signal] name…       发送信号给多个进程
    pstree                         进程树
    vmstat 5                       每5s输出资源使用快照,mem,swap,IO
    free -m
    du
    tail -f /var/log/messages                    实时检测系统的好方法
    

    存储

    mount
    umount
    du -sh
    df
    uptime
    

    变量显示

    set    显示环境变量/shell变量
    printenv   USER  仅显示环境变量USER
    echo $USER
    PATH=$PATH:$HOME/bin
    export PATH             保证shell子进程能使用PATH变量
    gedit file
    

    VIM命令

                shift ^     本行开头
                shift $         本行末尾
                W       下一个单词处
                B       上一个单词处
            number-shift-G  移到第number行
                shift G         至文件最后一行
    

    查找替换

    :%s/word1/word2/gc 全局替换,%指代^~$
    复制/粘贴/删除

    编辑模式—插入

    外部命令模式

            :  n            切换到下一文件
            :N                  切换到上一文件
    

    软件安装

    RPM安装

    rpm -qa  package    列出所有安装软件   q-query  a-all
    rpm -q   packname     查询pack是否安装
    

    源码安装

    wget  src
    tar zxvf src.tar.gz
    ./configure
    make
    #make install
    

    网络

    ping baidu.com
    netstat -ie             显示网卡信息
    IP地址?
    子网掩码?
    

    文件查找

    locate   fname          以文件名查找,无法查最新
    find ~ [-print]     |  wc -l             计算行数
    find ~ -type f  -name   “*.jpg”   -size +1M  |    wc   -l
    find ~ \(-type f -not -perm 0600 \)  -or \( -type d -not -perm 0700 \)          and默认,or显式
    find ~ -type f  -name   “*.jpg”    -print/delete/ls
    find ~  -type f -name   “*.jpg”       -exec   ls -l   '{}'   ';'          每搜到一个执行一次命令
    find ~  -type f -name   “*.jpg”       -exec   ls -l   '{}'   '+'          结果集只执行一次命令
    find ~  -type f -name   “*.jpg”      -ok   ls -l   '{}'   ';'       {}代表当前路径,-ok交互式执行自定义操作
    find ~  -type f -name   “*.jpg”  -print  |  xargs   ls -l       xargs处理stdin信息并转化为命令输入参数表
    find ~  -type f -name   “*.jpg”  -print0  |  xargs  --null  ls -l        以空字符分隔参数
    

    归档备份

    压缩解压

    gzip fname
    gzip -tv f.gz     检查完整性/显示详细信息
    gunzip fname
    zcat f.gz | less        查看压缩文件内容
    bzip2同gzip      高压缩低速度
    linux中gzip>bzip2>zip(用于与windows交换文件)
    

    磁带归档命令tar

    tar mode[options] pathname…          以 相对路径 处理处理 文件名路径
    mode:
    c   create
    x   extract
    r   apppend
    t   list the contents of an archive
    tar cf file.tar  path
    tar tf file.tar
    tar tvf file.tar
    tar zxvf  file.tar
    
    find ~ -name 'file-a'  |  -exec tar rf file.tar '{}' '+'
    
    find ~ -name 'file-A' | tar czf play.tgz -T -           
    (1) -T  tar命令从文件(此处为stdout文件)中读取文件路径名列表,而不是从命令行
    (1) -  代表标准输入输出stdin/stdout文件(这里是stdout文件,即屏幕所看到的内容)
    (2) find默认action为-print
    (3) find play -name 'file-A' | tar czf play.tgz -T file.list
    

    cat file.list
    ./.profile
    ./.bashrc
    ./dbootstrap_settings
    ./usr.include.txt
    ./.viminfo

    Regular Expresstion

    支持命令find locate vim less

    grep [options]  regex   file…            #查找匹配行
    -i      忽略大小写
    -v          输出不匹配行
    -h      不输出文件名,只输出匹配内容
    

    元字符

      1. BRE基本正则表达式元字符:( )^ $ . * (\为元字符)

    • 2.ERE扩展正则表达式元字符: +-*\ ()[]{} ^$ .| ? (' '括起避免扩展,\为文字字符)

    grep -h '^zip' file
    zip1
    zip2

    grep -h 'zip$' file
    1zip
    2zip

    grep -h '^zip$' file
    zip

    grep -Eh '^(bz|gz|zip)'   file
    匹配电话号码(nnn)nnn-nnnn或nnn nnn-nnnn表达式:
    grep -E ===> egrep              扩展REG
    egrep  '^\(?[0-9]{3}\)?  [0-9]{3}-[0-9]{4}$'      phone.txt                         #(,)出现0或1次
    
    find ~ -regex '.[^-_./0-9a-zA-Z].*'                     find之test选项支持regex
    locate --regex  'bin(bz|gz|zip)'  
    zgrep -El 'regex | regular expression' .                  zgrep对压缩文件进行搜索  
    

    文本处理

    排序

    sort    -t   ';'    -k   3.7nbr    -k   4.1nbr  file     |  uniq | head
    t为指定分割符;
    -k 3.7nbr       第3个字段第7字符为关键字,忽略开头空白(b),逆序(r),数字排序(n)  
    uniq只对已排序文件有效
    ^I – 制表符Tab
    

    截断

    cat -A
    cut -d ':'  -f 1  /etc/passwd | head
    paste data.txt version.txt
    

    比较

    cat f1 f2       逐行比较已排序文件f1,f2
    diff -c   f1  f2    上下文格式输出,+多,-少
     
    diff -u f1 f2
    
    diff -Naur fold fnew > diff_file
    patch < diff_file
    
    -N, --new-file:treat absent files as empty
    -a:  treat all files as text
    -r : recursively compare any subdirectories found
    

    替换删除tr

    echo “i love linux” | tr a-z A-Z        替换
    tr -d '\r' < dos_file > unix_file       删除dos文件回车符\r
    sed 's/old/new/g   
    sed -n '1,5p' file
    nl text       对文本行编号

    相关文章

      网友评论

          本文标题:Linux常用命令笔记

          本文链接:https://www.haomeiwen.com/subject/tvheottx.html