Linux下命令(2)

解压缩命令

      Linux 下最常用的打包程序是 tar 命令, 使用 tar 打出来的包我们常称为 tar 包, tar包文件的命令通常都是以.tar 结尾的,生成 tar 包后,就可以用其它的程序来进行压缩了。

      功能: tar 是一个压缩解压工具。利用 tar,用户可以为某一特定文件创建档案(备份文件) , 也可以在档案中改变文件, 或者向档案中加入新的文件。 tar 最初被用来在磁带上创建档案, 现在,用户可以在任何设备上创建档案,如软盘。利用 tar 命令,可以把一大堆的文件和目 录全部打包成一个文件, 这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。 Linux 上的tar是GNU版本的 。

      语法: tar [主选项+辅选项] <目标文档> <源文件或者目录>

1.1 tar 解压/压缩使用规范

(1) 将/test 目 录下所有文件打包位 test.tar 文件

#tar -cvf test.tar /test

  注:如果打包的文件或者目录是绝对路径, 可能提示 tar: 从成员名中删除开头的“/” ,则在参数中添加-P 即可消除。

#tar -cvPf test.tar /test

(2)解压打包的.tar 文件

#tar -xvf test.tar

1.2 使用 gzip 压缩/解压文件

# tar -czf test.tar.gz test/ //压缩
# tar -xzf test.tar.gz //解压

1 .3 使用 bzip2 压缩解压文件

# tar -cjf test.tar.bz2 test/ //压缩
# tar -xjf test.tar.bz2 //解压

2.vim编辑器使用

       Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。

       Vim是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。

       vim的设计理念是命令的组合。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。同时VIM与很多快捷键设置和正则表达式类似,可以辅助记忆。并且vim针对程序员做了优化。

2.1vim基本操作

[wbyq@wbyq ~]$ touch main.c #创建文件
[wbyq@wbyq ~]$ vim main.c #打开文件
进入编辑状态:按’i’
退出vim操作方式:
先按ESC,再按shift+:’,输入wq

2.2 设置 vim 编辑器显示行号和 TAB 空格

[wbyq@wbyq ~]$ sudo vim /etc/vim/vimrc

Linux下命令(2)_ifconfig

2.3 vim快捷键

       复制:yy(复制光标处的一行), 按 p 粘贴;
  复制多行:3yy(复制光标处连续 3 行), 按 p 粘贴;
  删除:dd(删除光标处 1 行)
  删除多行:3dd(删除光标处连续 3 行)

  •  块操作:

v 可视化块选择状态, 选择块之后, 可以对块删除(d)、 复制(y)、 剪切(x);

u 撤销上次操作;

ctrl + r 恢复上次操作;

Ctrl+d 向下翻半页 down;

Ctrl+u 向上翻半页 up;

gg 光标定位到文档头;

G 光标定位到文档尾;

H 光标定位到当前页首;

L 光标定位到当前页的最后一行的行首;

[n]+ 光标向后移动 n 行,[n]表示一个整数, 比如 10+;

[n]- 光标向前移动 n 行,[n]表示一个整数, 比如 10+;

[n]G 光标定位到第 n 行行首, [n]表示一个整数, 比如 10+;

3.网络相关命令

3.1 ifconfig命令

功能: ifconfig 用于查看和更改网络接口的地址和参数,包括 IP 地址、网络掩码、广播地址。
语法: ifconfig -interface [options] address

  •  主要参数

​参数

说明

-interface

指定网卡名字,如eth0,ens33

up

激活指定的网卡

down

关闭指定的网卡

broadcast address

设置接口的广播地址

pointopoint

启用点对点方式

address

设置指定接口设备的ip地址

netmask addresss

设置接口的子网掩码


  •  应用说明

      ifconfig 是用来设置和配置网卡的命令行工具。为了手工配置网络,这是一个必须掌握的命令。使用该命令的好处是无须重新启动机器。要赋给 eth0 接口 IP 地址210.34.6.89,并且马上激活它,使用下面命令:

 注意:用ifconfig命令配置的网络设备参数,机器重新启动以后将会丢失。

      (1)查看网卡信息

# ifconfig //查看当前已经启动的网卡信息
# ifconfig -a //查看所有网卡的信息。包含未启动的网卡。
# ifconfig eth0 //查看 eth0 网卡的信息

 (2)启动与关闭网卡

# ifconfig eth0 up //激活名称为 eth0 的网卡
# ifconfig eth0 down //关闭名称为 eth0 的网卡

 (3)修改网卡MAC地址

首先必须关闭网卡设备: ifconfig eth0 down
修改MAC地址: ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新启用网卡: ifconfig eht0 up
这样网卡的MAC地址就更改完成了。每张网卡的MAC地址是惟一,但不是不能修改的,只要保证在网络中MAC地址的惟一性就可以了。

(4)设置网卡IP地址

ifconfig nes33 192.168.1.253 #设置网卡IP
ifconfig nes33 :0 192.168.1.252 netmask 255.255.255.0 #同一网卡绑定另一IP
ifconfig nes33 :0 192.168.1.251 netmask 255.255.255.0 #同一网卡绑定另一IP

