Skip to content

压缩

tar

  • c(create) 和 x(extract) : 压缩和解压缩
  • z(gzip): 使用 gzip 进行压缩
    • 用这个参数生成的文件夹是有 .gz 的后缀的,没有这个参数不带
  • v(verbose): 处理文件时显示详细信息
  • f(filename): 指定归档文件的名称
bash
常用参数:描述
-c :建立一个压缩文件 
-x :解开一个压缩文件
-t :查看tarfile 里面的文件!特别注意,c/x/t 仅能存在一个,不可同时存在
-z :用 gzip 解压缩
-j :用 bzip2 解压缩
-v :压缩的过程中显示文件,这个常用,但不建议用
-f :使用档名,在 f 之后要立即接档名!例如使用『 tar -zcfv tfile sfile』就是错误的写法,要写成 『tar -zcvf tfile sfile』才对喔
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :(大写P)使用绝对路径来压缩
-r : 新增文件到已存在的备份文件的结尾部分
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中
--exclude file :在压缩的过程中,不要将 FILE 打包

查找

Find

  • find path -option [-print] [-exec/-ok command{} \]:查找文件
    • 直接搜索磁盘,比较慢
  • whereis [filename]:查找二进制文件、源码等
  • which [filename]:只能查可执行文件
  • locate [filename]

编辑

touch

  • touch :创建一个空文件,如果文件存在,则会更改文件的访问时间和修改时间
  • alias newname='old_name':给命令取别名

vim

  • vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
点击查看完整代码实现
点击查看完整代码实现
bash
1 命令模式:用户 vim fileName,便进入了命令模式
    i         切换到输入模式,以输入字符
    :         冒号切换到底线命令模式
    /word     向光标之下寻找一个名称为 word 的字符串
    ?word     向光标之上寻找一个字符串名称为 word 的字符串
    n         重复前一个搜索(与 / ? 有关)
    N         反向重复前一个搜索(与 / ? 有关)
    PageUp    上翻页
    PageDown  下翻页
    G         移动到这个档案的最后一行(常用)
    nG        n 为数字。移动到这个档案的第 n
    
2 输入模式: 在命令模式下按下i就进入了输入模式; ESC 退出输入模式,切换到命令模式
    字符按键、shift组合    输入字符
    ENTER                 回车键,换行
    BACK SPACE            退格键,删除光标前一个字符
    DEL                   删除键,删除光标后一个字符
    方向键                在文本中移动光标
    HOME/END              移动光标到行首/行尾
    Page Up/Page Down     上/下翻页
    Insert                切换光标为输入/替换模式,光标将变成竖线/下划线

3 底线命令模式: 在命令模式下按下 ":" 就进入了底线命令模式; ESC退出模式,切换到命令模式
    :q                 退出 vim 程序
    :w                 保存文件
    :wq                保存后离开
    :!q                不保存退出
    :w [filename]      将编辑的数据储存成另一个档案
    :r [filename]      在编辑的数据中,读入另一个档案的数据。追加到游标所在行后面
    :!ShellCommand     暂时离开 vi 到指令行模式下执行 shellCommand 的显示结果
    :%s/word1/word2/g  从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 
    :%s/word1/word2/gc %s/word1/word2/g 功能一致,不过每次替换都需用户确认

:::

vi

查看

  • less [filename]
  • more [filename]
  • cat [filename]:会一次性显示整个文件内容,不分页,容易出问题
  • head -n number [filename]:只显示文件的前多少行
  • tail -n number [filename]:只显示文件的后多少行
  • wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数:统计文件的行号、单词数、字节数

下载

wget

  • wget支持HTTP,HTTPS和FTP协议
  • 命令格式:wget [-options] [url]
bash
-O <fileName>        把文档写到FILE文件中
-c                   (断点续传)接着下载没下载完的文件
-P filePath          将文件保存到 filePath 目录 
-b                   后台下载

TP 选项: 下面是通过FTP协议下载时需要进行指定的
--ftp-user=USER         设置 ftp 用户名为 USER
--ftp-password=PASS     设置 ftp 密码为 PASS

