「Linux」学习笔记

常用工具

  • vim - https://blog.csdn.net/dylwx_2005/article/details/92765194

  • unzip - https://blog.csdn.net/qq_27870421/article/details/92623897

  • rm

    • 批量处理文件 - 例:删除所有查询到文件

      sudo rm `find ./ -name 1632bcde-a71e-11eb-aa89-02420a000121.pdf`
      
    • 删除文件夹 - rm -rf dirname

      • -r - 递归地删除参数表中的目录及其子目录
      • -f - 不提示用户,删除目录下的所有文件
      • -i - 交互模式,使用这个选项,在删除文件前提示用户确认
  • netstat

    netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。

    netstat 查看端口占用语法格式:

    netstat -tunlp | grep 端口号
    
    • -t (tcp) 仅显示tcp相关选项
    • -u (udp) 仅显示udp相关选项
    • -n (num) 拒绝显示别名,能显示数字的全部转化为数字
    • -l (listen) 仅列出在Listen(监听)的服务端口
    • -p (port) 显示进程的 PID 和名称。仅当以 root 或 sudo 用户身份运行命令时,才会显示此信息

    例如查看 8000 端口的情况,使用以下命令:

    netstat -tunlp | grep 8000
    
  • curl 127.0.0.1:8800

  • kill

    kill -9 80 # 杀死80端口
    
  • ps

    查看进程占用情况,亦可条件检索

    • -e 显示所有进程
    • -f 全格式
    • -h 不显示标题
    • -l 长格式
    • -w 宽输出
    • -a 显示终端上的所有进程,包括其他用户的进程
    • -r 只显示正在运行的进程
    • -x 显示没有控制终端的进程
    ps -ef|grep python
    
  • tar

    本程序最初的设计目的是将文件备份到磁带上(tape archive),因而得名tar。

    用法:tar [参数] [文件]
    -v 显示指令执行过程
    -c 创建压缩文件
    -x 解压文件
    -z 通过gzip指令处理文件
    -f 指定文件
    -C 解压文件到指定目录
    -t --list查看压缩包里的文件内容
    --exclude 排除不需要压缩的目录或者文件
    
    tar -zvxf zz.tar.gz  # 解压文件zz.tar.gz
    
    • -z或–gzip或–ungzip,通过gzip指令处理备份文件
    • -v或–verbose,显示指令执行过程。
    • -x或–extract或–get,从备份文件中还原文件
    • -f<备份文件>或–file=<备份文件>,指定备份文件
    tar -zcvf file.tar.gz ./*  # 打包当前目录下的所有文件和文件夹,压缩包名为file.tar.gz
    
    • -c 将多个文件或目录进行打包。
    • -f 包名 指定包的文件名。包的扩展名是用来给管理员识别格式的,所以一定要正确指定扩展名;
    • -v 显示打包文件过程;需要注意的是,在使用 tar 命令指定选项时可以不在选项前面输入“-”。例如,使用“cvf”选项和 “-cvf”起到的作用一样。
  • 用户

    • useradd:添加用户账号
      • -d 指定用户登录系统时的主目录,如果不使用该参数,系统自动在/home目录下建立与用户名同名目录为主目录
      • -m 自动建立目录
      • -g 指定组名称
      • 一般创建用户命令 sudo useradd xxx -m 表示自动在home下创建目录
      • 建立的账号,保存在/etc/passwd文本文件中
    • passwd:设置用户密码
      • passwd chenxuefan
    • su:切换用户
      • su su - 切换到root用户,不切换目录
      • su chenxuefan 切换到chenxuefan用户,不切换目录
      • su - chenxuefan 切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录,如/home/chenxuefan
    • sudo -s 仅仅使用root权限,环境还是原来的用户的
  • 用户组

    • usermod:修改用户组
      • -a 追加用户组
      • -G 一般配合“-a”来完成想其他组添加
      • -g 重新指定新的用户组
      • usermod -a -G sudo chenxuefan 将用户chenxuefan添加到sudo用户组
    • groups:查看用户所属用户组
      • groups chenxuefan
    • groupmod:列出所有的用户组
      • 方法一:cat /etc/group
      • 方法二:groupmod+空格+两次tab键
    • groupadd:新建组账号
      • groupadd docker 新建docker组
    • groupdel:删除组账号
    • newgrp docker 更新docker用户组
  • 权限

    • chmod -R 777
  • grep

    • grep 994 /etc/passwd
  • df - df -h 查看整体磁盘使用情况

  • du (disk usage)命令用于显示目录或文件的大小。

    • -a或-all 显示目录中个别文件的大小。
    • -b或-bytes 显示目录或文件大小时,以byte为单位。
    • -c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
    • -h或–human-readable 以K,M,G为单位,提高信息的可读性。
    • -s或–summarize 仅显示总计。
    • –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • find

    • find . -size +500M 找到当前目录大于500M文件
    • find / --name tt
  • 查看主机ip

    • hostname -i
    • ifconfig
  • firewalld

    • systemctl start firewalld.service
    • firewall-cmd –reload

常见报错解决

  • VMWare虚拟机提示:锁定文件失败,打不开磁盘

    虚拟机在运行的时候,会锁定文件,防止被修改,而如果突然系统崩溃了,虚拟机就来不急把已经锁定的文件解锁,所以你在启动的时候,就会提示无法锁定文件。解决方法如下:

    在你的虚拟机的安装目录下,搜索 .lck 删除搜索到的三个文件 即可!

  • sh: service: command not found

    https://www.cnblogs.com/duguxiaobiao/p/9465686.html

  • System has not been booted with systemd as init system (PID 1). Can't operate.

    原因:您的Linux系统没有使用systemd。

  • Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json: dial unix /var/run/docker.sock: connect: permission denied

    • 原因:需要sudo权限,此用户未添加至docker用户组

    • 添加此用户至docker用户组

      • sudo groupadd docker #添加docker用户组

      • sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中

      • newgrp docker #更新用户组

        ubuntu18.04在重启后会生效,如果不是特别着急,可以先重启然后再做docker操作。

必要工具/常用软件的安装

vim/net-tools

apt-get install vim net-tools 

openssl

问题:Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_LIBRARIES OPENSSL_INCLUDE_DIR) 
解决:apt-get install libssl-dev

opencv

  1. 安装依赖

    apt-get install cma
    apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
    apt-get install libgtk2.0-dev
    apt-get install pkg-config
    
  2. 下载opencv:https://opencv.org/releases/

  3. tar -zvxf …

  4. cd opencv && mkdir build && cd build

  5. cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

  6. make && make install

Anaconda

  1. 在线下载安装包

    wget https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.sh
    
  2. 赋予可读权限

    chmod 777 Anaconda3-2020.07-Linux-x86_64.sh
    
  3. 安装

    ./Anaconda3-2020.07-Linux-x86_64.sh
    
  4. 添加到环境变量

    先查一下安装路径在哪:sudo find / -name anaconda

    将安装路径添加环境变量:export PATH=/root/anaconda3/bin/:$PATH

  5. 测试一下

    conda
    

    image-20201108140821264

设置环境变量

  1. 临时设置

    export PATH=/root/anaconda3/bin/:$PATH
    
  2. 全局设置(当前用户)

    打开~/.bashrc,编辑一下

    export PATH=/root/anaconda3/bin/:$PATH
    export PATH=/usr/local/python3.7.1/bin/:$PATH
    
  3. 全局设置(所有用户)

    打开/etc/profile,编辑一下

    export PATH=/root/anaconda3/bin/:$PATH
    
  4. 一步到位设置

    echo "export PATH=/home/cqh:$PATH" >> /etc/profile
    


2245 字