zoukankan      html  css  js  c++  java
  • ubuntu常用指令

    总结一下常用的linux指令。

    mark一个linux指令学习和速查的网站:http://man.linuxde.net/

    (0) su和sudo:得到root权限

    su 切换到root用户
    sudo command 切换到root用户,执行command,然后切换回当前用户
    su liaohuqiang 切换回普通用户

    (1) apt:用于安装软件包

    apt list 根据名称列出软件包
    apt show 显示软件包细节
    sudo apt install 安装软件包
    sudo apt remove 卸载软件包
    sudo apt-get check 检查依赖
    sudo apt update 更新可用软件包列表
    sudo apt upgrade 通过安装/升级软件来更新系统
    
    dpkg -i xxx.deb 运行deb程序进行安装
    sudo apt-get -f install 修复依赖

     (2) pip:用于安装python模块(不是linux里的默认指令,需自行安装sudo apt install pip)

    pip install 安装包
    pip uninstall 卸载包
    pip search 搜索能安装的包
    pip list 列出所有的已安装的包
    pip show 展示已安装包的信息,可以指定单个包名展示
    pip check 检查依赖
    pip --version 显示pip版本和位置
    pip help 查看帮助
    pip help install 查看install指令的相关option介绍

    (3) ssh和scp:主机间通信

    ssh username@ip 登录到远程主机
    scp local_file username@ip:remote_directory 复制本地文件到远程主机
    scp -r local_directory username@ip:remote_directory 复制本地文件夹到远程主机
    sudo ufw disable #关闭防火墙
    sudo ufw enable #开启防火墙
    
    sudo apt-get install vsftpd # 安装和启动sftp
    service vsftpd start

      

    (4) 压缩和解压:zip, unzip, tar, rar, unrar, 7z

    zip -r target.zip . 把当前目录以及目录下的子文件夹全部压缩
    zip target.zip 压缩当前目录,如果有文件夹则不会压缩进去(因为没有加-r)
    
    unzip source.zip -d 'folder' 解压到folder目录下
    unzip source.zip 解压到当前目录下
    
    tar -zcvf target.tar.gz sorceFoler c代表打包,z代表用gzip来压缩/解压,v详细报告处理信息,f必选并且后带文件名
    
    tar -zxvf source.tar.gz -C 'folder' 解压到folder目录下,,其中z代表gzip属性的,x代表解压,v代表解压时输出相关信息,f必须有并且放最后并且后带文件名。
    tar -xvf source.tar.gz 试了一下,少了个z也可以,效果同上
    tar -jxvf source.tar.bz2
    
    rar a -r test.rar source/  将source文件夹的内容压缩到test.rar中
    unrar x ../test.rar 解压父目录中的test.rar到当前目录
    
    apt-get install p7zip-full
    7z x file 

    (5) 查看磁盘的存储占用:du;查看文件系统的存储占用:df。

    du -s或--summarize 仅显示总计,只列出最后加总的值。
    du -c 除了显示个别文件或目录的大小外,还显示一行目录和文件的总和大小
    du -h 以K,M,G为单位,提高信息的可读性。
    du --max-depth=1 查看当前目录所有(一级)文件的大小
    
    对于-c和-s稍微区分一下
    du -sh *.mkv 显示每个mkv文件的大小
    du -csh *.mkv 除了显示每个mkv文件的大小,还显示总和,这里的s加不加都行,因为只显示普通文件
    
    df -h 以K,M,G为单位,提高信息的可读性。
    df -T x显示文件系统类型

     (6) 查找命令

    6.1 which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
    6.2 whereis 只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
    6.3 locate 配合数据库查看文件位置。linux会将系统内所有文件记录在一个数据库文件中,但是该数据库并不是实时更新。
    6.4 find 实际搜寻硬盘查询文件名称。

    find . -name '*.conf' 当前目录查找扩展名为.conf的文件
    
    updatedb 更新数据库
    locate 字符串 快速查找系统数据库中指定的内容

    whereis python
    which python

    (7) 文件权限

    chmod [ugoa][+-=][rwx] 文件名或路径 改变指定目录或文件的权限
    u代表该文件所有者,g代表该文件所有者的同组用户,o代表其它
    +代表增加权限,-代表取消权限,=代表唯一设定权限 r可读,w可写,x可执行 chmod u+x test 该文件所有者增加可执行的权限 用数字表示,规定r=4, w=2, x=1, chmod 777 test 三种用户都赋予可读可写可执行的权限 chown -R 用户名[:组名] 文件名或目录 改变指定目录或文件的所属用户,-R代表递归地改变目录下的所有文件

    (8) 文件和文本操作

    grep str /tmp/test 在文件/tmp/test中查找str
    grep ^str /tmp/test 在文件/tmp/test中查找以str开始的行
    
    ls -ld */ 显示当前目录的所有目录文件
    ls -l | grep '^d'  显示当前目录的所有目录文件
    
    wc -l 统计文件行数
    wc -w 统计单词数量
    
    ls -l | wc -l 统计当前目前的文件数量,注意要减去“总用量”那一行
    
    cp -a dir1 dir2 复制目录
    mv dir1 dir2 移动/重命名目录
    mkdir -p /tmp/dir1/dir2 创建一个目录树
    rm -f file1 删除文件
    rm -rf dir1 删除目录
    
    ln -s /real_file /soft_link  创建软链接

    (9) 进程

    ps -e 显示所有进程
    ps -f  全格式显示进程
    ps -u 'liaohuqiang' | grep 'tmux' 显示指定用户执行的进程,并匹配出包含'tmux'的那一行进程
    ps -ef | grep 'python' | grep -v grep 把grep命令排除掉
    ps -ef | grep 'python' | grep -v grep  | awk '{print $2}' 提取进程号
    
    kill -2 pid 类似ctrl+C,在程序结束之前能够保存相关数据,再退出
    kill -9 pid 直接强制结束进程
    
    reboot 重启
    shutdown -r now 立刻重启
    shutdown -r 30 30分钟后重启
    shutdown -r 23:00 晚上11点重启
    
    halt 立刻关机
    poweroff 立刻关机
    shutdown -h now 立刻关机
    shutdown -h 30 30分钟后关机
    
    shutdown -c 取消shutdwon的重启或关机
    command
    & 使指令成为后台任务 nohup 不挂断地运行命令,通常和&一起用,输出将附加到目录的nohup.out jobs -l 列出任务列表,l表示显示进程号(只查看当前终端的,关闭终端后无法看到) fg 把最近一个job切换到前台 fg n 把某个job切换到前台 ctrl z 挂起某个前台进程 bg 把作业放到后台运行 top 动态显示进程信息 top -i 不显示任何闲置或无用的进程 k 杀死某进程 n 改变显示的进程数量 u 显示指定用户 P 按CPU使用情况排序 q 退出

     (10) 网络

    netstat 显示网络情况
    netstat -a 列出所有端口
    netstat -l 只显示监听端口
    netstat -t 列出所有tcp端口
    netstat -p 显示使用该端口的pid和程序名称
    netstat -n 直接使用ip地址,不通过域名服务器
    
    找出程序运行的端口:netstat -anp | grep ssh
    
    找出运行在指定端口的进程:netstat -anp | grep ':80'
    
    ifconfig 查看网卡信息

     (11) 查看电脑配置

    free -m  # 查看内存使用情况
    df # 查看磁盘使用情况
    cat /proc/cpuinfo # 查看cpu信息
    lspci | grep VGA # 查看显卡
    nvidia-smi # 查看英伟达系列显卡的使用情况
    nvidia-smi -L # 查看显卡型号
    watch -n 1 -d nvidia-smi # 实时监控nvidia-smi,每隔一秒刷新一次,d表示高亮 
    cat /proc/driver/nvidia/version # 查看显卡驱动
    cat /etc/issue # 查看ubuntu版本

    (12) 其它

    date 显示时间
    whoami 显示当前用户名
    who 目前登录系统的用户信息
    curl 'url' -O --progress 下载文件,-O代表保存文件(如果没有则输出到屏幕), --progress表示会显示进度条 
    (curl不是linux的默认自行,需自行安装apt install curl)
    echo $SHELL 查看系统使用的是哪种shell
    echo $PATH 查看环境变量
    
    xdg-open filename 用默认应用程序打开文件
    
    python run_generation.py | tee vggTrainResult  重定向到文件 
    
    cat /usr/local/cuda/version.txt 查看cuda版本
    
    cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看cudnn版本
  • 相关阅读:
    Codeforces 177G2 Fibonacci Strings KMP 矩阵
    Codeforces Gym100187C Very Spacious Office 贪心 堆
    Codeforces 980F Cactus to Tree 仙人掌 Tarjan 树形dp 单调队列
    AtCoder SoundHound Inc. Programming Contest 2018 E + Graph (soundhound2018_summer_qual_e)
    BZOJ3622 已经没有什么好害怕的了 动态规划 容斥原理 组合数学
    NOIP2016提高组Day1T2 天天爱跑步 树链剖分 LCA 倍增 差分
    Codeforces 555C Case of Chocolate 其他
    NOIP2017提高组Day2T3 列队 洛谷P3960 线段树
    NOIP2017提高组Day2T2 宝藏 洛谷P3959 状压dp
    NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序
  • 原文地址:https://www.cnblogs.com/liaohuiqiang/p/7191462.html
Copyright © 2011-2022 走看看