curl

  • curl 是一款很强大的 http 命令行工具。它支持文件的上传和下载。命令格式:curl [option] [url]
点击查看完整代码实现
点击查看完整代码实现
bash
-A/--user-agent <string>   设置用户代理发送给服务器
-b <name=string/file>      cookie字符串或文件读取位置
-c <file>                  操作结束后把cookie写入到这个文件中
-C <offset>                断点续转
-D <file>                  把header信息写入到该文件中
-e                         来源网址(伪造referer)
-o                         把输出写到该文件中
-O                         把输出写到该文件中,保留远程文件的文件名
-r <range>                 分块下载来自HTTP/1.1或FTP服务器 range字节
-T <file>                  上传文件
-u <user[:password]>       设置服务器的用户和密码
-L                         参数会让 HTTP 请求跟随服务器的重定向。curl 默认不重定向
-x <host:port>             在给定的端口上使用HTTP代理
-#                         进度条显示当前的传送状态
-X                         指定 HTTP 请求的方法
-d                         POST方式传送数据(默认是application/x-www-form-urlencoded)
-H/--header <line>         自定义头信息传递给服务器

:::

增删改

cp

  • cp [选项参数] fileSource... fileTarget :文件目录复制
bash
cp 选项参数 | 描述
-a | 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-f | 覆盖已经存在的目标文件而不给出提示。
-i | -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖
-l | 不复制文件,只是生成链接文件

mv

  • mv [选项参数] fileSource... fileTarget:用来移动文件夹、文件 或者 修改文件名、目录名
bash
option 参数 | 描述
-b | 当目标文件存在时,先进行备份再覆盖
-f | 当目标文件存在时,强制覆盖
-i | 默认选项,当目标文件存在时,提示是否覆盖
-t | 先指定目标,再指定源目标。即目标 源目标 参数位置互换
::: details 点击查看完整代码实现
::: details 点击查看完整代码实现

rm

  • rm 命令用于删除一个文件或者目录;命令格式 rm [options] fileName/filePath

    bash
    option参数 | 描述
    -i | 删除前逐一询问确认
    -f | 即使原档案属性设置为只读,也可强制删除,无需确认
    -r | 将目录及以下之档案亦逐一删除

mkdir

  • mdkir命令用于创建目录, mkdir [-p] dirName
    • -p 确保目录名称存在,不存在的就建一个

权限

chmod

  • chmod [-cfvR] mode file
    • 多个拥有者权限 chmod ug+w,o-w csc.txt lwl.txt
:::
:::bash
## -cfvR 参数解析
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)

## mode [ugoa][+-=][rwxX-] 参数解析
u 表示该文件的拥有者
g 表示与该文件的拥有者属于同一个群体(group)者
o 表示其他以外的人
a 包括 u g o
## [+-=]
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限
## [rwxX-]
r 表示可读取
w 表示可写入
x 表示可执行
X 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
- 不具任何权限

链接

ln

  • ln [options] [源文件或目录] [目标文件或目录]
bash
options 参数 | 描述
-b | 删除,覆盖以前建立的链接
-d | 允许超级用户制作目录的硬链接
-f | 强制执行
-i | 交互模式,文件存在则提示用户是否覆盖
-n | 把符号链接视为一般目录
-s | 软链接(符号链接)
::: details 点击查看完整代码实现
::: details 点击查看完整代码实现

过滤

grep

  • grep 一般用于在文件中查和匹配模式匹配的每一行数据。
  • 命令格式 grep [options] 'pattern' [files];
  • grep 支持处理管道的输出数据;
  • pattern 支持正则表达式;
  • files 可以是多个文件,用空格分开
:::
:::bash
options选项 | 功能描述
-i | 忽略大小写
-v | 不匹配匹配的
-l | 输出匹配的文件名
-L | 输出不匹配的文件名
-c | 输出匹配的数目(行数)
-C num  |       输出匹配的前后 num 条行数
-n | 输出匹配行的同时在前面加上文件名及在文件名中的行数

zgrep

  • grep 无法在压缩文件匹配查找数,此时可以用 zgrep,zgrep 适用处理压缩后的gz等格式文件

正在精进