linux的基础学习

1. 基础命令

连接用户:ssh [用户名]@[IP地址]

1. 关机
  • poweroff
  • shudown -h now
2. 重启
  • reboot

  • shudown -r now

3. ls命令
  1. ls 查看当前位置有哪些文件
  2. ls -l 查看当前位置文件的详细信息 (可以缩写为 ll)
    • (文件类型与权限 硬链接数 所有者 所有者所属组 所占空间 时间戳 文件名)
  3. ls -a 可以把系统隐藏的文件显示出来
  4. -d 查看目录属性
  • ls --help 帮助命令
4. cd — 切换目录
  1. cd ./public 切换到以当前目录为相对路径的public目录中
  2. cd … 切换到上一级目录里
  3. cd ~ 切换到当前用户的家目录
  4. cd - 退回到刚才的目录
5. pwd — 打印当前工作目录的绝对路径
6. touch — 新建一个文件
  • touch 文件名
7. mkdir — 创建目录(文件夹)
  • mkdir 目录名称
8. cp — 将一个或多个源文件复制到指定目录
  • cp [选项] 源文件或目录 目标目录
  • -r 递归处理,将指定目录下的文件及子目录一并处理
  • -p 拷贝的同时不修改文件属性,包括所用这、所属组、权限和时间
  • -f 强行复制文件或目录,不管文件或目录是否存在
9. mv
  • 移动文件或目录 mv 源文件或目录 目标目录
  • 重命名 mv 源文件名称 新文件名称
  • 可以移动与重命名一起用 mv 源文件名称 目标目录/新文件名称
10. rm
  • rm -f 强制删除文件或目录
  • rm -rf 选项-r与-f结合,强制删除文件夹及里面的所有文件
  • rm -r 删除文件夹及里面的子文件
11. rmdir — 删除一个空目录
12. 文件查看目录
  • cat 文件名 — 浏览文本内容
  • more 文件名 — 分页显示文本内容
  • head -n 文件名 — 显示前 n 行内容
  • tail -n 文件名 — 显示文件的最后 n 行 内容
13. 权限管理命令
  • chmod — 修改权限(读r、写w、执行x)必须是root用户
    • a 表示 all,u 表示 user,g 表示 group,o表示other
    • 例如:chmod a-r 123.c 去掉所有人对123.c文件的读权限
    • 例如:chmod u+r 123.c 让拥有者有读的权限
    • 读r的权限是4,写w的权限是2,执行x的权限是1
    • 例如:777 表示 -rwxrwxrwx 666 表示 -rw-rw-rw 644 表示 -rw-r–r--
    • 例如:chmod 640 123.c 将123.c文件的权限修改为 -rw-r-----
  • chown — 修改文件的所有者 必须是root用户
    • chown 修改后的所有者 文件名
  • chgrp — 修改文件所在的工作组
    • chgrp 修改后的工作组 文件名

对于 -rwx-xr-x文件

rwx r-x r-x

拥有者的权限 所在工作组的权限 其他人的权限

14. 文件搜索命令
  • which
    • which 命令 — 查看命令所在路径
    • alias 表示 别名,外号 alias kk=‘which touch’ — 用kk表示which touch
  • find 借助搜索关键字查找文件或目录 — find 搜索路径 [选项] 搜索关键字
    • -name 根据文件名查找
    • -size 根据文件大小查找
    • -user 根据文件所有者查找
  • locate 速度大于find
    • find搜索整个硬盘,locate搜索数据库,即便文件存在,数据库中没有记录,locate便搜索不到
    • updatedb 更新数据库,这两个命令连在一起使用
  • grep 检索字符串的匹配
15. 网络管理与通信命令
  • ifconfig
  • netstat 打印linux系统中网络系统的状态信息
    • netstat [选项]
      • -a 显示所有端口
      • -at 列出所有tcp端口
      • -au 列出所有udp端口
  • ping 测试主机之间网络的连通性
  • write 使当前用户向另一个用户发送信息
    • write 用户名
  • wall 使当前用户向所有用户发送消息
    • 命令格式:wall
16. 压缩解压命令

