实验一:初识Linux
过程中遇到一些困惑,但我也在实验的同时通过不断查找资料,并在实践中解决问题。
1.Linux 是一个操作系统
就像Windows(xp,7,8)和 Mac OS 。
Linux 主要是系统调用和内核那两层。当然直观地看,操作系统还包含一些在其上运行的应用程序,比如文本编辑器、浏览器、电子邮件等。
2.Linux 与 Windows 异同
在 Windows 使用百度、谷歌,上淘宝,聊 QQ 时,支撑这些软件和服务的,是后台成千上万的 Linux 服务器主机,它们时时刻刻都在忙碌地进行着数据处理和运算,可以说世界上大部分软件和服务都是运行在 Linux 之上的。
- Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作。
- Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作。
实验二:桌面环境
1.桌面环境简介
UNIX/Linux 本身是没有图形界面的,我们通常在 UNIX/Linux 发行版上看到的图形界面实际都只是运行在 Linux 系统之上的一套软件。
Linux 系统还提供了一个叫做终端
2.Shell
Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe 。UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言。
3.环境变量
环境变量相当于给系统或用户应用程序设置的一些参数,,具体起什么作用这当然和具体的环境变量相关。
4.作业
使用默认已经安装的一个命令printerbanner
实验三:用户及文件权限管理
1.打开终端,输入命令:
在某些环境中 who am i
和 who mom likes
命令不会输出任何内容,这是因为当前使用的 SHELL 不是登录时的 SHELL,没有用户与 who 的 stdin 相关联,因此不会输出任何内容。
2. 创建用户
root
账户拥有整个系统至高无上的权限,比如新建和添加用户。获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
要创建用户需要 root 权限,这里就要用到 sudo
这个命令了。不过使用这个命令有两个大前提,一是你要知道当前登录用户的密码,二是当前用户必须在 sudo
用户组。shiyanlou 用户也属于 sudo 用户组(稍后会介绍如何查看和添加用户组)。
现在我们新建一个叫 lilei
的用户:
新用户在 /home 目录下创建一个工作目录:
切换登录用户
who am i
和 whoami
命令的区别:
exit退出
3.用户组
使用 groups 命令
查看 /etc/group
文件
4. 删除用户和用户组
5.linux文件权限
文件权限就是文件的访问控制权限, 每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。
一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件
6.修改文件权限
每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。g
、o
还有 u
分别表示 group(用户组)、others(其他用户) 和 user(用户),+
和 -
分别表示增加和去掉相应的权限。
7.adduser
和 useradd
的区别是什么
useradd
只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd <username>
去设置新用户的密码。adduser
在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd
、userdel
这类操作更像是一种命令,执行完了就返回。而 adduser
更像是一种程序,需要你输入、确定等一系列操作。
实验四:Linux 目录结构及文件基本操作
那就是 Linux 的目录与 Windows 的目录的区别,或许对于一般操作上的感受来说没有多大不同,但从它们的实现机制来说是完全不同的。
以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘...)及分区来实现文件管理,然后之下才是目录,目录就显得不是那么重要,除系统文件之外的用户文件放在任何地方任何目录也是没有多大关系。
然而 UNIX/Linux 恰好相反。 Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。
1.FHS标准
其中大部分目录结构是规定好了的(FHS 标准),是死的,当你掌握后,你在里面的一切操作都会变得井然有序。
FHS 定义了两层规范,第一层是, /
下面的各个目录应该要放什么文件数据,例如 /etc
应该放置设置文件,/bin
与 /sbin
则应该放置可执行文件等等。
第二层则是针对 /usr
及 /var
这两个目录的子目录来定义。例如 /var/log
放置系统日志文件,/usr/share
放置共享数据等等。
2.路径
使用 cd
命令可以切换目录
使用 pwd
获取当前路径:
使用 touch
命令创建空白文件
touch test
实验五:环境变量与文件查找
1. 环境变量
要解释环境变量,得先明白变量是什么,准确的说应该是 Shell 变量,所谓变量就是计算机中用于记录一个值(不一定是数值,也可以是字符或字符串)的符号,而这些符号将用于不同的运算处理中。
环境变量的作用域比自定义变量的要大,如 Shell 的环境变量作用于自身和它的子进程。Shell 程序也作为一个进程运行在操作系统之上,而我们在 Shell 中运行的大部分命令都将以 Shell 的子进程的方式运行。
- 当前 Shell 进程私有用户自定义变量,如上面我们创建的 tmp 变量,只在当前 Shell 中有效。
- 也有三个与上述三种环境变量相关的命令:
set
,env
,export
。
2. 命令的查找路径与顺序
gcc 生成二进制文件默认具有可执行权限,不需要修改。在 /home/shiyanlou
家目录创建一个 mybin
目录,并将上述 hello_shell.sh
和 hello_world
文件移动到其中:
创建一个 C 语言 hello world
程序
输入如下内容
gcc -o hello_world hello_world.c
回到上一级目录,也就是 shiyanlou
家目录。
3. 添加自定义路径到“ PATH
实验六: 文件打包与解压缩
在讲 Linux 上的压缩工具之前,有必要先了解一下常见常用的压缩包文件格式。在 Windows 上最常见的不外乎这两种 *.zip
,*.7z
后缀的压缩文件。
cd /home/shiyanlou zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop du -h shiyanlou.zip file shiyanlou.zip
上面命令将目录 /home/shiyanlou/Desktop
打包成一个文件,并查看了打包后文件的大小和类型。第一行命令中,-r
参数表示递归打包包含子目录的全部内容,-q
参数表示为安静模式,即不向屏幕输出信息,-o
,表示输出文件,需在其后紧跟打包输出文件名。后面使用 du
命令查看打包后文件的大小(后面会具体说明该命令)。
实验七:文件系统操作与磁盘管理
本节实验的文件系统操作的内容十分简单,只会包含几个命令的几个参数的讲解,但掌握这些也将对你在学习 Linux 和实验楼后续其他课程的过程中有极大帮助。
- 使用
df
命令查看磁盘的容量
硬件的设备驱动(如硬盘)和特殊设备文件(如 /dev/zero
和 /dev/random
)都像普通文件一样,只是在各自的驱动程序中实现了对应的功能,dd
也可以读取文件或写入这些文件。
我们先来试试用 dd
命令从标准输入读入用户的输入到标准输出或者一个文件中
使用 fdisk 为磁盘分区
(关于分区的一些概念不清楚的用户请参看 主引导记录)