预备作业3:Linux安装及命令入门
一、VirtualBox和Ubuntu的安装
通过学习实践基于VirtualBox虚拟机安装Ubuntu图文教程,我开始学习虚拟机的安装,根据教程一步步试着安装。
安装VirtualBox
我先点击进入了VirtualBox官网,却只看到了5.2.6和5.1.32两个版本,于是先试着把5.2.6下了下来,想试试看能不能正常安装。然而事情并不尽如人意,安装过程中还是遇到了一些小障碍。
-
在官网安装的时候下载速度特别慢
-
在官网中按教程下载的5.2.6版本却在官网中按教程下载的5.2.6版本却莫名变成了5.2.7版本,且安装的时候出现了未知错误。
因为实在不懂究竟是哪里出了问题,于是我在网上寻找了5.2.6版本的安装包重新下载安装了一次,这次在经过一点小问题后就成功装好了VirtualBox。
- 在window 7 64位的系统上安装oracle vm virtualBox 之后准备在虚拟机中装系统,发现虚拟机系统选项中只有32位选项没有64位选项,通过查询原因是由于cpu没有开启虚拟化。
解决方法也不难,在查阅资料后了解到只需重启win10电脑,进入Bios设置CPU虚拟化,将菜单中Configuration名目下的Intel Virtual Technology的状态从[Disable]切换成[Enable]即可。
安装Ubuntu
在询问了几个同学之后,我了解到官网的Ubuntu下载不稳定且缓慢,打开还有错误提示,于是在同学的帮助下找到了另外稳定便捷的途经,并最终成功安装好了Ubuntu。
- 下载安装包地址:下载Ubuntu
二、Linux基础命令的学习
(1)学习别出心裁的Linux命令学习法
通过对别出心裁的Linux命令学习法博客的阅读与学习,我了解了Linux相关的一些知识以及各种命令的使用方法。
- Linux操作系统
Linux是一种不同于Windows的操作系统,明白了Linux操作系统在计算机系统中包括系统调用和内核两层,如下图所示。
- Ubuntu重要快捷键
快捷方式 | 作用 |
---|---|
CTRL+ALT+T | 打开终端 |
CTRL+SHIFT+T | 新建标签页 |
ALT+N | 终端中切换到第N个标签页 |
Tab | 终端中命令补全 |
↑和↓ | 切换命令历史 |
CTRL+C | 中断程序运行 |
- Linux 命令
command [options] [arguments] //即command [选项] [参数]
- man 命令
man
是manual的缩写,通常使用man man
命令查看帮助,其中重要的选项有man -k
,用于搜索关键字,查找命令,等价命令为apropos
;以及man -f cmd
,可在找到命令后使用,用于查看命令基本功能,等价命令为whatis
。
- cheat 命令
使用老师给的地址下载后提示我无法打开…可能是安装包有损坏,于是没有自行安装进行深入探讨,只是在实验楼里试用了一下。
cheat命令是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序。它提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。
——引用自《别出心裁的Linux命令学习法》
- 其他核心命令
find
: 查找文件在系统中的位置
locate
: 神速版本的find
grep
: 对文件全文检索
whereis
和which
: 查看使用的命令工具装在什么地方
总结:仔细看完基础博客后,我感受到了Linux学习的前路漫漫,但也因此激发起我的好奇心,还有如此神秘复杂又美丽的语言在等着我去学习去挖掘,我应该更努力的学好这门语言。
(2) 实验楼的自主学习
实验楼地址:实验楼
实验1 Linux 系统简介
- 实验内容:Linux主要组成部分、历史简介、主要人物、Linux与Windows的不同之处、Linux学习方法
- 实验结果:进一步了解了Linux操作系统,了解到Linux平台有以下特点:
- 大都免费
- 为开源自由软件,用户可以修改定制和再发布,部分软件质量和体验欠缺
- 比Windows系统更安全
- 操作方面只需一个键盘就能搞定,一旦熟练掌握将节省大量时间
实验2 基本概念及操作
-
Linux桌面环境:可以自由定制,大部分用户端都使用的是KDE,GNOME,XFCE,LXDE 等。实验楼目前使用的就是 XFCE 桌面环境。
-
终端的概念:本质上是对应着 Linux 上的 /dev/tty 设备,默认提供了 6 个纯命令行界面的终端“terminal”来让用户登。,在物理机上可以使用
[Ctrl]+[Alt]+[F1]~[F6]
进行切换,使用[Ctrl]+[Alt]+[F7]
切换回图形界面。 -
Shell(壳):命令解析器,即指“提供给使用者使用界面”的软件,是用户与系统交流的中间程序,也是控制系统的脚本语言。
普通意义上的 Shell 就是可以接受用户输入命令的程序。它之所以被称作 Shell 是因为它隐藏了操作系统底层的细节。同样的 UNIX/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做“虚拟 shell”或“图形 shell”。
-
基础命令
touch
:创建文件cd
:进入一个目录pwd
:查看当前所在目录 -
快捷键
Tab
:补全命令、目录、命令参数Ctrl+c
:强行终止当前错误程序Ctrl+d
:键盘输入结束或输出终端Ctrl+s
:暂停当前程序,按任意键恢复运行Ctrl+z
:将当前程序放在后台运行fg
:后台运行程序恢复前台Ctrl+a
:光标移至输入行头,相当于Home
键Ctrl+e
:光标移至输入行末,相当于End
键Ctrl+k
:删除从光标所在位置到行末Alt+Backspace
:向前删除一个单词Shift+PgUp
:将终端显示向上滚动Shift+PgDn
:将终端显示向下滚动↑
:历史记录,恢复上一层命令 -
常用通配符
*
:匹配 0 或多个字符?
:匹配任意一个字符[list]
:匹配list中的任意单一字符[!list]
:匹配除list中的任意单一字符以外的字符[c1-c2]
:匹配c1-c2中的任意单一字符 如:[0-9] [a-z]{string1,string2,...}
:匹配 string1 或 string2 (或更多)其一字符串{c1..c2}
:匹配 c1-c2 中全部字符 如{1..10} -
作业
-
使用banner命令输出图形文字
-
使用printerbanner命令输出图形文字(其中
- w
指定打印宽度)
-
使用toilet命令输出图形文字
安装命令:
sudo apt-get update
sudo apt-get intsall toilet
-
使用figlet命令输出图形文字
安装命令:
sudo apt-get update
sudo apt-get intsall figlet
-
实验3 用户及文件权限管理
-
查看用户
who 命令常用参数
参数 说明 -a 打印能打印的全部 -d 打印死掉的进程 -m 同am i,mom likes -q 打印当前登录用户数及用户名 -u 打印当前登录用户登录信息 -r 打印运行等级 -
创建用户
su <用户名>
:切换用户,需要用户密码su -l <用户名>
:切换用户,环境变量会跟着改变sudo adduser <用户名>
:添加新用户 -
查看用户组
-
法1:使用
groups
命令 -
法2:直接查看
/etc/group
文件 -
两种方法中用户需加入sudo组才能获得root权限
-
-
删除用户
sudo deluser <用户名> --remove-home
-
查看文件权限
-
文件类型:Linux 里面一切皆文件。
-
文件权限:一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件。
-
ls命令的常用用法
-
参数 | 说明 |
---|---|
ls | 列出并显示当前目录下的文件 |
-A | 显示除了 .(当前目录)和 ..(上一级目录)之外的所有文件,包括隐藏文件(Linux 下以 . 开头的文件为隐藏文件) |
-Al | 查看某一个目录的完整属性 |
-dl<目录名> | 显示所有文件大小 |
-AsSh | 其中小s为显示文件大小,大S为按文件大小排序,其它方式排序可用man命令查询 |
-
变更文件所有者
sudo chown <新所有者> <文件名>
-
修改文件权限
- 法1:二进制数字表示
rwx
(即一个"7"):每个文件的三组权限顺序固定为拥有者,所属用户组,其他用户
-
- 法2:加减赋值操作
chmod go-rw <用户名>
,其中g、o 还有 u 分别表示 group、others 和 user,+和-分别表示增加和去掉相应的权限
-
adduser与useradd的区别
-
useradd 只创建用户,创建完了用 passwd <用户名> 设置新用户的密码
-
adduser 可以一次性完成创建用户,创建目录,创建密码(提示你设置)这一系列的操作
-
useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要用户自行完成输入、确定等一系列操作。
-
-
作业
使用以下指令添加一个用户 loutest,使用 sudo 创建文件 /opt/forloutest,设置成用户 loutest 可以读写。
sudo adduser loutest
sudo usermod -G sudo loutest
sudo touch /opt/forloutest
chmod 600 /opt/forloutest
ll /opt/forloutest
实验4 Linux目录结构及文件基本操作
- 实验内容:Linux的文件组织目录结构。相对路径和绝对路径。对文件的移动、复制、重命名、编辑等操作。
- 目录结构
- FHS标准
- 目录的四种交互作用的形态
-
目录路径
- 路径
cd
:切换目录
-
:上一次所在目录
~
:当前用户的 home 目录
pwd
:获取绝对路径 - 绝对路径
cd /usr/local/bin
- 相对路径
cd ../../usr/local/bin
- 路径
-
新建文件:
touch
新建空白文件,若创建名为 test 的空白文件,因为在其它目录没有权限,则需先使用cd ~
切换回用户的/home/用户名
目录 -
新建目录:
mkdir
新建目录,使用-p
参数,同时创建父目录(如果不存在该父目录),可以使用mkdir -p father/son/grandson
同时创建一个多级目录(这在安装软件、配置安装路径时非常有用) -
复制文件:
cp test<文件名> father/son/grandson<路径>
-
复制目录:
cp -r father family
,要成功复制目录需要加上 -r 或者 -R 参数,表示递归复制 -
删除文件:用
rm text
删除文件,强制删除参数用rm -f text
-
删除目录:
rm -r family
或rm -R family
-
移动文件:
mv 源目录文件 目的目录
,使用mv
命令移动文件(剪切) -
重命名文件:
mv 旧的文件名 新的文件名
,rename
批量重命名 -
查看文件:
命令 | 效果 |
---|---|
cat | 正序显示打印文件内容到标准输出(终端),加上 -n 参数显示行号 |
tac | 倒序打印文件内容到标准输出(终端) |
nl | 添加行号并打印,比cat -n 更专业的行号打印命令 |
more和less | 分页查看文件,用于阅读文件 |
head和tail | 只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行 |
查看文件类型 | 使用 file 命令 |
- 作业
创建一个 homework 目录,建立名为 1.txt~10.txt 文件,并删除 1.txt~5.txt
实验5 环境变量与文件查找
- 实验内容:实验5中所包含的内容颇多,让我获益匪浅,最后的“实验雨”也令我十分惊艳很感兴趣。实验内容主要包括介绍环境变量的作用与用法,及几种搜索文件的方法。
- 作业:找出 /etc/ 目录下的所有以 .list 结尾的文件
挑战1:寻找文件
学习到这里,我遇到了第一个小挑战,打开了果然是对前5个实验的一个总结实验,我分为以下三个步骤完成了这次挑战。
介绍
-
题目:有一个非常重要的文件(sources.list)但是你忘了它在哪了,你依稀记得它在/etc/目录下,现在要你把这个文件找出来,然后设置成自己可以访问,但是其他用户并不能访问
-
目标:找到sources.list文件;把文件所有者改为自己(shiyanlou);把权限修改为仅仅只有自己可读可写
-
解答:
sudo find /etc/ -name sources.list
//寻找指定文件地址sudo chown shiyanlou /etc/apt/sources.list
//将文件拥有者改为shiyanlouchmod 600 /etc/apt/sources.list
//使用二进制法改变权限ll /etc/apt/sources.list
//查看结果
实验6 文件打包与解压缩
- 实验内容:介绍 Linux 上常用的压缩/解压工具,主要讲解 zip,rar,tar 的使用
- Linux常见压缩包文件格式
文件后缀名 | 说明 |
---|---|
*.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 程序压缩的文件 |
重点是zip、rar、tar格式
- 常见参数
参数 | 说明 |
---|---|
-r | 递归打包包含子目录的全部内容 |
-q | 安静模式,即不向屏幕输出信息 |
-o | 输出文件,需在其后紧跟打包输出文件名 |
-x | 排除上次创建的zip文件,防止重复打包,只能使用绝对路径 |
-e | 创建加密压缩包 |
-l | 将LF转换为CR+LF,排除没有换行的问题 |
另外使用参数-[1-9],表示压缩级别为1-9,1表示最快压缩但体积大,9表示体积最小但耗时最久。举例如下:
zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip
zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip
-
zip打包和unzip解压
-
zip
- 打包文件夹:
zip 打包输出文件名.zip 被打包目录
- 打包文件夹:
-
unzip
-
解压到当前目录:
unzip 压缩文件名.zip
-
解压到指定目录:
unzip -q 压缩文件名.zip -d ziptest
-
查看压缩包内容:
unzip -l 压缩文件名.zip
-
-
-
rar打包和unrar解压
-
rar打包
-
从指定文件或目录创建压缩包或添加文件到压缩包:
rm *.rar
,rar a 打包输出文件名.rar
-
注意:rar命令参数中没有“-”,否则会报错
-
从指定压缩包文件中删除某个文件:
rar d 压缩文件名.rar .zshrc
-
查看不解压文件:
rar l 压缩文件名.rar
-
-
unrar解压
- 全路径解压:
unrar x shiyanlou.rar
- 去掉路径解压:
mkdir tmp
unrar e shiyanlou.rar tmp/
-
-
tar打包与压缩
-
tar的解压和压缩都是同一个命令,只需参数不同,使用比较方便
-
tar打包:
tar -zcvf something.tar something
-
tar解压:
tar -zxvf something.tar
-
指定路径:
-C 参数
压缩文件格式 参数 *.tar.gz -z *.tar.xz -J *tar.bz2 -j
-
-
作业:创建一个名为 test 的文件,分别用 zip 和 tar 打包成压缩包,再解压到 /home/shiyanlou 目录
-
解答:
使用zip和unzip打包和解压:
使用tar打包和解压:
-
-
总结
文件格式 解压方法 *.tar 用tar –xvf解压 *.gz 用gzip -d或者gunzip解压 *.tar.gz 和 *.tgz 用tar –xzf解压 *.bz2 用bzip2 -d或者用bunzip2解压 *.tar.bz2 用tar –xjf解压 *.Z 用uncompress解压 *.tar.Z 用tar –xZf解压 *.rar 用unrar e解压 *.zip 用unzip解压
实验7 文件系统操作与磁盘管理
- 实验内容:df,du,mount命令的使用及磁盘相关知识学习,这一节内容比较容易,大多是概念性知识点,很多新名词新概念需要进一步理解。
- 作业:找出当前目录下面占用最大的前十个文件。
三、总结
这次的实验是三次预备实验中最困难的,主要的目的是让我们较泛的了解Linux的基本操作,我也确实在实战中掌握了一些操作技巧,更因此感受到了Linux的奇妙之处,激发起我学习的兴趣。希望我能在这一学期的学习中较好地掌握这门语言。