美文网首页
shell常用命令

shell常用命令

作者: leobupt | 来源:发表于2018-11-12 19:34 被阅读0次

    1. 目的

    环境: Ubuntu16.04
    梳理

    2. 系统相关

    2.1 设置root用户密码

    1. 开机进入桌面,ctrl+alt+T打开终端
    2. 在此处输入:sudo passwd root
    3. 设置root密码
    4. 进入root账号: 终端上输入:su  回车键 , 然后输入设置的新密码,即可
    

    2.2 重新添加系统睡眠选项

    1. 先检查是否有交换分区(swap),如果有确认交换分区至少和实际可用内存一样大。
    2. 按Ctrl+Alt+T开启终端或者Dash搜索开启终端
    3. 运行sudo pm-hibernate,输入密码后回车。
    4. 如果休眠测试无法正常工作,就说明你的计算机无法进行休眠。
    5. 如果休眠测试可以正常工作,进入root权限,新建文件/etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla添加以下内容后保存
    [Re-enable hibernate by default in upower]
    Identity=unix-user:*
    Action=org.freedesktop.upower.hibernate
    ResultActive=yes
    
    [Re-enable hibernate by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
    ResultActive=yes
    
    6、关闭所有程序,重启计算机。
    7、重启后,菜单中就有休眠选项了。
    

    3. 编码

    3.1 base64

    场景1: 把字符按照base64编码
    echo -n 哈哈 | base64 
    # 结果如下:
    5ZOI5ZOI
    
    场景2: 把字符按照base64解码
    echo -n 5ZOI5ZOI | base64 -d
    # 结果如下:
    哈哈
    

    4. alias与export

    尽量使用export
    alias , 使用which 命令找不到, 但是export可以
    

    5. 空间大小

    • df -h //查看磁盘各分区大小、已用空间等信息
    • du -sh filename //查看文件夹大小
    • du -sh 查看当前目录以下搜索文件和子目录大小

    6. 后台运行

    • 场景: 比如启动ipython notebook等,不希望打印log, 希望启动完后退出log输出;
    # 命令后面加& 
    ipython notebook &
    

    7. watch

    • 场景: 可以检查, watch是一个非常实用的命令,可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化,比如 tail 一个 log 文件,ls 监测某个文件的大小变化,看你的想象力了
    • watch命令

    8. rsync | scp

    • 两个 命令都是传送文件, 但前者可以只传增量变化的文件, 跳过两次不变的文件, 更强大
    • rsync -av yourname@IP:sourcePath DesPath

    9. diff

    • 场景: 比较两个文件不同地方
    diff file1 file2
    # 如果想看的更清楚, 共同和不同的都打印
    vimdiff file1 file2
    

    9.1 meld

    • 场景: 找出两个文件不同的地方, 可视化的界面, 非常类型git compare.
      meld file1 file2

    10.vim: 大小写替换

    vim中大小写转化的命令是
    gu或者gU
    形象一点的解释就是小u意味着转为小写;大U意味着转为大写.
    # 1、整篇文章大写转化为小写
      打开文件后,无须进入命令行模式。键入:ggguG 
    
    解释一下:ggguG分作三段gg gu G
    gg=光标到文件第一个字符
    gu=把选定范围全部小写
    G=到文件结束
    # 2、整篇文章小写转化为大写
      打开文件后,无须进入命令行模式。键入:gggUG 
    
    解释一下:gggUG分作三段gg gU G
    gg=光标到文件第一个字符
    gU=把选定范围全部大写
    G=到文件结束
    # 3、只转化某个单词
    guw 、gue
    gUw、gUe
    这样,光标后面的单词便会进行大小写转换
    想转换5个单词的命令如下:
    gu5w、gu5e
    gU5w、gU5e
    # 4、转换几行的大小写
    将光标定位到想转换的行上,键入:1gU 从光标所在行 往下一行都进行小写到大写的转换
    10gU,则进行11行小写到大写的转换
    以此类推,就出现其他的大小写转换命令
    gU0        :从光标所在位置到行首,都变为大写
    gU$        :从光标所在位置到行尾,都变为大写
    gUG        :从光标所在位置到文章最后一个字符,都变为大写
    gU1G      :从光标所在位置到文章第一个字符,都变为大写
    

    11. linux权限管理

    12. date

    # 给定日期字符串, 转换显示格式, 包括可转为时间戳
    date -d "dateString"  +"formatString"   
    $ date -d "19700101 08:00:00" +%s 
    0
    
    # 给定时间戳, 转换对应日期字符串
    date -d @timestamp  +"formatString" 
    $ date -d @0 +"%Y%m%d %H:%M:%S"
    19700101 08:00:00
    
    # 给定日期进行加减
    date -d -ndays +"formatString"
    $ date -d -4days +"%Y-%m-%d"
    2018-02-01
    

    13. dirname

    使用dirname在shell脚本中获取当前脚本文件所在的绝对路径.

    # 比如: 找出python对应的文件绝对路径
    dirname $(which python) 
    # 找出本地安装sbt的路径
     echo $(dirname $(dirname $(readlink -f $(which sbt))))
    

    14. xargs

    # 针对id_file, 每行在file1中做grep操作
    cat id_file
    123
    233
    245
    
    cat id_file | xargs -n1 -I {} grep {} file1 
    # 批量转化时间戳为日期
    # 比如, 文件file每行存放时间戳, 如下:
    1539912736
    1538992708
    1538992479
    # 使用如下命令, 批量转化:
    cat file | xargs -n1 -I {} date -d @{} 
    

    相关文章

      网友评论

          本文标题:shell常用命令

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