20165316 预备作业3 Linux安装及学习
Linux安装
我下载的是VirtualBox 5.2.6和Ubuntu 17.10.1,感觉这两个版本的兼容性不是太好,因为我在Oracle的官网社区中看到不少新版本的问题没有得到解决,而老版本(VirtualBox 5.1.8和Ubuntu 16.04)很多问题都已得到解决,这也从侧面反映出了linux系统缺乏专业的支持厂商导致的一些系统本身的问题得不到及时解决的情况,同时也反映出一个成熟的系统,需要很多人——不管是技术人员还是用户齐心协力进行维护和完善。
我遇到的问题
其实有些问题是因为自己太蠢,比如没有分清Ubuntu和Oracle公司得Linux系统,在VisualBox中选错导致优化部分安装失败等等,我就不一一列举了,相信大家也不会犯同样的错误。在这里我主要列举我遇到的一些非智商因素导致的错误:
1、(已解决)开机时出现的VBoxClient打开失败错误!
这个问题在Oracle的VirtualBox社区中有讨论,还有一个类似的问题被他们比较着讨论,有人提出安装gcc以后重启,我当时试过没有用。但是我发现在没有安装增强功能时,系统没有报错,也就是说系统在读取虚拟盘(我的是VBox_GAs_5.2.6)时出现了问题,于是我退出虚拟盘(设备->分配光驱->移除虚拟盘),从新安装增强功能,之后,虚拟机变成只能使用安全模式打开了,而且无法进入桌面。我没有办法,重装虚拟机,在安装时选择下载更新,更新了Ubuntu系统并重启,使用“sudo apt-get install build-essential”命令安装了gcc环境(ps:sudo apt-get build-dep gcc在我这不好使),然后再安装增强功能,很顺利的安装完增强功能以后,我重启了电脑,没有报错,我认为最终应该是Ubuntu系统更新的缘故导致问题的解决,而论坛里的评论停留在七天前,我认为应该是默认问题已经解决了。
2、(已解决)共享文件夹/etc/fstab文件打不开问题
其实总体而言是新版本中共享文件夹的设置问题。其实新在版本中,我们安装完增强功能,并在VirtualBox终端中设置完共享文件夹之后,桌面上会自动出现一个共享文件夹(所在目录为“ /media/sf_共享文件夹名称”),我们只需要将当前用户加入到vboxsf组即可,当然用老版本的办法依然会报错,依鄙人短见,应该是已经存在一个共享文件夹,导致无法再设置一个共享文件夹,至于/etc/fstab文件使用gedit打不开,但是使用vim可以打开,我认为时gedit软件本身的问题。
Linux学习
一、学习别出心裁的Linux命令学习法
- Linux的架构,包括:应用、壳shell、库函数、系统调用、内核。
- 快捷键:这个很重要。但由于没有涉及到编程,使用CTRL+SHIFT+T和ALT+数字N比较少,但是CTRL+ALT+T、Tab、上下键和CTRL+C以及CTRL+D让我印象深刻,也是平时在shell中最常用的快捷键。
- Linux中的命令格式:command [options] [arguments]。即command [选项] [参数]
- 帮助文档man,使用printf查看,-k搜索函数,-f查看命令基本功能
- Cheat:合法作弊器。我使用-h查看帮助后发现:-d显示cheat安装路径,-e新建一个小抄,-l列举所有可用的小抄,-s在所有可用的小抄中查找,-v显示cheat的版本。
- 其他和查找相关的核心命令——find、locate、grep、whereis和which
- cd读取某个目录,cd直接回车回到根目录,“.”指当前目录,“..”指上一层目录。
- ls列出该目录内的所有文件。-a显示所有文件,-S按照大小排序。-lh显示详细信息。
- sudo大概是目前最常用的,su切换成root模式(需输入当前用户密码)。
- gedit是Ubuntu自带的文本编辑器,具体操作使用--help命令有详细解释。
二、学习Linux基础入门课程
不得不说实验楼的虚拟环境架设的很好(目前为止,虽然第一次打开总卡顿)。
第一节 Linux系统简介
- Linux 主要是系统调用和内核两层,还包含在其上的应用程序
- 汇编语言,c语言,Unix系统,Minix系统,Linux系统的历史,关系,以及发明者。
- 1984年,Stallman,GNU项目,FSF基金会;1985年,GPL;1991年,Linux内核;1994年,Linux1.0。
- Ken Thompson:C 语言之父和 UNIX 之父;Dennis Ritchie:C 语言之父和 UNIX 之父;Linus Torvalds:Linux 之父;Stallman:著名黑客,GNU 创始人,开发了 Emacs、gcc、bash shell。
- Windows不可选择多种图形用户界面,不可定制剪裁、移植;Linux没有特定的支持厂商和足够的专业软件支持度。
第二节 Linux基本概念与操作
- 客户端功能的桌面环境KDE,GNOME,XFCE,LXDE;实验楼先后使用的是LXDE和XFCE煮面环境。
- 终端本质上是对应着 Linux 上的 /dev/tty 设备,多用户登陆也是通过这个设备。使用[Ctrl]+[Alt]+[F1]~[F6]进行切换,[F7]切回图形界面。
- Shell 有 bash、zsh、ksh、csh 等等,Ubuntu 终端默认使用的是 bash,默认的桌面环境是 GNOME 或者 Unity,实验楼使用的是zsh,xfce。
- 快捷键:CTRL+a移至行头;CTRL+s暂停;CTRL+e移至行末;CTRL+k删除后面所有;alt+Backspace删除前一个单词。
- 通配符:*匹配0或多个字符;?匹配任意一个字符;[list]匹配list中任意单一字符;[!list]匹配除list意外任意单一字符;[c1-c2]匹配c1到c2中任意单一字符;{string1,string2}匹配其中一个字符串;{c1..c2}匹配c1到c2中全部字符。
- man命令,--help命令。
第三节 用户及文件权限管理
- who命令:-a打印能打印的全部,-d打印死掉的进程,-m和am i,mom likes相同,-q打印当前登录用户数和用户名,-u打印当前登陆用户登陆信息,-r打印运行等级。
- su -l [用户名]切换用户,adduser添加新用户。
- 查看用户组,使用groups命令或直接查看/etc/group文件。用户需加入sudo组才能获得root权限。
- 删除用户deluser。
- 查看文件权限ls -l命令,会看文件类型权限。具体字段表示:[文件类型和权限] [连接数] [所有者] [所属用户组] [大小] [最后修改时间] [文件名]
- chown [用户名] [文件名] 更改文件所有者。
- chmod 更改文件权限,二进制数字表示和加减赋值操作。
第四节 Linux目录结构及文件基本操作
- FHS标准,两层规范,/ 下面的各个目录应该要放什么文件数据;针对 /usr 及 /var 这两个目录的子目录来定义。
- 使用tree查看各个目录的用途,并基本了解。
- 使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录, - 表示上一次所在目录,~ 通常表示当前用户的 home 目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。
- touch 创建文件,mkdir 创建空目录。
- cp [文件名] [复制到的位置],-r -R 复制目录下的所有文件。
- rm [文件名] 删除文件,-f忽略提示强制删除,-r删除整个文件夹。
- mv [源目录文件] [目的目录] 文件移动,mv [旧的文件名] [新的文件名] 文件重命名
- rename批量重命名
- cat正序打印文件,tac倒序打印文件,-n显示行号。nl 显示行号打印,-b 指定添加行号的方式,-n 设置行号位置,-w行号字段占用位数。
- more 单向分页查看文件,less 双向分页查看文件。
- head 查看文件前n行,tail 查看文件后n行。
- file 查看文件类型;vim 编辑文件。
第五节 环境变量与文件查找
-
使用 declare 创建变量(英文字母、数字、下划线),= 赋值,echo $ 查看变量的值。
-
使用 set、env、export(范围从大到小)查看shell中的变量。export 可将自定义变量导出为环境变量。
-
临时变量和永久变量,永久变量存放在重要文件 /etc/bashrc 和 /etc/profile 中,它们分别存放的是 shell 变量和环境变量。
-
添加自定义路径到“PATH”环境变量,修改.zshrc文件,使用 echo "内容" >>[文件名] 语句以追加的方式将内容重定向到一个文件中,>表示以覆盖的方式将内容重定向到一个文件中。
-
变量修改
-
unset 命令删除一个环境变量。
-
source 命令使环境变量文件立即生效,后面文件名不需要完整的绝对或相对路径名,如果用“.”代替 source,则需要完整的绝对或相对路径名。
-
whereis、which、find、locate 搜索文件。locate -c 统计数目,-i 忽略大小写查找;find -atime 最后访问时间,-ctime 最后修改内容时间,-mtime 最后修改文件属性时间。
第六节 文件打包与解压缩
-
多种打包与解压缩方式。
-
zip 压缩打包程序,-r 表示递归打包包含子目录的全部内容,-q 参数表示为安静模式,-o 表示输出文件名,-[1-9] 表示压缩的强度的大小,-x 排除某些特定文件,-e 创建加密压缩包,-l 使Windows兼容。
-
du 查看文件大小,-h 让人读懂,-d [数字] 查看文件深度。
-
unzip 解压 zip 文件程序,参数基本和 zip 相同,-d [目录名] 解压到指定目录,-l 只读不解压,-O指定编码类型。
-
rar 打包压缩命令,a 添加一个目录 ~ 到一个归档文件中,如果该文件不存在就会自动创建。d 从指定压缩包中删除某个文件,l 只看不解压。
-
unrar 解压缩rar文件,x 全路径解压,e 去掉路径解压。
-
tar 打包工具,-c 创建一个tar包文件,-f [文件名] 指定创建文件的文件名,-v 可视方式输出打包文件,-P 保留绝对路径符,-x 解包,-c [存在的路径] 指定解包位置,-t 只看不解,-z 使用gzip压缩文件(.tar.gz),-J 使用xz压缩文件(.tar.xz),-j 使用bzip2压缩文件(.tar.bz2)。
第七节 文件系统操作与磁盘管理
- df 命令查看磁盘容量,-h 人可以看的懂的方式。
- 物理主机上的 /dev/sda2 是对应着主机硬盘的分区,后面的数字表示分区号,数字前面的字母 a 表示第几块硬盘(也可能是可移动磁盘),你如果主机上有多块硬盘则可能还会出现 /dev/sdb,/dev/sdc 这些磁盘设备都会在 /dev 目录下以文件的形式存在。
- du 除了之前说过的 -h, -d 以外,-a 显示全部文件大小,-s 只显示总计。
- dd 创建虚拟镜像文件,if=[创建文件的目录],of=[文件名称],bs=[单位大小],count=[文件总共多少个单位大小]。
- mkfs 命令格式化磁盘,使用 Tab 快速查看可以格式化成的文件系统,形成 mkfs.[文件系统] [文件名] 的命令形式。
- mount 命令挂载磁盘,基本格式 mount [options] [source] [directory]。umount 卸载,直接加挂载文件的位置。
- fdisk 命令为磁盘分区,-l 查看硬盘分区表信息,使用 sudo fdisk [虚拟镜像文件] 进入磁盘分区模式,按照提示操作,输入 p 查看结果,输入 w 写入分区表。
- /dev/loop 目录下为所有回环设备,可通过 ls 命令查看。
- kpartx 程序用于为各个分区建立虚拟设备的映射,-av 建立映射,-dv 取消映射。
- losetup [回环设备] [镜像] 建立关联。
- 回环设备允许用户以一个普通磁盘文件虚拟一个块设备,个人理解就是让一个文件以某种设备的方式运行。
第八节 Linux下的帮助命令
- 内建命令与外部命令,主要区别在于程序是否存在于 Shell 中。可以使用 type 查看命令属性,结果为 a shell builtin 指内建命令,一个路径指外部命令,alias 指命令别名所设定的名称。
- help 命令获取帮助,help [内建命令] ;[外部命令] --help。zsh中没有,需要切到bash。
- man 命令获取帮助,man [命令],man ls 打开手册。
- info 命令获取帮助,info [命令],一般bash中自带info命令。
- 不要忘记之前的小抄——cheat命令。