gzip/gunzip、zip/unzip、bzip2/bunzip2、tar

  • gzip 获得gz格式的压缩包,压缩后不保存源文件,若同时列出多个文件,则每个文件会被单独压缩
    • gzip [选项] 文件
  • gunzip [选项] 压缩包包名
  • bzip2 获得.bz2后缀名的源文件 使用选项 -k 时保留源文件
  • bunzip2 压缩包报名
  • zip 获得zip格式的压缩包,压缩后保留源文件
    • zip [-r] [压缩后文件名称] 文件或目录 -r 表示递归压缩
  • unzip [选项] 压缩包包名
  • 打包命令 tar
    • 功能:打包多个目录或文件,通常与压缩命令一起使用
    • 格式:tar [选项] 目录 -zcvf(压缩) -zxvf(解压)
      • -c 产生tar打包文件
      • -v 打包时显示详细信息
      • -f 指定压缩后的文件名
      • -z 同时通过gzip指令压缩备份文件,压缩后格式为 tar.gz
      • -x 从打包文件中还原文件 (解压)
    • tar -zcvf 压缩后文件名 压缩前文件名
    • tar -zxvf 压缩包
17. 帮助命令 (命令 --help)
  • man 获取linux系统的帮助文档 manpage中的帮助信息
    • 命令格式:man [选项] 命令/配置文件
    • -a 在所有的man帮助手册中搜索
    • -p 指定内容时,使用分页程序
    • -M 指定man手册搜索的路径
  • info 用于调用Linux下的帮助文档,获取帮助信息。
  • whatis 用于查询命令的功能,并将查询结果打印到终端。
    • whatis [命令名称]
  • whoami 用于打印当前有效的用户名称 (没啥用。。。。。)

2. Linux常用工具

1. vi编辑器

Linux系统下最基本的编辑器,工作在字符模式下,工作模式分为命令模式、插入模式和行底模式

  • 行底模式
    • :set nu 设置行号
    • :set nonu 取消行号
  • 编辑模式进入插入模式:a / i / o 插入的位置不一样
  • 插入模式进编辑模式:ESC
  • 编辑模式进入最后一行模式: “:”
  • 最有一行模式下的命令:
    • :w 保存文件
    • :wq 保存文件并退出vi
    • :x 保存文件并退出vi
    • :q! 不保存文件,强制退出vi
    • :w 名称 另存为…
  • 编辑模式下的操作:
    • u 撤销前面多次修改
    • ctrl + r 反撤销
    • [ n ] x 删除光标后n个字符
    • [ n ] X 删除光标前n个字符
    • [ n ] dd 删除从当前开始的n行
    • [ n ] yy 复制从当前开始的n行
    • p 把粘贴板上的内容插入到当前行
    • . 执行上一次操作
    • shift + zz 保存退出当前文件
  • 编辑模式下移动光标
    • [ n ] G 将光标定位到第n行开始处
    • G 将光标定位到文件结束出
    • gg 将光标定位到文件开始处
  • 编辑模式下的查找
    • /字符串 从光标开始向文件尾查找字符串
    • n: 同一方向重复上一次查找命令
    • N: 反方向重复上一次查找命令
    • :nohls 取消高亮
    • :sethls 设置高亮
2. GCC编译器

可编译C语言、java、OC等多种编程语言

  • gcc [文件名] -o [编译后的文件名]
  • 预处理 -E
  • 编译 -S
  • 汇编 -O
  • 链接
    • 多文件编译
  • 执行文件 ./[文件名] *.out
  • 编译 c 程序:gcc hello.c -o hello
  • 运行 c 程序:/hello
3. GDB调试工具

Linux系统中使用的一种非常强大的调试工具

  • 在代码中加入调试信息,并调试信息
    • gcc [文件名] -o [编译后的文件名] -g
    • (gdb) gdb app
  • 列出程序代码,并设置断点
    • list 行号
    • b 行号
    • b 22 if i = 5 在22行设定待条件的断点
    • info b 查看断点
    • disable NUM 取消断电
  • 查看变量值
    • p 变量名
  • 继续执行
    • s 单步执行
    • n 单步执行并跳过标准函数库

3. 用户与用户组管理

用户管理即对用户账号进行的管理,包括账号的添加、密码设置、修改和删除;

用户组的管理包括用户组的添加,更改和删除操作、用户组切换等。

1. 添加用户

useradd [选项] 用户名

  1. -d 指定用户登入时的目录

  2. -c 指定账户的备注文字

  3. -e 指定账号的有效期限

  4. -f 缓冲天数,密码过期时在指定天数后关闭该账号

  5. -g 指定用户所属组

  6. -G 指定用户所属的附加用户组

  7. -m 自动建立用户的登入目录

  8. -r 创建系统账号

  9. -s 指定用户的登录shell

  10. -u 指定用户的ID。若添加 -o 选项,则用户ID可与其他用户重复

  • 说明:

    1. 1~1000为系统用户ID,用户ID从1001开始

    2. 可通过查看 /etc/passwd 文件,查看已存在的用户

    3. 创建账号的用户需要有创建账号的权限

