常用Linux命令整理


在服务器上训练深度学习模型时不可避免地需要进行大量的命令行操作,熟练使用命令行已经成为了一项程序员必备的技能,本文对常用的linux命令进行整理,以加深印象和方便后续查询。

文件管理

  • cat: 用于连接文件并打印到标准输出设备上
    • 使用权限: 所有使用者
    • 语法格式:
      cat [-AbeEnstTuv] [--help] [--version] fileName
      
    • 参数说明:
      • -n/—number: 由1开始对所有输出的行号编号
      • -b: 与-n类似,只是对空白行不编号
        cat file1 > file2 #将file1的内容拷贝到file2中(覆盖)
        
  • chmod: 控制用户对文件的权限
    • 使用权限: 只有文件所有者和超级用户可以修改文件或者目录的权限
    • 说明: Linux/unix的文件调用权限分为三级: 文件所有者、用户组、其他用户
      用户创建一个新文件时,默认权限是-rw-r--r--

      可以通过使用绝对模式(八进制数字模式)指定文件的权限
    • 语法:
      chmod [-cfvR] [--help] [--version] mode file...
      
    • 参数说明:
      • mode: 权限设定字串
          符号模式: [ugoa...][[+-=][rwxX]...][,...]
          八进制模式: 777
        
    • 使用示例:
      chmod a+rwx file #符号模式向三类用户开放读写执行权限
      chmod 777 file   #八进制数字模式,功能与上面等价
      
  • chown: change owner, 将文件的拥有者改为指定的用户或组
    • 使用权限: 超级用户
    • 语法:
      chown [-cfhvR] [--help] [--version] user[:group] file...
      
    • 参数说明:
      • user: 新的文件拥有者或用户id
      • group: 新的文件拥有者的使用者组
      • -c: 显示更改的部分的信息
      • -R: 处理指定目录以及其子目录下的所有文件
    • 使用示例:
      chown -R root dir #将文件夹dir及其子目录的所有者设定为root
      chown -R xuejianye dir #将文件夹dir及其子目录的所有者设定为xuejianye
      
  • diff: 比较文本文件的异同,若相同则没有输出,有差异则会输出差异位置及内容
      diff file1 file2
    
  • find: 在指定目录下查找文件
    • 语法:
        find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;
      
    • 使用示例:
        find . -name "*.txt" #在当前目录下找到所有txt文件
      
  • mv: 将文件或目录移入其他位置/修改文件或目录的名称
    • 语法:
      mv [options] source dest
      mv [options] source... directory
      
    • 参数:
      • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份
      • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
      • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
      • -n: 不要覆盖任何已存在的文件或目录。
    • 使用示例:
      mv source_file(文件) dest_file(文件) #将源文件名 source_file 改为目标文件名 dest_file
      mv source_file(文件) dest_directory(目录) #将文件 source_file 移动到目标目录 dest_directory 中
      mv source_directory(目录) dest_directory(目录) #目录名 dest_directory 已存在,将 source_directory 移动到目录名 dest_directory 中;目录名 dest_directory 不存在则 source_directory 改名为目录名 dest_directory
      mv aaa bbb #将文件aaa改名为bbb
      
  • paste: 合并文件的列
      icarus@DESKTOP-7Q4C11S  ~  cat test.txt copy.txt
      123
      456
      123
      456
      icarus@DESKTOP-7Q4C11S  ~  cat test.txt copy.txt > new.txt
      icarus@DESKTOP-7Q4C11S  ~  cat new.txt
      123
      456
      123
      456
      icarus@DESKTOP-7Q4C11S  ~  paste test.txt copy.txt
      123     123
      456     456
    
  • rm: 用于删除一个文件或目录
    • 语法
      rm [options] name...
      
    • 参数 -r: 递归删除目录内所有文件
  • touch: 修改文件或者目录的时间属性,若文件不存在则会创建一个新文件
    -语法:
      touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
    
    -使用示例:
      touch file #若文件不存在则创建文件,文件存在则修改文件的事件属性
    
  • which: 查找文件,会在环境变量$PATH设置的目录里查找符合条件的文件

      which conda
      which pip
    
  • cp: 用于复制文件或者目录

    • 语法:
      cp [options] source dest
      cp [options] source... directory
      
    • 参数说明:
      • -r: 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    • 使用示例
      cp –r test/ newtest   #用户使用该指令复制目录时,必须使用参数 -r 或者 -R
      
  • scp: 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令
    • 语法:
      scp [可选参数] file_source file_target
      
    • 使用示例:
      #从本机复制到远程 
      scp local_file remote_username@remote_ip:remote_folder 
      或者 
      scp local_file remote_username@remote_ip:remote_file 
      或者 
      scp local_file remote_ip:remote_folder 
      或者 
      scp local_file remote_ip:remote_file 
      #从远程复制到本地
      scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 
      scp -r www.runoob.com:/home/root/others/ /home/space/music/
      

