• Linux常用命令


    常用linux命令

    系统管理

    重启机器

    sudo reboot
    

    显示用户

    whoami
    

    显示主机名

    hostname
    

    查看内存使用情况

    free -h
    

    查看硬盘使用情况

    df -h
    

    查看系统时间

    date
    

    查看命令所在路径

    which <program>
    whereis <program>
    

    设置和取消环境变量

    # 设置SKIP_BFS环境变量为1
    export SKIP_BFS=1
    # 取消SKIP_BFS环境变量
    unset SKIP_BFS
    

    查看DNS

    cat /etc/resolv.conf
    # 或者
    nslookup qq.com | grep Server
    

    进程管理

    查看当前运行的进程

    top     # 实时显示进程
    ps -aux # 以BSD风格打印进程快照
    ps -ef  # 以System V风格打印进程快照
    

    后台运行进程,当前shell断开时不结束

    nohup <program> &
    

    注意,如果想要后台运行进程的同时统计运行时间,不能直接使用nohup time <program> &,会报错nohup: failed to run command 'time': No such file or directory,这是因为time其实是一个shell关键字,另外有一个外部程序也叫time,只是系统中并没有安装,想要使用shell关键字time应该如下操作:

    nohup bash -c 'time <program>' &
    

    根据进程名杀死进程

    kill -9 $(pidof <proc-name>)
    

    注意,因为用到了pidof命令,这里的进程名必须精确,可以通过top或者ps来查找精确的进程名。
    模糊匹配可用pgrep命令,参见按照名字杀死进程的四种方法

    文件管理

    文件按文件名查找

    find <root-dir> -name <正则匹配文件名>
    

    查找文件时,过滤"Permission denied"等错误信息,有两种方法,一种是使用2 > /dev/null直接清除所有错误输出,另一种是使用字符串过滤反选grep -v "Permission denied"

    显示文件类型

    file <filename>
    

    计算文件的MD5值

    md5sum <filename>
    

    树形打印当前文件夹下的文件以及子文件夹

    tree
    

    查看文件、文件夹大小

    du -hs <file/dir>
    # s是summary求和,h是以适合阅读的方式展示(如 1k,2M,3G)
    

    修改文件或目录权限

    # 如添加可执行权限
    chmod +x <filename>
    

    远程文件传输

    # 参照复制文件的 cp 命令
    scp <from-file> <to-remote-dest>   # 传输文件
    scp -r <from-dir> <to-remote-dest> # 传输文件夹
    

    返回跳转前的目录。适用于编程过程中需要写测试文件,跳转到/tmp再跳转回去之类的情况。

    cd -
    

    创建和删除软链接

    # s 是 symbolic 的意思,也就是符号链接
    ln -s <original-dir> <symbolic-dir>  # 为原始文件夹创建软链接
    rm -f <symbolic-dir>                 # 删除软链接
    

    文本文件操作

    文件拼接

    cat infile1 infile2 infileN > outfile
    

    程序同时输出到控制台和文件

    ./<program> 2>&1 | tee <logfile>
    

    文本文件内容查找

    ag <text-to-find>
    

    显示文件内容

    cat <filename>        # 打印整个文件
    head -n 20 <filename> # 打印文件前20行
    tail -n 20 <filename> # 打印文件后20行
    less <filename>       # 交互式(分页)查看文件
    

    统计文件行数

    wc -l <filename>
    # Hadoop 的入门 Hello Word 就是 Word Count!
    

    递归统计文件夹下指定文件的文件行数

    # 统计*.h头文件代码行数
    wc -l $(find . -name *.h)
    

    对比文件不同

    diff <file1> <file2>
    

    常用命令升级版

    普通命令 升级版 新特性
    top htop 彩色、鼠标交互
    cat nl 带行号

    vim操作

    进入粘贴模式

    :set paste
    

    跳到文件头部

    gg
    

    跳到文件末尾

    G
    

    跳转到指定行号处

    :<行号>
    

    文本查找。敲n查找下一处。

    /<文本>
    

    剪切

    dd
    

    粘贴

    p
    

    开发环境

    查看g++默认C++版本

    g++ -x c++  -E -dM -< /dev/null | grep __cplusplus
    

    实际上就是查看__cplusplus这个宏的值。也可以编写一个简单的程序来查看:

    #include <iostream>
    int main() {
        std::cout << __cplusplus << std::endl;
        return 0;
    }
    

    git操作

    清理垃圾回收空间

    git gc --prune=now
    

    清除git历史记录中的大文件

    git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch <path-of-remove-file>' --prune-empty --tag-name-filter cat -- --all
    

    更多可参见 Git常用操作

  • 相关阅读:
    spring相关记录
    xshell不能连接VM中的ubuntu
    MySQL 获得当前日期时间(以及时间的转换)
    struts2 action获取ajax提交数据中文乱码问题
    Write operations are not allowed in read-only mode (FlushMode.NEVER/
    在Action中以Struts2的方式输出JSON数据
    javascript 对象数组排序
    期待2015
    Mysql 导出数据库和指定表中的数据
    Ajax跨域问题
  • 原文地址:https://www.cnblogs.com/zhcpku/p/13440019.html
Copyright © 2020-2023  润新知