3.2 ping命令

      功能: ping检测主机网络接口状态,使用权限是所有用户。

      ping命令是使用最多的网络指令,通常我们使用它检测网络是否连通,它使用ICMP协议。但是有时会有这样的情况,我们可以浏览器查看一个网页,但是却无法ping通,这是因为一些网站处于安全考虑安装了防火墙。

  示例:

$ ping 192.168.2.192 #ip地址测试
$ ping www.baidu.com #网络测试

3.3 ubuntu下防火墙启动与关闭

$ sudo ufw enable  #启动防火墙
在系统启动时启用和激活防火墙
$ sudo ufw disable #关闭防火墙
防火墙在系统启动时自动禁用

4. 磁盘操作相关命令

4.1 fdisk磁盘分区命令

  Linux下的fdisk功能是极其强大的,用它可以划分出最复杂的分区。

[wbyq@wbyq 1227]$ sudo fdisk -l /dev/sda #查看磁盘信息
Disk /dev/sda:50 GiB,53687091200 字节,104857600 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xa9f71e09

设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sda1 * 2048 104855551 104853504 50G 83 Linux

4.2 fdisk命令参数

  在命令行执行sudo fdisk /dev/sdb,可进行磁盘操作。

  在命令行执行sudo fdisk /dev/sdb,可进行磁盘操作。

参数

说明

m

查看帮助

p

打印分区表

d

删除分区

F

列举未分区的空闲区

n

添加新分区

w

将分区表写入磁盘并退出

q

退出而不保存更改

  •  示例
$ sudo fdisk /dev/sdb  #打开要操作的磁盘

欢迎使用 fdisk (util-linux 2.31.1)
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助) p #打印分区表
Disk /dev/sdb:28.8 GiB,30945574912 字节,60440576 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9dc7bebf
命令(输入 m 获取帮助) F #列出空闲分区,当前卡还未做分区
未分区的空间 /dev/sdb:28.8 GiB,30944526336 个字节,60438528 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节

起点 末尾 扇区 大小
2048 60440575 60438528 28.8G
命令(输入 m 获取帮助) n #添加新分区
分区类型
p 主分区 (0个主分区,0个扩展分区,4空闲)
e 扩展分区 (逻辑分区容器)
选择 (默认 p) p #设置为主分区
分区号 (1-4, 默认 1): 1
第一个扇区 (2048-60440575, 默认 2048):
上个扇区,+sectors +size{K,M,G,T,P} (2048-60440575, 默认 60440575): +10G #设置大小为10G

创建了一个新分区 1,类型为“Linux”,大小为 10 GiB。
命令(输入 m 获取帮助) w #保存退出
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。

4.3 mkfs格式化文件系统

$ sudo mkfs.fat /dev/sdb1  #格式化文件系统为FAT格式

4.4 df查看文件系统格式和磁盘大小

[wbyq@wbyq 1227]$ df -T -h /dev/sdb1  #-T查看文件系统格式,-h显示磁盘容量
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 vfat 10G 32K 10G 1% /media/wbyq/4666-2FBC
4.5 dd命令
  dd是Linux/UNIX下的一个非常有用的命令,作用是将一个指定文件拷贝到磁盘的指定块。可以用于磁盘备份、程序烧写等应用。
  基本语法: dd iflag=dsync oflag=dsync if=<输入文件> of=<输出文件> seek=<跳过扇区数量>
  •  dd命令参数

参数

说明

if=file

输入文件名,缺省为标准输 入

of=file

输出文件名,缺省为标准输出

ibs=bytes

一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。

obs=bytes

一次写 bytes 个字节(即一个块大小为 bytes 个字节)。

bs=bytes

同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。

cbs=bytes

一次转换 bytes 个字节,即转换缓冲区大小。

skip=blocks

从输入文件开头跳过 blocks 个块后再开始复制。

seek=blocks

从输出文件开头跳过 blocks 个块后再开始复制。 (通常只有当输

出文件是磁盘或磁带时才有效)。

count=blocks

仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。

cnotallow=conversion[,conversion…]

用指定的参数转换文件。

注意:指定数字的地方若以下列字符结尾则乘以相应的数字:b=512,k=1024

  •  运用示例

(1)磁盘测试

$ sudo dd if=/dev/sdb of=/dev/sdb

  硬盘较长时间(比如 1,2年)放置不使用后,磁盘上会产生magnetic flux point(磁通点)。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

(2)清除磁盘数据

$ sudo dd if=/dev/urandom /dev/sdb

  利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后, /dev/sdb将无法挂载,创建和拷贝操作无法执行。其中的/dev/urandom 是产生随机数的文件。

​(3)获取随机数据

$ sudo dd if=/dev/urandom of=123.dat bs=1024k count=2

  其中bs表示每一个块的大小是1024kb。count就表示块数量。加起来就会拷(1024*2)kb 的数据。

​(4)磁盘备份

$ sudo dd if=/dev/sdb of=disk.img

  将磁盘数据备份到当前目录的disk.img文件。备份之后可以使用压缩软件打开。如果需要恢复直接将参数变换个位置。

(5)程序烧写

$ sudo dd iflag=dsync oflag=dsync if=123.bin of=/dev/sdb seek=1057

      将123.bin文件拷贝到/dev/sdb设备中,seek表示跳过1057个块之后再进行拷贝。