2. 设置用户密码

passwd [用户名称]

  • 说明
    1. root用户可随意修改密码,即便出现警告,也可成功保存
    2. 普通用户设置密码是应尽量复杂,避免与用户名相同
    3. 修改当前登陆账户的密码时,可缺省用户名
    4. 用户密码保存在 /etc/shadow 文件中 使用 tail 命令查看
3. 删除用户

userdel [选项] 用户名

  • -f 强制删除用户
  • -r 递归删除(一次性删除目录下的所有)
4. 修改用户

usermod

  • 修改用户的ID:usermod -u [修改后的ID值] [用户名]
5. 用户组管理

每个用户都有一个用户组,若再创建账户时未指定,那么系统会议用户名作为该新用户的用户组,这个组就是基本组,若在某个用户的目录中创建文件,文件的所属组就是用户的基本组;另外可以为用户指定附加组,初级本组之外,用户所在的组都是附加组,为用户指定附加组,可以使用户拥有对应的权限。

/etc/group 可以查看组的信息

  • 新建用户组 groupadd [选项] 组名
  • groupmod 更改群组识别码或名称。 groupmod -n [新群组名称] [旧群组名称]
  • 切换用户组的命令 newgrp 用户组名 (不知道切换成功的话,新建一个文件,查看它的属性即可)
  • 修改用户组密码 gpasswd 组名
  • 把某个用户设为管理员:gpasswd -A [用户名] [组名]
  • 把某个用户拉进组: gpasswd -M [用户名] [组名]
6. 用户切换
  • su - [用户名]

    • -c 执行完指定的命令后,切回原来的用户
    • -l 切换用户的同时,切换到对应的工作目录,环境变量也会改变
    • -p 切换用户时,不改变环境变量
    • -m 指定执行的shell
    • 特点:完全切换
  • sudo [选项] -u 用户 [命令] 临时切换

    • -b 在后台执行命令

    • -h 显示帮助

    • -H 将HOME环境变量设置为新身份的HOME环境变量

    • -k 结束密码的有效期限

    • -l 列出目前用户可执行与无法执行的命令

    • -p 改变询问密码的提示符号

    • -s 执行指定的shell

    • -u 以指定的用户作为新的身份,及切换到指定用户。默认切换到root用户

      sudo命令可以视为受限的su,可以使用visudo命令打开 /etc/sudoers 文件并进行编辑,使用该命令打开sudoers文件进行编辑时可以防止其他用户同时修改该文件,且在保存退出时,系统会对于法进行检查。

4. shell编程

包裹在内核之外,位于内核和用户之间

shell的种类:BSh、CSh、KSh、bash

