唠唠闲话

初学 Linux ,在这里记录 Linux 常用命令和语法等,主要内容:

语法部分合并到了另一篇博客中:Ubuntu 教程(三) | shell 编程入门

基本使用

常用命令

  1. 软件管理 apt,参考这里

    1
    2
    3
    4
    5
    6
    7
    apt install <package> # 安装软件包
    apt remove <package> # 移除软件包,保留配置文件
    apt purge <package> # 移除软件包及配置文件
    apt update # 刷新存储库索引
    apt upgrade # 升级所有可升级的软件包
    apt autoremove # 自动删除不需要的包
    apt search <package> # 搜索软件包
  2. 移动文件夹
    path 中的文件移动到 newpath 中,有下边几种方法

    1
    2
    3
    4
    5
    mv path/* newpath # 不建议
    mv path/* newpath/
    mv path/* newpath/ -i
    mv path/* path/.[^.]* newpath/
    cp path/* newpath/ -rf && rm path/* -rf

    方法区别:

    • 第一行当文件夹 newpath 不存在,且 path 下只有一个文件时,执行“文件重命名操作”,不建议用
    • 第二行是一般用法,缺点是自动覆盖同名文件,且不移动隐藏文件
    • 第三行 -i 设置覆盖前提醒
    • 第四行 path/* 匹配所有非隐藏文件,path/.[^.]* 匹配隐藏文件,移动多个文件用空格隔开
    • mv 命令不能覆盖同名目录,第五行用 cprm 组合来实现目录覆盖
  3. wget 下载文件
    使用 wget --help 查看使用方法,常用参数:

    • -c 断点续传
    • -P <path> 指定下载目录
    • -O <filename> 指定文件名
  4. 关于 mv 命令

    • mv 常用于文件或文件夹的重命名
    • 用于文件夹重命名时, mv path1/folder1 path2/folder2 有两种可能结果
    • 如果文件夹 folder2 不存在,则将 path1/folder1 移动为 path2/folder2
    • 如果文件夹 folder2 已存在,则将 path1/folder1 移动为 path2/folder2/ 目录下

查看目录

  1. 安装软件

    1
    sudo apt-get install tree
  2. 输入 tree 查看当前目录树
    filetree

  3. 设置显示深度

    1
    2
    # tree <path> -L <depth>
    tree . -L 2 # 显示当前目录的两层目录结构

压缩解压

几种文件后缀:

  • .tar 是打包
  • .tar.gz 才是压缩过的文件
  • .tar.gz 常见于unix系统,在 ubuntu 或 macos 可以直接解压
  • .zip 常见于 windows 系统
  • .tar.bz2 也是一种
  1. .tar 文件

    1
    2
    3
    4
    5
    # 仅打包,并非压缩
    tar -xvf FileName.tar # 解包
    tar -xvf FileName.tar -C newpaht/ # 解包到指定路径
    tar -xvf FileName.tar.bz2 # 解包 .bz2 文件
    tar -cvf FileName.tar DirName # 将DirName和其下所有文件(夹)打包
  2. .gz 文件

    1
    2
    3
    4
    # .gz
    gunzip FileName.gz # 解压1
    gzip -d FileName.gz # 解压2
    gzip FileName # 压缩,只能压缩文件
  3. .tar.gz 文件

    1
    2
    3
    4
    # .tar.gz 和 .tgz
    tar -zxvf FileName.tar.gz # 解压
    tar -zcvf FileName.tar.gz DirName # 将 DirName 和其下所有文件(夹)压缩
    tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
  4. .tar.bz2 文件,使用 -j 参数

    1
    2
    tar -xjf FileName.tar.bz2 # 解压文件
    tar -cjf File FilePath # 压缩文件
  5. .zip 文件

    1
    2
    3
    4
    # 感觉.zip占用空间比.tar.gz大
    unzip FileName.zip # 解压
    zip FileName.zip DirName # 将DirName本身压缩
    zip -r FileName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一并压缩
  6. .rar 文件

    1
    2
    rar x FileName.rar      # 解压
    rar a FileName.rar DirName # 压缩

    linux 没有自带 rar ,需下载安装

    1
    sudo apt install rar

参考 CSDN:Ubuntu 常用解压与压缩命令


使用技巧

修改文件管理器侧边栏

打开文件管理器,如下图,左侧为快捷路径。
20210831161808

修改方法如下:

  1. cd ~/.config/ 进入配置页面,如下图
    tupian
  2. code user-dirs.dirs 编辑文件,比如我的修改内容是:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    # This file is written by xdg-user-dirs-update
    # If you want to change or add directories, just edit the line you're
    # interested in. All local changes will be retained on the next run.
    # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
    # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
    # absolute path. No other format is supported.
    #
    XDG_DESKTOP_DIR="$HOME/desktop"
    XDG_DOWNLOAD_DIR="$HOME/download"
    XDG_PUBLICSHARE_DIR="$HOME/"
    XDG_DOCUMENTS_DIR="$HOME/Nutstore Files/Nut"
    XDG_PICTURES_DIR="$HOME/picture"
    XDG_TEMPLATES_DIR="$HOME/模板"
    XDG_MUSIC_DIR="$HOME/work_space/3 shared_space"
    XDG_VIDEOS_DIR="$HOME/work_space"

连接蓝牙

参考知乎:ubuntu连接AirPods

设置图标

其他知识

文件权限

参考 B 站视频

Linux 是多用户的操作系统,允许多个用户在系统上登录和工作,为了确保系统和用户安全,Linux 采取了很妒忌安全措施。

  1. 输入 ls -al 查看文件权限
    深度截图_选择区域_20220506194543

  2. 权限信息如下

    1
    2
    3
    # ls -ahl
    drwxrwxr-x 11 rex rex 4.0K 6月 8 16:20 .
    -rw-rw-r-- 1 rex rex 1.2K 6月 9 17:15 package.json
    • drwxrwxr-x 为权限信息,分为“用户”,“组”,“其他”三个区域
      • d 代表目录,- 代表文件,l 代表链接
      • 第一处 rwx 代表用户(文件拥有者)拥有可读,可写,可执行权限
      • 第二处 rwx 代表同组用户拥有可读,可写,可执行权限
      • 第三处 r-x 代表其他用户拥有可读,可执行权限,没有可写权限
    • 11 暂不了解
    • 第一处 rex 代表文件所有者
    • 第二处 rex 代表文件所有者所在组
    • 4.0K 代表文件大小
    • 6月 代表文件最后修改时间
    • 8 暂不了解
    • 16:20 代表文件最后修改时间
  3. 对于文件夹,rwx 有其他含义:

    • r 代表文件夹可以被 ls 查看属性
    • w 代表可以文件夹内创建或删除文件
    • x 代表是否能进入该目录
  4. 修改权限使用 chmod 命令,比如

    • chmod u+x <file> 为用户赋予文件的执行权限,u 代表用户,+ 代表赋予,x 代表可执行权限
    • chmod ug-rx <file> 将拥有者和同组用户的执行读取权限 r 和执行权限 x 移除
    • 第一个处 u 代表用户,g 代表组,o 代表其他用户,a 代表所有用户
    • 第二个处 + 代表赋予,- 代表移除
    • 第三处 r 代表读,w 代表写,x 代表执行
  5. 关于三种权限的赋予一共 8 种可能:

    整数简写 二进制 字母形式 权限含义
    0 000 --- 无权限
    1 001 r-- 只读权限
    2 010 -w- 只写权限
    3 011 rw- 读写权限
    4 100 --x 只执行权限
    5 101 r-x 读执行权限
    6 110 -wx 写执行权限
    7 111 rwx 读写执行权限
  6. 因此,chmod 可以用二进制来赋予权限,比如

    • chmod 777 <file> 等价于 chmod a+rwx <file>
    • chmod 755 <file> 等价于 chmod go+rx <file>; chmod a+rwx <file>
  7. 如果需要递归地赋予权限,可以使用 chmod -R 命令,比如

    • chmod -R 777 <file> 将会赋予 <file> 的所有子文件夹和子文件的所有权限(不包括文件夹自身)
  8. chmod 为 change mode 的缩写,用于修改文件权限;chown 为 change owner 的缩写,用于修改文件所有者和组,比如

    • chown <user> <file><file> 的所有者改为 <user>
    • chown :<group> <file><file> 的所有者改为 <group>

    注意:chown 命令需要 root 权限才能使用