实验一:Linux系统简介
-
Linux系统
- Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
- Linux 主要是系统调用和内核那两层
- Linux之父:Linus Benedict Torvalds
- Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
-
Linux与Windows的异同
-
费用
- Linux免费而Windows收费
-
安全性
- Linux比Windows要安全
-
使用习惯
- Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易,入门简单
- Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导(这正是我们要做的事情),一旦熟练之后效率极高
-
可定制性
- Windows:这些年之前算是全封闭的,系统可定制性很差
- Linux:你想怎么做就怎么做,Windows 能做到得它都能,Windows 做不到的,它也能
-
Linux没有的
- 特定的支持厂商
- 足够的游戏娱乐支持度
- 足够的专业软件支持度
-
Windows没有的
- 稳定的系统
- 安全性和漏洞的快速修补
- 多用户
- 用户和用户组的规划
- 相对较少的系统资源占用
- 可定制裁剪,移植到嵌入式平台(如安卓设备)
- 可选择的多种图形用户界面(如 GNOME,KDE)
-
-
Linux学习框架
-
遇到的问题以及解决方案
- Ubuntu以前未使用过,在Virtual Box里开Ubuntu镜像的时候很卡,还有一个关键问题就是不能全屏,为了解决这个问题,我安装了增强功能,安装之后可以全屏了,问题得以解决。
实验二:基本概念及操作
-
Linux桌面环境(实验楼)
- 几个熟知的桌面环境 KDE,GNOME,XFCE,LXDE
- 实验楼目前使用的 XFCE 桌面环境,以前使用LXDE
-
终端
- 通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的
- 终端(Terminal)和控制台(Console)是有区别的
- 终端本质上是对应着 Linux 上的 /dev/tty 设备
- Linux 的多用户登录就是通过不同的 /dev/tty 设备完成的
- Linux 默认提供了 6 个纯命令行界面的 “terminal”来让用户登录
- 在物理机系统上你可以通过使用**[Ctrl]+[Alt]+[F1]~[F6]**进行切换
-
Shell
- Shell 是指“提供给使用者使用界面”的软件(命令解析器),类似于 DOS 下的 command(命令行)和后来的 cmd.exe
- UNIX/Linux 操作系统下的 Shell 既是用户交互的界面,也是控制系统的脚本语言
-
命令行常用操作指令
touch file #创建一个名为 file 的文件,touch是一个命令
cd /etc/ #进入一个目录,cd是一个命令
pwd #查看当前所在目录
- tab可以补齐命令
- 按方向上键↑,恢复你之前输入过的命令
- *和?是通配符,用于模糊匹配
- man和help还有info都是帮助
-
命令行常用快捷键
-
命令行常用通配符
-
作业
-
遇到的问题以及解决方案
- 以前用过Windows的cmd,快捷键是Win+R,但是在Ubuntu中我刚开始连终端都打不开,后来知道了快捷键是Ctrl+Alt+T打开终端,然后就可以顺利完成了,但是本实验中仅需用实验楼提供的终端就可以了,不需要Ubuntu。
实验三:用户及文件权限管理
-
查看用户
- who am i、who mom likes可以查看当前终端的用户名(实验楼)
- who命令适用于Ubuntu
-
who命令参数
-
创建用户
- 在 Linux 系统里, root 账户拥有整个系统至高无上的权限,比如新建和添加用户
-
root 权限,系统权限的一种,与 SYSTEM 权限可以理解成一个概念,但高于 Administrator 权限,root 是 Linux 和 UNIX 系统中的超级管理员用户帐户,该帐户拥有整个系统至高无上的权力,所有对象他都可以操作,所以很多黑客在入侵系统的时候,都要把权限提升到 root 权限,这个操作等同于在 Windows 下就是将新建的非法帐户添加到 Administrators 用户组。更比如安卓操作系统中(基于 Linux 内核)获得 root 权限之后就意味着已经获得了手机的最高权限,这时候你可以对手机中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
sudo adduser xwdsh #新建一个叫“xwdsh”的用户
- sudo adduser 这个命令不但可以添加用户到系统,同时也会默认为新用户在 /home 目录下创建一个工作目录
-
用户组
-
文件权限
- 首先使用ls -l列出文件,会跑出来很多如下格式的条目
- 当看到如上格式的条目,首先观察第一项:文件类型和权限,字母拆解表义如下
- 牢记Linux 里面一切皆文件
- 读权限,表示你可以使用 cat <file name*(星号去掉,加这个符号是防止打不出来)> 之类的命令来读取某个文件的内容
- 写权限,表示你可以编辑和修改某个文件的内容
- 一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其它文件
-
变更文件所有者
- 使用 chown 命令变更文件所有者,命令格式如下
sudo chown xwdsh iphone7p #修改文件iphone7p的所有者为xwdsh
-
修改文件权限
-
adduser 和 useradd 的区别是什么
- useradd 只创建用户,不会创建用户密码和工作目录,创建完了需要使用 passwd 去设置新用户的密码。adduser 在创建用户的同时,会创建工作目录和密码(提示你设置),做这一系列的操作。其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作。
-
作业
-
遇到的问题以及解决方案
- 刚开始看文件权限表示的时候有点懵,多看几遍后理解了,然后chomd命令总是会拼写错误,一旦你拼写错误就会输出找不到该命令。题目要求用户loutest可以读写,而目前算上你新增的那个还有你自己一共也就两个用户,所以直接用其他用户(others)代替用户loutest即可,然后可以到/opt/目录下输入ls -l来查看文件的详细信息,观测到forloutest文件的权限是-rw-r-rw-,表明用户自己可以读写,用户组只能读,而其他用户可以读写,也就是用户loutest可以读写了。
实验四:Linux目录结构及文件基本操作
-
Linux 目录结构
- 以往的 Windows 一直是以存储介质为主的,主要以盘符(C 盘,D 盘…)及分区来实现文件管理
- 然而 UNIX/Linux 恰好相反,UNIX 是以目录为主的,Linux 也继承了这一优良特性。Linux 是以树形目录结构的形式来构建整个系统的,可以理解为树形目录是一个用户可操作系统的骨架。
-
FHS 标准
-
FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
-
两层规范
- 第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该放置设置文件,/bin 与 /sbin 则应该放置可执行文件等等。
- 第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统日志文件,/usr/share 放置共享数据等等。
-
目录路径
-
pwd
- 使用 pwd 命令可以获取当前所在路径(绝对路径)。
-
cd命令
cd .. #表示进入上一级目录
cd ~ #表示进入home目录,或者 cd /home/<你的用户名>
- . 表示当前目录
- 使用 ls -a 命令查看隐藏文件
-
绝对路径
- 关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
-
相对路径
- 关于绝对路径,简单地说就是以根" / "目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin,表示根目录下的 usr 目录中的 local 目录中的 bin 目录。
-
-
Linux 文件的基本操作
-
新建
- 使用 touch 命令创建空白文件。
- 使用 mkdir(make directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性。
mkdir -p father/son/grandson #使用 -p 参数,同时创建父目录(如果不存在该父目录),如下我们同时创建一个多级目录(这在安装软件、配置安装路径时非常有用):
- mkdir 后面的文件夹名如果已经存在就会报错。
-
复制
- 使用 cp 命令(copy)复制一个文件到指定目录。
- 使用 cp 命令(copy)复制一个目录需要加上 -r 或者 -R 参数,直接复制目录会报错。
-
删除
- 使用 rm(remove files or directories)命令删除一个文件。
- 有时候你会遇到想要删除一些为只读权限的文件,直接使用 rm 删除会显示一个提示,你如果想忽略这提示,直接删除文件,可以使用 -f 参数强制删除,代码如下:
rm -f test #忽略提示强制删除test文件
- 删除目录和复制一样,要加上 -r 或 -R 参数,遇到权限不足删除不了的目录也可以和删除文件一样加上 -f 参数,代码如下:
rm -rf family ##忽略提示强制删除family文件夹
-
移动文件与文件重命名
- 使用 mv(move or rename files)命令移动文件(剪切) ,命令格式是 mv 源目录文件 目的目录。
- mv 命令除了能移动文件外,还能给文件重命名,命令格式为 mv 旧的文件名 新的文件名。
- 使用 rename 命令完成批量重命名,下有注意事项。
- ps:rename 命令并不是内置命令,若提示无该命令可以使用 sudo apt-get install rename 命令自行安装。
-
查看文件
- 使用 cat,tac 和 nl 命令查看文件,前两个命令都是用来打印文件内容到标准输出(终端),其中 cat 为正序显示,tac 为倒序显示。
-
标准输入输出:当我们执行一个 shell 命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),默认对应终端的键盘、标准输出文件(stdout)和标准错误输出文件(stderr),后两个文件都对应被重定向到终端的屏幕,以便我们能直接看到输出内容。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
cat -nl passwd #添加行号并打印passwd文件
- 以下是cat命令的常用参数:
-
-b : 指定添加行号的方式,主要有两种:-b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式),-b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:-n ln:在行号字段最左端显示,-n rn:在行号字段最右边显示,且不加 0,-n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位) - 使用 more 和 less 命令分页查看文件,下为语法:
more passwd #分页查看passwd文件,向一个方向滚动
- 使用 head 和 tail 命令查看文件,它们只查看文件的头几行(默认为 10 行,不足 10 行则显示全部)和尾几行。
-
查看文件类型
- 使用 file 命令查看文件的类型,格式如下:
file /bin/ls #示例
-
查看文件类型
- 专门的命令行编辑器:emacs,vim,nano
-
-
作业
-
遇到的问题以及解决方案
- 一开始没注意是要建立homework文件夹,想着是建立文件,结果使用touch建立homework发现进不去目录。后来才发现应该使用mkdir命令创建文件夹,如果homework是个文件那肯定进不去,而且得先删除homework文件才能创建homework文件夹,我想这是因为Linux中一切皆文件的缘故(文件夹也是文件,文件不能重名),后面就没问题了。
小结
- Linux的命令和Windows的cmd命令有相似的地方,但在更多细节的地方是不一样的,需要多记多练才能记牢,通过第一周的Linux学习,我收益匪浅,特此做出总结。