查看shell ll /bin/*sh

shell功能 命令解释器,linux中的所有可执行文件都可以在shell中执行,可执行程序分为五类

  • linux命令
  • 内置命令
  • 实用程序
  • 用户程序:由用户编写的,经过编译后可执行的文件
  • Shell脚本:使用shell语言编写的批处理文件
1.shell的应用技巧: 重定向、管道、命令连接符、文本提取器
  1. 输入/输出重定向

    • 从终端输入的数据称为标准输入,将打印数据到终端称为标准输出,并设置了3个标准文件,分别是关联标准输入,标准输出以及标准错误输出信息。标准输入文件的编号为0,默认设备是键盘,标准输出文件的编号为1,默认设备是显示器;标准错误文件的编号为2,默认设备也是显示器。

    • Shell默认终端接受用户命令,并将命令执行过程中产生的错误与命令的执行结果打印到终端,但并非任何时候用户都希望使用默认设置,这种情况下,可使用重定向。重定向分为3种。

    • 输入重定向

      1. 命令<文件1 命令把文件1的内容作为标准输入设备

      ​ 比如:cat<123.txt 将123.txt作为输入设备,并将内容显示到控制台。

      1. 命令<<标识符 命令从标准输入中读入内容,直到遇到“标识符”为止。

      ​ 比如:cat<<food 将food之前的内容作为输入传递给cat。碰到food自动结束输入,并将输入的内容显示出来。

      1. 命令<文件1>文件2 同时使用输入输出重定向,命令把文件1的内容作为标准输入,把文件2作为标准输出。
    • 输出重定向

      ​ 命令>文件名 输出的信息以覆盖的方式打印到文件中,

      ​ cat test.c > 111.c 将 test.c 文件的内容打印到 111.c 中 左侧的内容会将右侧的内容覆盖

      ​ cat test.c >> 111.c 将 test.c 文件的内容 追加 到 111.c 文件中

    • 错误重定向

      ​ 命令 2>文件名

  2. 管道命令

    类似于生产线, " | "用于连接两个命令,前面命令执行的结果交给后面处理

    ls -l /etc | grep ini 含义:查找 etc 下文件 含有 ini 的文件名

  3. 命令连接符

    Shell中提供了一些用于连接符号的符号,包括

    • “;” 会按照先后次序依次执行
    • “&&” 只有该连接符号之前的命令执行成功后,它后面的命令才被执行
    • “||” 只有前面的命令执行失败后,才会执行后面的命令。
  4. 文本提取器

    • shell中常用awk提取文档或标准输出中的文本信息,实际上是一个强大的文本分析工具,有点类似于grep
2. 第一个shell程序

\c表示不换行

  • 第一行:#!/bin/sh 指定脚本程序
  • " # " 表示注释
  • 变量不需要声明
  • 行尾不需要分号
  • echo 表示输出
  • 再输出变量之前要加一个" $ ",表示输出的是变量的内容
  • 最后一行:exit 0
  • 运行方法
    • 加上 x 权限,然后运行程序:./test.sh
    • 使用命令:sh test.sh
3. 变量的定义
  1. shell的变量在使用之前无需定义,可以在使用的同时创建。

  2. shell中的变量没有明确的分类,一般情况下,一个变量保存一个串

  3. shell中的变量若需要进行计算,需使用工具进行转换。

  4. Shell变量的变量名由字母、数字和下划线组成,开头只能是字母或下划线。

  5. 若shell变量中出现其他字符,则表示变量名到此前为止。

  6. 给变量赋值时,等号两端不能有空格,其格式为 “变量名=值”,若要给变量赋空值,缺省格式中“值”的部分,跟上换行符即可。

  7. 若变量中含有空格,必须使用通过引号将变量括起。

  8. 注意:Shell中可以使用关键字 “readonly” 将变量设置为只读变量。此后若想重新赋值,则会报错。

4. 变量的引用
5. 变量的输入
  1. Shell脚本中通过echo关键字打印变量,通过read关键字读取变量
  2. 定义:read 变量名
6. 变量的分类
  1. 环境变量

    1. 环境变量又称永久变量,此类变量不仅可以作用于单个脚本,还可用于创建该变量的Shell以及从该Shell派生的子Shell或进程中。为了区别于局部变量,环境变量中的字母全部为大写。
    2. 定义:export 变量名
  2. 位置变量 ----------把外部的数据想方设法引入内部。

    1. 位置变量执行脚本时传入脚本中对应脚本位置的变量。类似函数的参数,饮用方法为$符号加上参数的位置。
    2. $# 统计未知变量的个数
    3. $0 显示当前shell脚本的文件名称
    4. $n 表示第n个未知变量
    5. 每在程序中增加一个 shift 关键字,会按照顺序左移一位,即第1个变量被移除,第2个变量被移到第1个位置。
    6. 使用:sh test.sh AA BB CC "AA"表示第1个位置变量,“BB”表示第2个位置变量,“CC”表示第3个位置变量。这些参数可以参与程序的运算。
  3. 标准变量

    1. 标准变量也是环境变量,在bash环境建立时生成,该变量自动解析。
    2. 可以使用env命令查看系统中的环境变量,包括环境变量和标准命令。
  4. 特殊变量

    1. “#” 传递到脚本或函数的参数数量
    2. “?” 前一个命令执行情况,0表示成功,其他值表示失败。
    3. “$” 运行当前脚本的当前进程id号
    4. “!” 运行脚本最后一个命令
    5. “*” 传递给脚本或函数的全部参数。
  5. 局部变量

    定义一个局部变量:local 变量名

7. 变量的运算
  1. Shell中变量没有明确的类型,变量值都以字符串的形式存储。若想进行算术运算,可以通过letexpr命令实现。

  2. let 可以进行算术运算和数值表达式测试 let 表达式

  3. let命令也可以用双括号代替

    比如:i=1 ((i+=3))

  4. expr 用于对整型变量进行运算。使用要求:

    1. 若表达式中是遍历,使用’"$"引用即可

    2. 运算符与变量或数据之间需要有一个空格。

    3. 若要在脚本中使用expr命令,需要使用符号” ` “(该按键位于TAB上)

      比如:a=10 b=20 value=expr $a + $b

8. 条件语句
  1. 判断语句通常分为3类:字符串比较,算术比较和针对文件的条件测试

    1. 字符串比较
      1. str1=str2 若两个字符串相等,则结果为真
      2. str1!=str2 若两个字符串不相等,则结果为真
      3. -n str 若字符串str不为空,则结果为真
      4. -z str 若字符串str为空,则结果为真
    2. 算术比较
      • expr1 -eq expr2 若两个表达式返回值相同,则结果为真
      • expr1 -ne expr2 若两个表达式返回值不同,则结果为真
      • expr1 -gt expr2 若expr1的返回值大于expr2的返回值,则结果为真
      • expr1 -ge expr2 若expr1的返回值大于等于expr2的返回值,则结果为真
      • expr1 -lt expr2 若expr1的返回值小于expr2的返回值,则结果为真
      • expr1 -le expr2 若expr1的返回值小于等于expr2的返回值,则结果为真
      • !expr 若表达式的结果为假,则结果为真
    3. 针对文件的条件测试
      • -d file 若文件file是目录,则结果为真
      • -f file 若文件file是普通文件,则结果为真
      • -r file 若文件file可读,则结果为真
      • -w file 若文件file可写,则结果为真
      • -x file 若文件file可执行,则结果为真
      • -s file 若文件file大小写不为0,则结果为真
      • -a file 若文件file存在,则结果为真
  2. if

    1. 使用 test 命令 或 “[” 命令对条件进行判断,其判断的条件可以是命令或脚本

      • 比如:判断文件是否存在

      • if test -f file
        then
        ...
        fi 
        
    2. #单分支if语句(方括号前后都要有空格)
      if [ 条件语句 ]; then
      ...
      fi
      
    3. #双分支if语句(方括号前后都要有空格)
      if [ 条件判断语句 ] ; then
      ...
      else
      ...
      fi
      
    4. #多分支if语句(方括号前后都要有空格)
      if [ 条件判断语句 ] ; then
      ...
      elif [ 条件判断语句 ] ; then
      ...
      else
      ...
      fi
      
  3. select

    1. 可以将选项列表做出类似目录的形式,以交互的形式选择列表中的数据。

    2. #select语法格式
      select 变量 in 列表
      do
      	...
      	break
      done
      
  4. case

    1. 可以将一个变量的内容与多个选项进行匹配,若匹配成功,则执行该条件下对应的语句。

    2. #case语法格式
      #匹配项可以用引号(单引号/双引号)括起来,也可以直接列出
      case var in
      	选项1)...;;
      	'选项2')...;;
      	"选项3")...;;
      	...
      	*)...
      esac
      
9. 循环语句
  1. for循环

    for 变量 in 变量列表
    do
    ...
    done
    
  2. while循环

    # 中括号前后要加 空格
    while [ 表达式 ]
    do
    ...
    done
    #示例:完成1~100的累加
    
  3. until循环

    # util循环与while格式基本相同,不同的是,当until循环的条件为假时,才能继续执行循环中的命令。until [ 表达式 ]do...done
    
10. Shell脚本调试
  1. Shell中提供了一些选项,用于shell脚本的调试过程。常用的选项有以下几个:

    1. -n 不执行脚本,进检查脚本中的语法问题

      ​ 比如:sh -n test.sh

    2. -v 再执行脚本的过程中,将执行过的脚本命令打印到屏幕

    3. -x 将用到的脚本内容打印到屏幕上

11.Shell中的函数
  1. 说明:

    1. function关键字可省略
    2. 函数名后的 () 可以省略,若省略,函数名与 { 之间要有一个空格
    3. Shell脚本中的函数不带任何参数
    4. Shell脚本函数中可以使用return返回一个值,也可以不返回,若不设置返回值,则该函数返回最后一条命令的执行过程
  2. #格式如下[function] 函数名[()]{	代码段	[return]}
    
  3. 函数的调用

    shell中没有main函数,想调用函数时,直接写函数名即可

  4. 函数中的变量

    #!/bin/sh# shell中没有局部变量一说,若想定义局部变量,需要使用关键字 localfunction fun(){	a=10	echo "fun:a="$a}a=5echo "main:="$afunecho "main:a="$aexit 0# 输出结果:# main:a=5# fun:a=10# main:a=10function fun(){	local a=10	echo "fun:a="$a}a=5echo "main:="$afunecho "main:a="$aexit 0# 输出结果:# main:a=5# fun:a=10# main:a=5
    

5. 进程管理

1. 挂载
  1. monut 将某个分区挂载到目录
    • 格式:mount [选项] [参数] 设备 挂载点.
    • 常用选项:" -t " 指定待挂载设备的文件系统类型(可省略)
    • 常用选项:" -o " 描述设备的挂载方式
  2. umount
    • 含义:当挂载的设备是移动存储时,要进行的工作是在该设备与主机之间进行文件传输,那么在文件传输完毕之后,需要卸下该分区,umount可实现该操作。
    • 格式:umount [选项] [参数]
2. linux有5钟状态: 初始态、就绪态、运行态、睡眠态和终止态
3. 进程管理命令
  1. ps (Process Status) 查看当前系统中正在运行的进程
    • ctrl + z 可以最小化程序——扔到后台
  2. top 可以实时观察系统的整体运行情况,默认时间间隔为3秒----------类似于任务管理器
    • 可以使用 s 修改时间间隔,按 q 退出
  3. pstree 以树状图的形式显示系统中的进程,可以直接观察到进程间的派生关系
  4. pgrep 根据进程名从进程队列中查找进程,查找成功后默认显示进程的pid
    • pgrep [选项] [参数]
  5. nice 用于设置Linux系统中进程的优先级,常用选项有 “-n”,n表示优先级,是一个整数
    • nice [选项] [参数]
  6. bg和fg 使进程在前台和后台之间进行切换
    • bg 将进程放入后台执行,使前台可以执行其他任务。格式: bg [参数]
    • fg 将后台的进程调往前台。格式: fg [作业号] ----------- 使用jobs可查看作业号
  7. jobs 查看Linux系统中的作业列表及作业状态。格式:jobs [选项] [参数]
  8. kill(特别关键) 用于终止正在运行的进程,工作原理是发送某个信号到指定进程,以终止该进程。
    • 格式:kill -9 [pid]

6. 其他(data, bc, echo, last, history, sort, comm, diff, wc, ln)

  1. data

    • 可以显示日期,只输入date则以默认格式显示显示当前时间若需要以指定格式显示时间,可以使用"+"开头的字符串指定具体格式。
    • 比如:data “+现在的时间是:%Y-%m-%d %H:%M:%S”
  2. bc

    • 可以使用bc命令在命令行模式下进行一些简单的加减乘除计算,退出时输入quit
    • 若需要输出小数时,需要执行 scale=number,number指的是小数点后面的位数。
  3. echo 用于字符串的输出,可以使用转义字符 “\n”,显示换行等

  4. last

    • 显示近期用户或终端的登陆情况。
    • -R 表示省略hostname的栏位。-num,展示前num个,username,展示username的登入信息
  5. history

    • 用于显示历史记录和执行过的指令命令,后面加n,表示显示最近的n条记录
    • !n 表示执行历史记录中第n条命令,"!!" 表示执行上一条命令。
  6. sort

    • 默认是将文件的每一行作为一个单位,相互比较,比较原则是从首字母向后,依次按ASCLL值进行比较,最后将它们按照升序输出。
    • -u表示去除重复行,-r表示降序,-n表示以数值来排序。
  7. comm

    • 会一列列比较两个已排序文件的差异,并将结果显示出来,第1列是仅在第1个文件中出现过的列,第2列是仅在第2个文件中出现过的列,第3列是仅在第3个文件中出现过的列,若给予的文件名为"-",则会从标准输入设备读取数据
  8. diff

    • 以逐行的方式,比较文本文件的异同处,若要指定比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。"-w" 表示忽略空格,"-y"表示以并列的方式显示文件的异同之处。
    • "|“表示前后两个文件内容不同,”<“表示前面文件比后面文件多了一行内容,”>表示后面文件比前面文件多了一行内容。
  9. wc

    • 计算文件的Byte数、字数、或是行数等,若指定文件名为"-",则从标准输入设备读取数据。计算出来的3列数据分别是行数、单词数、字节数。
  10. ln

    • 当我们需要在不同的位置使用同一个文件时,可以使用该命令为某文件在另一个位置建立一个不同的链接,有点类似于windows下的快捷方式。ln命令会保持每一处链接文件的同步性,不论改动哪一处,其他文件都会发生相同的变化。
    • ln的链接分为软链接和硬链接,软链接有参数"-s",只会在选定位置上生成一个文件的镜像,不会占用磁盘空间,硬链接会在选定位置上生成一个和源文件大小相同的文件。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值