基础作业3
在刚开始安装虚拟机的时候遇到了许许多多的问题,感谢我遇到了很棒的室友,悉心教导,最终完美的解决了这些问题。
以下为个人整理笔记:
按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
按键 作用
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动
who 命令其它常用参数
参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级
使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性
使用cp(copy)命令复制一个文件或目录到指定目录。如果直接使用cp命令,复制一个目录的话,会出现错误要成功复制目录需要加上-r或者-R参数,表示递归复制,就是说有点“株连九族”的意思:
使用rm(remove files or directories)命令,删除一个文件或目录
有时候你会遇到想要删除一些为只读权限的文件,直接使用rm删除会显示一个提示,你如果想忽略这提示,直接删除文件,可以使用-f参数强制删除:跟复制目录一样,要删除一个目录,也需要加上-r或-R参数
使用mv(move or rename files)命令,移动文件(剪切)
使用=号赋值运算符为变量 读取变量的值,使用echo命令和$符号($符号用于表示引用一个变量的值,初学者经常会忘记输入):
命令 说明
set 显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
exp和ort 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量
文件后缀名 说明
*.zip zip程序打包压缩的文件
*.rar rar程序压缩的文件
*.7z 7zip程序压缩的文件
*.tar tar程序打包,未压缩的文件
*.gz gzip程序(GNU zip)压缩的文件
*.xz xz程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar.gz tar打包,gzip程序压缩的文件
*.tar.xz tar打包,xz程序压缩的文件
*tar.bz2 tar打包,bzip2程序压缩的文件
*.tar.7z tar打包,7z程序压缩的文件
du命令分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小:
$ du -h -d 0 *.zip ~ | sort
h, --human-readable(顾名思义,你可以试试不加的情况)
d, --max-depth(所查看文件的深度)
使用-e参数可以创建加密压缩包:
$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou
注意: 关于zip命令,因为 Windows 系统与 Linux/Unix 在文本文件格式上的一些兼容问题,比如换行符(为不可见字符),在 Windows 为 CR+LF(Carriage-Return+Line-Feed:回车加换行),而在 Linux/Unix 上为 LF(换行),所以如果在不加处理的情况下,在 Linux 上编辑的文本,在 Windows 系统上打开可能看起来是没有换行的。如果你想让你在 Linux 创建的 zip 压缩文件在 Windows 上解压后没有任何问题,那么你还需要对命令做一些修改:
$ zip -r -l -o shiyanlou.zip /home/shiyanlou
需要加上-l参数将LF转换为CR+LF来达到以上目的。
从指定压缩包文件中删除某个文件:
$ rar d shiyanlou.rar .zshrc
查看不解压文件:
$ rar l shiyanlou.rar
使用unrar解压rar文件
全路径解压:
$ unrar x shiyanlou.rar
去掉路径解压:
$ mkdir tmp
$ unrar e shiyanlou.rar tmp/
创建一个 tar 包:
$ tar -cf shiyanlou.tar ~
解包一个文件(-x参数)到指定路径的已存在目录(-C参数):
$ mkdir tardir
$ tar -xf shiyanlou.tar -C tardir
只查看不解包文件-t参数:
$ tar -tf shiyanlou.tar
保留文件属性和跟随链接(符号链接或软链接),有时候我们使用tar备份文件当你在其他主机还原时希望保留文件的属性(-p参数)和备份链接指向的源文件而不是链接本身(-h参数):
$ tar -cphf etc.tar /etc
我们只需要在创建 tar 文件的基础上添加-z参数,使用gzip来压缩文件:
$ tar -czf shiyanlou.tar.gz ~
解压*.tar.gz文件:
$ tar -xzf shiyanlou.tar.gz
压缩文件格式 参数
*.tar.gz -z
*.tar.xz -J
*tar.bz2 -j
使用 df 命令查看磁盘的容量
$ df 和 $ df -h
-d参数指定查看目录的深度
只查看1级目录的信息
$ du -h -d 0 ~
查看2级
$ du -h -d 1 ~
使用 mkfs 命令格式化磁盘:
你可以在命令行输入 sudo mkfs 然后按下Tab键,你可以看到很多个以 mkfs 为前缀的命令
那么我们如何挂载真正的磁盘到目录树呢,mount命令的一般格式如下:
mount [options] [source] [directory]
一些常用操作:
mount [-o [操作选项]] [-t 文件系统类型] [-w|--rw|--ro] [文件系统源] [挂载点]
我们现在直接来挂载我们创建的虚拟磁盘镜像到/mnt目录:
$ mount -o loop -t ext4 virtual.img /mnt
也可以省略挂载类型,很多时候 mount 会自动识别
以只读方式挂载
$ mount -o loop --ro virtual.img /mnt
或者mount -o loop,ro virtual.img /mnt
使用 umount 命令卸载已挂载磁盘
命令格式 sudo umount 已挂载设备名或者挂载点,如:
$ sudo umount /mnt
查看硬盘分区表信息
$ sudo fdisk -l
进入磁盘分区模式
$ sudo fdisk virtual.img
$ sudo losetup /dev/loop0 virtual.img
如果提示设备忙你也可以使用其它的回环设备,"ls /dev/loop*"参看所有回环设备
解除设备关联
$ sudo losetup -d /dev/loop0
然后再使用mkfs格式化各分区(前面我们是格式化整个虚拟磁盘镜像文件或磁盘),不过格式化之前,我们还要为各分区建立虚拟设备的映射,用到kpartx工具,需要先安装:
$ sudo apt-get install kpartx
$ sudo kpart kpartx -av /dev/loop0
取消映射
$ sudo kpart kpartx -dv /dev/loop0