第一章
Linux的简介
- 1991年8月25日linux诞生
较为常用的linux发行版
- CentOS 可靠性和稳定性较好
- Debian
- Fedora Core
- Red Hat Linux
- SuSE
- Ubuntu 基于Debian发行版和Unity桌面环境
linux操作系统的内核
进程调度
进程调度控制对cpu的访问,当需要选择下一个进程在cpu中运行时,由调度算法来选择相应的进程,当调度算法选择进程时,该进程必须已经获得了除cpu以外的所有资源,否则,就算获得了cpu也无法运行。linux支持多任务运行
内存管理
管理操作系统的物理内存,内存管理支持虚拟内存
虚拟文件系统
- 逻辑文件系统 指linux所支持的文件系统
- 设备驱动程序 指为每一种硬件控制程序所编写的设备驱动程序模块
网络接口
提供了对网络硬件和网络标准的支持
- 网络协议 负责实现每一种可能的网络传输协议
- 网络设备驱动程序 负责与硬件设备通信
linux的特点
- 模块化程度高
- 源码公开
- 设备独立性
- 广泛的硬件支持
- 安全性及可靠性好
- 可移植性强
- 用户界面良好
- 良好的网络与文件系统支持
ubuntu
-
Ubuntu像Debian一样采用了dpkg进行软件包管理,他将软件包分为四类,main组件、restricted组件、universe组件和multiverse组件
-
multiverse组件包含的是不符合自由软件要求和不被Ubuntu支持的软件包
-
Ubuntu中的文件都是以目录的形式存储的,“/”是一切目录的起点
课后习题
内核
- 进程调度:进程调度控制进程对cpu的访问,当需要选择下一个进程在cpu上运行时,由调度算法选择相应的进程。这一进程必须获得除cpu以外的所有资源。linux支持多任务运行,进程在运行时会分得时间片,进程调度器根据时间片不同,决定某一时刻分别调入哪一个进程
- 内存管理用于管理整个系统的物理内存,同时快速响应内核各子系统对内存分配的请求,允许多个进程安全地共享主内存区域,内存管理从逻辑上分为硬件相关部分:为内存管理硬件提供了虚拟接口;和无关部分:提功了进程的映射和逻辑内存的对换。
- 虚拟文件系统:隐藏了各种不同硬件的具体细节,从而为所有的设备提功了统一的接口,分为逻辑文件系统:指linux所支持的文件系统;和设备驱动程序:为每一种硬件控制程序所编写的设备驱动程序模块。
- 网络接口:提供了对各种网络硬件和各种网络标准的支持,分为网络协议:负责实现每一种可能的网络传输协议;和网络设备驱动程序:负责与硬件设备通信。
桌面版本特点:
服务器版本特点:
第二章
基本操作
- Ubuntu在使用之前都需要登录,因为他是一个多用户的网络操作系统
- 想要更改图形界面,可以打开grub文件 “sudo gedit grub”命令将quiet值改为text即可重启进入字符界面
- 若需要结束当前用户的运行,或登陆另一个账户,需要使用注销操作
- 字体工具为Tweak Tool
- 关机时所有登陆的用户系统将会被关闭
- Rhythmbox默认可以播放Ogg格式的音乐文件
Ubuntu软件包及管理器
Ubuntu采用的是Debian的软件包管理机制,软件包有两种类型:二进制软件包和源码包
- 二进制软件包包含:可执行文件、库文件、配置文件、man/info页面、版权声明和其他文档组成
- 源码包由软件源码、版本修改说明、构建指令以及编译工具等组成
- 任何高优先级的软件包都不依赖于低优先级的软件包,可以实现按照优先级一层一层地冻结系统
优先级从高到低如下:
简要描述在图形化界面中如何重启Ubuntu系统
单击右上角菜单栏,单击shut down菜单,在弹出的对话框中(有shutdown关机和restart)选择restart操作,系统将会重启
列举至少三个Ubuntu系统中的应用软件
- OpenOffice writer是一个文字处理器
- OpenOffice calc是一个表格处理工具
- OpenOffice Impress是文稿演示软件
- GIMP是图像处理软件
- Pidgin原名Gaim,是即时通信软件
- Rhythmbox是音乐播放和管理软件
- Totem是视频播放软件
简要描述在图形化界面中如何手动锁定屏幕
单击右上角菜单栏,选择logout(注销)会出现两个选项:lock或logout,选择lock即可锁定屏幕
区别
lock和logout都是返回登陆界面,但lock以后应用程序都继续保持运行,只是通过登陆界面将计算机暂时锁定而已,而logout是当前用户退出系统或者有另一用户登陆的操作
列举三个Ubuntu系统中的软件包管理工具
软件包管理工具可以大致分为三类:命令行(dkpg、apt)、文本窗口和图形界面(synaptic)
-
dkpg是deb包管理工具,
-
apt
分别解释期望状态和当前状态的含义
在使用Ubuntu时用户会不断的安装和卸载软件,为了记录用户的安装行为,为软件包定义了两种状态:期望状态和当前状态,前者指用户希望某个软件包处于的状态,后者是用户操作该软件包后的最终状态。
具体如下:
课后习题
第三章
- 按下组合键ctrl+alt+f1 打开Ubuntu的字符界面
- 默认不允许root登录,因为他具有最高权限,如果希望以root登录,可以按以下步骤:
按下ctrl+alt+f1打开新窗口或者ctrl+alt+t打开一个新终端,输入su,然后输入普通用户的密码即可进入
登录与注销
- 创建临时账户:useradd useraddtest或者adduser addusertest(这个创建了可以被立即使用)
- 使用login进行登录和不同账户切换:login
- 修改登录密码:passwd user01 此时如果用户输入原密码正确就可以设置新密码。
- 关闭系统:
halt命令:需要root用户才可以执行,系统将会关闭所有进程后自动关机
shutdown -h 10 :系统将在10分钟后自动关机,想取消输入 shutdown -c即可
poweroff,与halt命令相同 - 重启系统:
shutdown -r 10 :将在10分钟后重启
init 6:重启
init加不同参数的功能
reboot:系统将自动重启
目录与文件
- 显示当前工作目录:pwd
- 更改工作目录:cd
- 创建工作目录:mkdir
- 删除工作目录:rmdir
- 移动目录或文件:mv(mv file01 chap01是将file01移动至chap01目录下),mv 也可以用于文件的重命名
- 复制文件或目录:cp (cp file /chap 将file复制到chap目录下)
- 删除目录或文件:rmdir,若一个文件夹中含有文件和子目录,可以使用rm -rf命令直接删除目录
- 创建文件:touch (修改文件时间 touch -at 加时间 加文件名)
- 查看文件和目录:ls -a显示所有文件,包含以“.”开头的隐藏文件;-i 可以显示文件索引节点号; -l显示文件的详细信息; -R 显示当前工作目录下的所有文件和子目录。
文件内容显示
-
创建和显示文件:cat > file01
-
改变文件权限:chmod
权限数值对应表
-
使用more命令可以分页显示文件,按下空格可进行分页,less也可以分页显示文件
-
head -n +文件名 该命令默认显示前10行内容 tail -n +文件名 显示文件的前n行或者后n行
文件内容处理
- sort命令 进行排序,-r是反向排序
- uniq命令进行去重
- grep命令在文件中查找指定内容【grep ‘a’ file 】筛选出包含a的行并显示出来,加上-c 只显示行数不显示行
- 对两个文件进行比较是diff、对三个文件进行比较时diff3、sdiff命令的主要作用是合并两个文件
- 如果要逐字节进行比较可以用cmp命令。
- 对有序文件进行比较可以用comm。
- cut命令进行剪切,出现乱码时,cut -c可以正常输出。
- paste file01 file02 将file02的内容粘贴到file01中去
- wc命令查看文件中的行数、单词数、字符数(如果只看单词数 -w,只看行数 -l,只看字符数 -)
文件查找
- find -name “ex*”查找出所有以ex开头的文件
- locate/user01/ex 查找user01目录下所有以ex开头的文件,locate -r 02 $查询所有以02结尾的文件
- whereis命令查看文件的位置
- which命令查找可执行文件的位置
磁盘文件管理
- df -h显示磁盘空间,df -T显示文件系统的类型,df -t 显示指定文件系统的信息
- 查看文件或目录所占磁盘空间大小的命令是du
- mount命令用于将文件系统挂载到指定的挂载点上,
- 启动quota服务完成配额操作:quotaon -vug/mnt/quotadir/
- 使用edquota为用户或工作组指定磁盘配额: edquota -u user01(为用户)edquota -g user01(为用户组)
- 使用edquota为磁盘配额限定时间:edquota -t
- 使用quota显示配额信息:quota -vus user01(为用户) quota -vgs user01(为用户组)
- 显示文件系统的配额信息:repquota -u +文件目录
- quotaoff 关闭磁盘空间限制,若想显示指令的执行过程加上-v
- 卸载文件系统是umount
备份压缩
- zip file01.zip file01,将文件file01压缩并另存
- zip -d file01.zip file01 删除压缩包中的file01文件
- zip -m file01.zip file01 向压缩包中添加文件
- unzip -o file01.zip 解压并覆盖原来的文件
- unzip -n file01.zip 解压并不要覆盖原来的文件
- 产生gz扩展名的压缩文件用gzip命令
- gzexe压缩文件时,想要解压加上d参数即可
- 产生.bz2扩展名的压缩文件用bzip2命令,如果压缩包损坏无法读取可以使用bzip2recover命令修复压缩包
- 产生.z扩展名的用compress命令
- 编码和解码:uuencode和uudecode
获取帮助
- man命令查看指令的帮助手册
- whatis命令 查看命令执行什么功能
- 想查看一个内部命令的帮助信息用help
- info命令也可以用来获取帮助
其他命令
-
清除屏幕信息 :clear
-
显示文本:echo,也可以用来输出变量的值echo x 如 果 只 想 用 x 如果只想用 x如果只想用x这个字符可以用转义字符操作: echo -e $x
echo $(pwd) 输出当前工作目录 -
显示日期和时间:date
如果只想显示年月日的某一个,可以:
date+%y
date+%m
date+%d -
cal命令可以出现一个小日历
-
查看当前进程:ps
-
终止某一进程 :kill
-
显示最近登录系统的用户信息:last
-
显示历史指令:history
-
将用户加入sudoers用户组内: adduser user01 sudo
-
alias用来设置指令的别名,可以用unalias 来删除别名
课后习题
- $ sudo usermod -G sudo lilei 也可以将lilie加入sudoers用户组
- $ sudo chown shiyanlou iphone6变更文件所有者
简答题
内部命令和外部命令的区别
内部命令常驻内存,它们是shell程序的一部分,包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并可在内部运行。比如:cd ,exit等。外部命令是ubuntu系统中的实用程序,功能较为强大,且程序量也会很大,通常不包含在shell中,使用频率较低,因此只在需要使用时才调入内存。比如:ls等。
不显示密码
应对当前用户输入密码时旁人偷窥导致密码泄露的问题
useradd和adduser命令创建用户是需要注意哪些地方?
- 使用useradd创建用户时不会在/home下自动创建与该账户的用户名同名的用户目录,而且不会设置密码,因此这个账户创建以后默认是不能立即使用的,需要使用passwd修改密码后方可使用。
- adduser创建用户时,账户可以立即使用,不过需要root账户完成上述操作。创建账户完成后,我们就可以使用这个账户登录。
请说出修改当前用户密码的详细步骤
- 执行命令:passwd user01
- 系统要求输入当前密码,如果密码正确会提示输入新密码,否则提示修改密码失败
- 若输入原密码正确,此时要求重复输入两次新密码,且新密码不能与原密码相同
- 正确完成所有输入后,用户成功修改密码。
cat命令有哪些功能
- 创建文件:cat >file01,接着用户可以向文件中写入相应内容
- 查看文件内容:cat -n file01 ,可对输出的内容以行为单位进行编号。
less命令和more命令的区别
more和less都是用来阅读文件的工具,more命令显示屏幕所能容纳的内容,可以通过按下space键来进行翻页,按enter来进入下一行,less功能更为强大,可以通过pageup和pagedown来进行上下滚动进行阅读。
举例说说diff diff3 和sdiff的区别
diff命令用来对两个文件进行比较,结果是两部分,告诉你哪里不同,并且各自分别是什么;diff3用来对三个文件进行比较,字符c表示需要修改的意思。sdiff命令的作用是合并两个文件,并以交互的方式输出结果,不同的地方用“|”进行标识。
在使用Ubuntu系统时 ,为什么要对磁盘进行配额分配?
因为Ubuntu是多用户、多任务的操作系统,许多人共用磁盘空间,为了更合理地分配磁盘空间,我们需要对他进行配额以便高效的使用磁盘空间。
总结一下普通用户和root账户之间的区别。
实验内容
第二节 通配符
第四节 复制文件
- cp复制目录时 需要加上-r或者-R
- unzip -l file.zip 就是不解压,只查看压缩包里面有什么。
第六节 压缩文件
tar -xf shiyanlou.tar -C tardir #解包一个文件(-x参数)到指定路径的已存在目录(-c参数)
tar -tf shiyanlou.tar #只查看不解包文件
tar -cphf etc.tar /etc #保留文件属性和跟随链接
第十节
- cut命令:
打印/etc/passwd文件中以:为分隔符的第1个字段和第6个字段分别表示用户名和其家目录:$ cut /etc/passwd -d ‘:’ -f 1,6
显示前n行:
# 前五个(包含第五个)
$ cut /etc/passwd -c -5
# 前五个之后的(包含第五个)
$ cut /etc/passwd -c 5-
# 第五个
$ cut /etc/passwd -c 5
# 2到5之间的(包含第五个)
$ cut /etc/passwd -c 2-5
- sort命令,-t加分隔符 -k加排序字段名
第十一节
- tr命令用来删除文本:
echo “hello shiyanlou” | tr -d ‘olh’ 删除里面的olh字符
-d参数是不连续字符 -s参数是连续字符 - col命令将空格和tab互换,
- join命令将两个文件相同的部分合并
- paste命令是在不比价内容的情况下,将多个文件合并到一起:
第十二节
- 管道:echo ‘hi’ |cat 将前一个命令的输出当做后一个命令的输入
- 重定向: echo ‘hi’ > file cat file 通过一个文件来建立两个命令的连接
- 错误重定向可以通过文件描述符,将错误重定向到标准输出中:
- exec实现永久重定向 :exec 1>file 将后面的输出都定向到file文件当中,直到你exit
- 可以利用/dev/null 屏蔽所有的输出:$ cat Documents/test.c 1>/dev/null 2>&1