文档编辑

  • grep: 用于查找文件里符合条件的字符串
      grep "被查找的字符串" 文件名
    

文件传输

磁盘管理

  • cd: 切换当前工作目录
  • df: 显示目前在linux系统上的文件系统磁盘使用情况统计
    • 语法:
      df [选项]... [FILE]...
      
    • 使用示例:
      icarus@DESKTOP-7Q4C11S  /home  df icarus
      Filesystem     1K-blocks     Used Available Use% Mounted on
      /dev/sdc       263174212 35268580 214467476  15% /
      
  • du: 用于显示目录或文件的大小
      du -s icarus/ #显示该文件夹中所有文件所占的内存和 
      du -a icarus/ #显示目录中个别文件的大小
    
  • mkdir: 用于创建目录
    • 参数说明: -p 确保目录名称存在,不存在就新建一个
    • 使用示例:
      mkdir -p /home/projects
      
  • tree: 以树状图列出目录的内容

  • ls: 显示指定工作目录下的内容

    • 参数
      • -a: 显示所有文件及目录
      • -l: 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

磁盘维护

网络通讯

  • ifconfig: 用于显示或设置网络设备,查看ip/mac地址
  • ping: 用于检测主机,

系统管理

  • kill: 用于删除执行中的程序或工作
    • 语法:
      kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
      
    • 常用参数:
      • -HUP: 重新加载进程
      • -KILL: 杀死一个进程
      • -TERM: 正常停止一个进程
    • 使用示例:
      kill 12345
      kill -KILL 123456 #强制杀死进程
      
  • ps: 显示当前进程的状态,类似于windows的任务管理器
    • 语法:
      ps [options] [--help]
      
    • 参数
      • -a: 列出所有的进程
    • 使用示例:
      ps -ef | grep 进程关键字
      

系统设置

  • clear: 用于清除屏幕
  • export: 用于设置或者显示环境变量,效力仅限于该次登陆操作
    • 语法:
      export [-fnp][变量名称]=[变量设置值]
      
    • 参数名称
      • -n: 删除指定的变量
      • -p: 列出所有的shell赋予程序的环境变量
    • 使用示例:
      export CUDA_VISIBLE_DEVICES=0,3
      

备份压缩

设备管理


文章作者: 思考猫
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 思考猫 !
评论
 上一篇
安全外壳协议-ssh 安全外壳协议-ssh
简介(from wiki)安全外壳协议(Secure Shell Protocol,简称ssh)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接;S
2022-10-24
下一篇 
conda介绍及常用命令 conda介绍及常用命令
随着机器学习、深度学习的爆火,大量的python第三方库也如雨后春笋一般冒了出来,这给开发者带来了极大便利的同时,也使得管理这些库成为了一件复杂度极高的事情,相信很多人都有过为了处理库冲突而抓狂的时刻,为了简化python包管理的工作,An
2022-10-17
  目录