Linux基础命令使用笔记

  1. rename批量更改文件后缀名
    # 更改当前文件夹下的JPG文件为jpg文件
    rename 's/\.JPG/\.jpg' *
  2. zip打包

    # zip分卷打包文件夹下内容
    # 每隔100m建立一个分卷
    # 执行命令后,创建Main.zip Main.z01 Main.zo2 ...
    zip -s 100m -r Main.zip ./Main
    
    # 每隔2g建立一个分卷
    zip -s 2g -r Main.zip ./Main
    
    # 切分已有zip文件
    # 执行命令后,创建new.zip new.z01 new.z02 ...
    zip Main.zip --out new.zip -s 2g
    
    # 将分卷文件合并成一个单独文件--linux平台解压分卷zip文件需要先合并再调用unzip解压
    # 执行命令后将生成一个由new.zip new.z01 new.z02 ...合并而成的Main.zip单一打包文件
    zip -s 0 new.zip --out Main.zip
    
    # 打包大文件下的部分文件夹
    # 文件夹目录结构如下:
    #     dir_test:
    #             |--sub_dir1:
    #             |          |--t11.txt
    #             |          |--t12.txt
    #             |--sub_dir2:
    #             |          |--t21.txt
    #             |          |--t22.txt
    #             |--SUB_DIR3:
    #                        |--t31.txt
    #                        |--t32.txt
    # 打包部分文件夹(sub_dir1与sub_dir2),不包含文件夹中文件
    zip sub_dir12.zip ./dir_test/sub_dir*
    zip sub_dir12.zip ./dir_test/sub_dir1 ./dir_test/sub_dir2
    
    # 打包部分文件夹(sub_dir1与sub_dir2),包含文件夹中文件
    zip sub_dir12_r.zip -r ./dir_test/sub_dir*
    zip sub_dir12_r.zip -r ./dir_test/sub_dir1 ./dir_test/sub_dir2
    
    # zip打包文件夹(./Main)与文件(text.txt)的组合
    zip -r Main.zip ./Main text.txt
    
    # zip打包文件夹下所有内容
    zip -r Main.zip ./Main
    zip Main.zip ./Main/*
    
    # 注:打包的sub_dir12.zip与sub_dir12_r.zip直接使用unzip解压后的目录是dir_test
  3. unzip解压打包文件

    # 将Main.zip文件解压到当前文件夹
    unzip Main.zip -d ./
    unzip Main.zip
    # 将解压密码为12345678的压缩包Main.zip加压至当前文件夹
    unzip -P 12345678 Main.zip
  4. 匹配文件删除

    ls | grep 12[5-9]\\.pth | xargs rm
  5. 显示前/后n个或n行输出

    ls | head -n 5
    ll | head -n 5
    ls | tail -n 5
    ll | tail -n 5
  6. screen命令

    # 查看后台的screen会话情况
    screen -ls
    # 开一个名为test的会话
    screen -S test
    # 创建可以自动保存日志名为test的screen会话,当前会话会自动保存所有输出到当前目录的screenlog.0文件中
    screen -L -S test
    # 上一种方法中,若不同的会话在相同目录,则不同的会话输出的日志会同时指向screenlog.0,
    # 会出现日志错乱或覆盖,改进方式是按窗口名生成日志。具体操作:在/etc/screenrc文件最后添加
    # logfile ./screenlog_%t.log,然后按照以下命令创建会话,日志将会保存至screenlog_window.log,
    # -t指定会话窗口名与%t对应
    screen -L -t window -S test
    # 进入test窗口
    screen -r test
    # 进入Attached状态的下的会话
    screen -d -r test
    # 删除无法使用(Dead)的screen会话
    screen -wipe 
    # 在相应的screen外部删除指定名称的screen会话
    screen -X -S test quit
    # 退出并删除窗口
    exit
    # 进入screen窗口后按下一下按键将会将会话的输出记录到用户目录下,日志文件为hardcopy.0,此日志文件需要及时备份
    Ctrl + A -> H
    # 退出当前窗口(当前窗口内的程序进入后台运行状态)
    Ctrl + A -> D
    # 进入copy模式可以使用Page Up、Page Down、↑、↓等进行翻页
    Ctrl + A -> Esc -> Page Up | Page Down / ↑ | ↓
    # 与上面类似,但此处只能使用↑|↓键
    Ctrl + A -> F   -> ↑ | ↓
  7. du命令

    # 打印当前文件夹及其所有子文件夹所占容量
    du
    # 打印某个特定文件所占容量
    du -sh ./data.txt
    # 打印当前文件夹所占的总容量
    du -sh ./
    # 打印指定文件夹所占的容量--打印当前文件夹下的zhangxiang文件夹所占的容量
    du -sh ./zhangxiang/
    # 打印当前文件夹下所有的一级文件夹所占硬盘的容量
    du -sh ./*
  8. conda命令

    # 创建名为pytorch的conda环境
    conda create -n pytorch
    # 创建一个指定python版本的conda环境
    conda create -n pytorch python=3.6
    # 基于已有的base环境创建名为pytorch的新环境
    conda create -n pytorch --clone base
    # 删除环境
    conda remove -n pytorch --all
    # 激活环境
    conda activate pytorch
    source activate pytorch
    # 打印已经创建的conda虚拟环境
    conda env list
    # 安装python包
    conda install opencv-python
    conda install opencv-python==4.11
    # 指定源安装python包
    conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ opencv-python
    conda install --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ opencv-python
    # 本地包安装(本地包可以是conda格式也可以是tar格式,此处以conda格式的pytorch为例)
    conda install --use-local .\pytorch-1.4.0-cpu_py36ha775e86_0.conda
    # 卸载包
    conda uninstall tensorflow
    conda uninstall tensorflow==2.0
    conda remove tensorflow
    conda remove tensorflow==2.0
    # 打印当前conda环境下已经安装的python包
    conda list
    # 导出当前环境(pytorch环境)到当前目录
    conda env export > pytorch.yaml
    # 从环境包文件导入环境
    conda env create -f pytorch.yaml
    # 若导入环境出错,一般情况下原始conda环境与目前的环境下的conda环境不是同一个版本
    # 并且此时一般是待导入环境下的conda版本低,执行以下命令更新conda
    conda update conda
    # 配置conda包仓库(以配置清华大学源为例)
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    # 显示已经配置的conda包仓库
    conda config --show channels
    # 查找包来源(以pytorch为例)
    conda search pytorch
  9. rm命令

    # 删除文件
    rm ./data.txt
    # 删除文件夹
    rm ./data/ -r
  10. scp命令

    # 从本地向端口为56、ip为1.2.3.4服务器的/root/zhangxiang/data/下远程发送VOC2007文件夹
    scp -P 56 -r ./VOC2007/ root@1.2.3.4:/root/zhangxiang/data/
    # 远程发送文件
    scp -P 56 ./data.txt root@1.2.3.4:/root/zhangxiang/data/
    # 远程接收文件夹
    scp -P 12 -r root@3.4.5.6:/root/zhangxiang/data/ ./data/
    # 远程接收文件
    scp -P 12 root@3.4.5.6:/root/zhangxiang/data/data.txt ./data/
  11. ftp命令与目录下载

    # 使用ftp登录域名ftp, 假设域名为www.xxx.com(域名与地址等效)
    ftp www.xxx.com
    # 下载单个文件
    ftp>get test.txt
    # 下载多个文件
    ftp>mget test.txt test.dat
    ftp>mget test.*
    # 打开/关闭ftp命令执行提示(交互模式)
    ftp>prompt
    # 退出ftp
    ftp>quit
    # 注:若ftp服务未提供特定的访问账户与密码则可以使用匿名账户
    #     提示输入用户名后,使用通用的匿名账户登录,匿名账户名称为anonymous
    #     提示输入密码后直接回车,因为匿名账户的密码为空
    # 使用wget命令下载ftp的整个目录
    # 假定ftp服务器地址为1.2.3.4端口为56,用户名为download,密码为download
    wget ftp://1.2.3.4:56/* --ftp-user=download --ftp-password=download -r
    
  12. 统计目录下所有代码行数

    # 统计C语言代码行数,其他语言的代码可以更改指令中的后缀名实现
    find . "(" -name "*.c" ")" -print | xargs wc -l | grep total | awk '{sum += $1};END {print sum}'
  13. df命令

    # 查看硬盘容量使用信息
    df -h
    df -hl
  14. 多线程下载

    # 线程数设置为:-n 8(若不设置的话默认为4线程下载,一般情况使用默认即可), 字符显示下载进度: -a
    axel -n 8 -a https://mirrors.tuna.tsinghua.edu.cn/kali-images/kali-2018.3a/kali-linux-e17-2018.3a-amd64.iso
  15. 测试网络带宽

    # 安装测试工具
    pip install speedtest-cli
    # 测试带宽
    speedtest-cli
  16. 定位软件安装位置

    # 定位程序位置--此处以定位axel程序为例
    # 仅定位执行程序位置
    which axel
    # 定位执行程序及其相关依赖的位置
    whereis axel
  17. 远程登录

    # 以root用户远程登录端口号为1234网络地址为192.168.0.1的服务器
    ssh -p 1234 root@192.168.0.1
  18. sftp命令

    # 假设用户为sftp-user,服务器域名为sftp.com,密码为sftp-download
    # 用户登录
    sftp sftp-user@sftp.com
    password:sftp-download
    # 列出sftp服务器上当前文件夹下的目录与文件
    sftp>ls
    # 下载单个文件
    sftp>get test.txt
    # 上传单个文件
    sftp>put test.txt
    # 下载整个目录(假设有一个Dataset目录)
    sftp>get -r Dataset
    # 上传整个目录
    sftp>put -r Dataset
    # 下载当前目录下的所有zip压缩文件
    sftp>get *.zip
    # 上传当前目录下的所有zip压缩文件
    sftp>put *.zip
    
  19. 显示linux进程信息

    # 显示进程状态
    ps -aux
    # 动态显示进程信息
    top
  20. 显示端口占用信息

    # 查询特定端口占用情况
    lsof -i:5000
  21. 文件与文件夹拷贝
    # 文件拷贝 拷贝当前目录下的test.txt文件到/home目录, -v表示显示拷贝细节
    cp -v ./test.txt /home/
    # 文件夹拷贝 拷贝./test文件夹到/home目录下
    cp -v -r ./test /home/
    # 文件备份
    cp ./etc/sudoer ./etc/sudoer.bak
  22. 目录与文件统计

    # 注意:(1)ls -l列出的结果中没有.目录与..目录(当前目录与上级目录)
    #       (2)ls -l列出的结果中第一行为total行,当文件夹下为纯文件或者纯文件夹时也必须使用
    #          grep "^-"或grep "^d"进行结果筛选,否则统计的数量结果会多1 
    #       (3)ls -l可以使用ll替代,不同的是ll的输出结果中有.目录与..目录,但没有total行,
    #          若不使用grep "^-"或grep "^d"进行结果筛选,则结果可能会多2   
    # 查看当前目录下的文件数量(不包含子目录中的文件)
    # grep "^-" 使用正则匹配,其中 ^ 表示锚定行的开始,- 表示文件,^- 表示匹配以 - 开始的行,即匹配文件
    ls -l | grep "^-" | wc -l
    # 查看当前目录下的文件数量(包含子目录中的文件)
    # -R 表示循环迭代子目录
    ls -lR | grep "^-" | wc -l
    # 查看当前目录下的文件夹目录个数(不包含子目录中的目录)
    # ^d 表示匹配以 d 开始的行,即匹配目录
    ls -l | grep "^d" | wc -l
    # 查看当前目录及子目录下的文件夹目录个数
    ls -lR | grep "^d" | wc -l
    # 查询指定目录下的文件数量(包含子目录,若不统计子目录则去掉-R即可)
    # 查询data文件夹下的文件数量
    ls -lR ./data/ | grep "^-" | wc -l
    
  23. mv命令
    # 文件夹重命名,将dir1命名为dir2
    mv dir1 dir2
    # 将文件t1.txt t2.txt移动至dir_test目录下
    mv t*.txt ./dir_test
  24.  chmod命令
    # 给文件增加可执行权限
    chmod 777 zip_ctrl.py
  25.   上传与下载命令
    # 文件上传
    rz
    # 文件下载,假设下载当前文件夹下的test.txt
    sz test.txt
  26.   文件切割与拼接

    # split 文件切割,将大文件切割为多个小文件
    
    # 按大小切割,单位为K、M等
    # 按200M为单位切割,结果为smallfile.tara、smallfile.tarb、...
    split -b 1M largefile.tar smallfile.tar
    
    # 按行切割,单位为文本行,切割目标为文本文件(一般用不到)
    # 按100行为单位切割,结果为smallfile.csva、smallfile.csvb、...
    split -l 100 largefile.csv smallfile.csv
    
    # cat 文件拼接,将多个文件合并为单个文件
    # 将smallfile.tara、smallfile.tarb、...合并为单个文件
    cat smallfile.tar* > largefile.tar

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值