Ch1:LINUX产生:自1991年8月发布以来,Linux系统发展非 常迅速,目前主要应用于服务器和嵌入式 开发领域,是一个开放的、创新的、具有 前瞻性的操作系统
内核谁写的
Linux系统的内核最早是由芬兰大学生Linus Torvalds开发, 并于1991年8月发布。当时由于Unix系统的商业化, Andrew Tannebaum教授开发了Minix操作系统,该系统 不受AT&T许可协议的约束,可以发布在Internet上免费给 全世界的学生使用,这为教学科研提供了一个操作系统。1991年,Linus Torvalds为了给Minix系统用户设计一个 比较有效的Unix PC版本,自己动手写了一个类Minix的操 作系统,这就是Linux的雏形。
应用领域(4方面)
1.Linux服务器 2.嵌入式Linux系统 3.软件开发平台 4.桌面应用
Linux系统组成(4个)
1.内核 2.Shell 3.文件系统 4.应用程序
内核版本以及命名(发行版)
内核版本号是由点分隔的3段数字组成: r.x.y ,比如3.10.0-327。
r:目前发布的内核主版本。 x:偶数表示稳定版本;奇数表示开发版本。 y:错误修补的次数。
主流的发行版本
(1)Red Hat (2)SUSE (3)Oracle (4)CentOS (5)Ubuntu (6)Debian (7)Mandriva (8)Gentoo (9)Slackware (10)Fedora
Ch2:安装linux中 交换(swap)分区有什么作用
内核会将暂时不用的内存块信息写到交换分区,这样一来, 物理内存得到了释放,这块内存就可以用于其它用途,当 需要用到原始的内容时,这些信息会被重新从交换分区读 入物理内存。
Linux的内存管理采取的是分页存取机制,为了保证物理 内存能得到充分的利用,内核会在适当的时候将物理内存 中不经常使用的数据块自动交换到虚拟内存中,而将经常 使用的信息保留到物理内存。
Linux系统会不时地进行页面交换操作,以保持尽可能多 的空闲物理内存,即使并没有什么操作需要使用内存, Linux也会交换出暂时不用的内存页面,这可以避免等待 交换所需的时间。
Linux进行页面交换是有条件的,不是所有页面在不用时 都交换到虚拟内存,Linux内核根据“最近最常使用”算 法,仅仅将一些不经常使用的页面文件交换到虚拟内存
如何进行分区 至少要进行哪些分区
基础:/swap分区:即交换分区,实现虚拟内存,建议大小是物理内存的1~2倍;
/boot分区:用来存放与Linux系统启动有关的程序,比如引导装载程序等,最少200MB;
/分区:建议大小至少在10GB以上。
额外还可以有:/usr分区:用来存放Linux系统中的应用程序, 其相关数据较多,建议大小最少为8GB;
/var分区:用来存放Linux系统中经常变化的数 据以及日志文件,建议大小最少为1GB;
/home分区:存放普通用户的数据,是普通用户 的宿主目录,建议大小为剩下的空间。
分区的命名方式(例如硬盘的命名方式等等)
Linux系统使用字母和数字的组合来指代硬盘分区,使用一种更加灵活的分区命名方案,该命名方案是基于文件的,文件名的格式为/dev/xxyN(比如/dev/sda1分区)。
/dev:这是Linux系统中所有设备文件所在的目录名。因为分区位于硬盘上,而硬盘是设备,所以这些文件代表了在/dev上所有可能的分区;
xx:分区名的前两个字母表示分区所在设备的类型,通常是hd(IDE硬盘)或sd(SCSI硬盘)。
y:这个字母表示分区所在的设备。例如,/dev/hda(第1 个 IDE 硬盘)或/dev/sdb(第2个SCSI硬盘);
N:最后的数字N代表分区。前4个分区(主分区或扩展分 区)用数字1~4表示,逻辑驱动器从5开始。例如, /dev/hda3是第1个IDE 硬盘上的第3个主分区或扩展分区; /dev/sdb6是第2个SCSI硬盘上的第2个逻辑驱动器。
Ch3:字符界面的切换方式
要进入Linux系统的字符界面可以通过字符界面、图形界面下的终端以及虚拟控制台等多种方式进入。
在字符界面下,虚拟控制台的选择可以通过按下[Alt]键和 一个功能键来实现,通常使用F1~F6键。比如用户登录 后,按下[Alt+F2]键,用户可以看到“login:”提示符, 说明用户进入了第二个虚拟控制台。然后只需按[Alt+F1] 组合键,就可以回到第一个虚拟控制台。
常用的命令(reboot关机重启 halt….)
Shutdown: 命令语法:
shutdown [选项] [时间] [警告信息] -h(halt)关闭 -r(reboot)重启
【例3.1】 立即关闭计算机系统。
[root@rhel ~]# shutdown -h now
【例3.2】 定时45分钟后关闭计算机系统。
[root@rhel ~]# shutdown -h +45
【例3.3】 立即重新启动计算机系统,并发出警告信息。
[root@rhel ~]# shutdown -r now “system will be reboot now.”
【例3.4】 定时在1点38分重新启动计算机系 统。
[root@rhel ~]# shutdown -r 01:38
使用halt命令就是调用“shutdown -h”命令执行关机任务。 命令语法:
halt [选项]
【例3.5】 使用halt命令关闭系统。 [root@rhel ~]# halt
使用reboot命令重启计算机系统。 [root@rhel ~]# reboot
在linux系统下获取帮助(man,help)
man [选项] [名称]
[命令] --help
预定义目标和运行级别对应关系(选择)
常用的控制组合(ctrl+c , ctrl+z)
特殊字符
命令历史记录
bash启动的时候会读取~/.bash_history文件,并将其载入 到内存中,
H
I
S
T
F
I
L
E
变
量
就
用
于
设
置
/
.
b
a
s
h
h
i
s
t
o
r
y
文
件
,
b
a
s
h
退
出
时
也
会
把
内
存
中
的
历
史
记
录
回
写
到
/
.
b
a
s
h
h
i
s
t
o
r
y
文
件
中
。
使
用
h
i
s
t
o
r
y
命
令
可
以
查
看
命
令
历
史
记
录
,
每
一
条
命
令
前
面
都
会
有
一
个
序
列
号
标
示
。
命
令
语
法
:
h
i
s
t
o
r
y
[
选
项
]
搜
索
历
史
命
令
(
c
t
r
l
+
r
)
命
令
替
换
HISTFILE变量就用于设置~/.bash_history文 件,bash退出时也会把内存中的历史记录回写到 ~/.bash_history文件中。 使用history命令可以查看命令历史记录,每一条命令前面 都会有一个序列号标示。 命令语法: history [选项] 搜索历史命令(ctrl+r) 命令替换
HISTFILE变量就用于设置 /.bashhistory文件,bash退出时也会把内存中的历史记录回写到 /.bashhistory文件中。使用history命令可以查看命令历史记录,每一条命令前面都会有一个序列号标示。命令语法:history[选项]搜索历史命令(ctrl+r)命令替换(), , 1.使用“$( )” 命令语法:命令1 $(命令2) 2.使用“
”(位于Tab键上面那个键)
命令语法: 命令1 命令2
e.g. pidof less
7552
Kill -9 7552
以上可以写成kill -9 $(pidof less)/kill -9 pidof less
管道(前面一个输出是后面一个输入)
使用简单的管道。
[root@rhel ~]# ls /etc|more
abrt
acpi
adjtime
akonadi
–More–
//命令ls /etc显示/etc目录的内容,命令more是分页显示内容
【例3.23】 使用复杂的管道。
[root@PC-LINUX ~]# rpm -qa|grep a|more
//命令rpm -qa显示已经安装在系统上的RPM包,命令grep a是过滤软件 包,命令more是分页显示这些信息
重定向
输出重定向,即将某一命令执行的输出保存到文件中,如果已经存在相同的文件,那么覆盖源文件中的内容。
【例3.24】使用输出重定向将/boot目录的内容保存到/root/abc文件中。
[root@rhel ~]# ls /boot > /root/abc
【例3.25】使用echo命令和输出重定向创建/root/mm文件,文件内容是 hello。
[root@rhel ~]# echo Hello > /root/mm
[root@rhel ~]# cat /root/mm
Hello //显示文件/root/mm,可以看到文件的内容是Hello
另外一种特殊的输出重定向是输出追加重定向, 即将某一命令执行的输出添加到已经存在的文件中,用>>代替>即可,区别在于不会覆盖原文件的内容,而是追加内容。
输入重定向,即将某一文件的内容作为命令的输入 命令语法:
[命令] < [文件]
【例3.27】使用输入重定向将文件/root/mm的内容作为输入让cat命令执行 [root@rhel ~]# cat < /root/mm
Hello
【例3.28】使用输入追加重定向创建/root/bc文件。
[root@rhel ~]# cat > /root/bc <<EOF
Hello Linux
EOF
错误重定向,即将某一命令执行的出错信息输出 到指定文件中。
命令语法:
[命令] 2> [文件]
【例3.29】 查看根本不存在的/root/kk文件,出现报错信息,将其保
存到文件/root/b中。
[root@rhel ~]# cat /root/kk 2> /root/b [root@rhel ~]# cat /root/b
cat: /root/kk: 没有那个文件或目录
//使用cat命令查看/root/b文件,可以看到其内容就是执行命令cat /root/kk的报错信息
同时实现输出和错误的重定向,即可以同 时实现输出重定向和错误重定向的功能。
命令语法: [命令] &> [文件]
vi编辑器
命令模式:默认在此模式命令模式控制屏幕光标的移动,字符、 字或行的删除,某区域的移动、复制等。 在命令模式下,按冒号键“:”可以进入末 行模式,按字母键“a”就可以进入插入模 式
插入模式
只有在插入模式下,才可以进行文本编辑。 在插入模式下按“Esc”键可回到命令模式
末行模式
将文件保存或退出vi编辑器,也可以设置编辑环境、替换字符或删除字符。
在末行模式下按“Esc”键可以回到命令模式。
Ch4:文件类型:普通文件-、目录 文件d、设备文件(字符设备文件c和块设备 文件b)、管道文件p和符号链接文件l等
目录结构(对应目录保存的是什么)
、文件和目录操作
Pwd显示当前工作路径、cd更改工作目录、ls、touch、mkdir、cp、 mv、rm、wc
Touch创建空文件以及更改文件的时间(atime和 mtime)。 命令语法:
touch [选项] [文件]
将文件file1的时间记录改为6月7日19点 30分,时间格式为MMDDHHmm。
[root@rhel ~]# ls -l file1
-rw-r–r--. 1 root root 0 6月 3 05:45 file1 //空文件file1其创建日期为6月3日5:45 [root@rhel ~]# touch -c -t 06071930 file1
Cp:
Cp (-r(包括所有文件及子目录)) 源目录 目标目录
Mv不但有移动还有重命名功能
rm -rf 连同子目录一起删除
wc 统计文件行数 单词数 和字节数和字符数
链接文件(软硬链接的区别)
硬链接记录的是目标的inode,软链接记录 的是目标的路径。软链接就像是快捷方式, 而硬链接就像是备份。软链接可以做跨分 区的链接,而硬链接由于inode的缘故,只 能在本分区中做链接。所以软链接的使用频率要高得多。
Ch5:文本内容显示(tail -f…)
Tail类似于head的用法
文件和命令查找(grep不考,find使用方法重点,locate)
,设定hostname命令是 hostnamectl , du
Ch7: useradd ,userdelete等命令熟悉
在Linux系统字符界面中创建、修改以及删除用户账户主要使用useradd,usermod和 userdel这3个命令
创建用户moon,并设置该用户UID为1010
useradd -u 1010 moon
创建用户newuser,并设置该用户主目录为/home/www。
[root@rhel ~]# useradd -d /home/www newuser
创建用户pp,并指定该用户是属于组群root的成员。
[root@rhel ~]# useradd -g root pp
创建用户abc,并设置该用户的Shell类型是/bin/ksh。
[root@rhel ~]# useradd -s /bin/ksh abc
修改用户zhangsan的主目录为/home/kkk,并手 动创建/home/kkk目录。
[root@rhel ~]# usermod -d /home/kkk zhangsan
修改用户wangwu的主目录为/home/opop,并自动创建 /home/opop目录。
[root@rhel ~]# ls /home
abc kkk lisi moon pp wangwu www zhangsan
修改用户wangwu的登录名为zhaoliu。
[root@rhel ~]# usermod -l zhaoliu wangwu
【例7.10】 修改用户zhangsan的用户名全称为张三。 [root@rhel ~]# usermod -c 张三 zhangsan
修改用户zhangsan在密码过期后20天就禁用该账户。
[root@rhel ~]# usermod -f 20 zhangsan
修改用户sun所属的组群为root,该组群必须事先存在。 [root@rhel ~]# usermod -g root sun
锁住用户zhangsan密码,使密码无效。
[root@rhel ~]# usermod -L zhangsan
解除用户zhangsan密码锁住。
[root@rhel ~]# usermod -U zhangsan
Password
设置用户名密码passwd wuchao
锁住用户密码passwd -l wuchao
解锁用户密码passwd -u wuchao
删除用户密码passwd -d wuchao
su和sudo区别
使用su命令可以切换到其它用户账户进行 登录。如果su命令不加任何选项,默认为 切换到root用户,并且不改变Shell环境。
Ch8:
挂载/卸载文件系统,
mount [选项] [设备] [挂载目录]
8.1-8.5
Ch9:rpm -i,-e…选项
安装bind-9.9.4-29.el7.x86_64.rpm软件包
#rpm -ivh bind-9.9.4-29.el7.x86_64.rpm
准备中… ########################### [100%] 正在升级/安装…
1:bind-32:9.9.4-29-el7 ################## [100%]
已经安装的情况下仍旧安装该软件包
rpm -ivh --replacepkgs bind-9.9.4-29.el7.x86_64.rpm
删除bind-chroot软件包。
[root@rhel ~]# rpm -e bind-chroot
升级bind-9.9.4-29.el7.x86_64.rpm软件 包,升级软件包实际上是删除和安装的组合。
[root@rhel Packages]# rpm -Uvh bind-9.9.4- 29.el7.x86_64.rpm
刷新bind-9.9.4-29.el7.x86_64.rpm软件包。
[root@rhel Packages]# rpm -Fvh bind-9.9.4- 29.el7.x86_64.rpm
查询指定rpm软件包是否已经安装
rpm -q [RPM包名称]
查询所有已安装rpm
rpm -qa
查询所有已安装RPM软件包的 描述信息
rpm -qi [RPM包名称]
yum管理rpm软件包
【例9.16】无需确认、直接安装bind软件包。 [root@rhel ~]# yum -y bind
【例9.17】显示bind软件包的详细信息。 [root@rhel ~]# yum info bind
【例9.18】显示所有已经安装的软件包信息。 [root@rhel ~]# yum info installed
【例9.19】列出bind软件包。 [root@rhel ~]# yum list bind
【例9.20】列出bind软件包的依赖关系。 [root@rhel ~]# yum deplist bind
【例9.21】显示软件仓库的配置。 [root@rhel ~]# yum repolist
【例9.22】查看/etc/named.conf文件是属于哪个软件包的。 [root@rhel ~]# yum provides /etc/named.conf
【例9.23】删除bind软件包。 [root@rhel ~]# yum remove bind
tar包管理
备份/root/abc目录及其子目录下的全部文件,备份文件名为 abc.tar。
[root@rhel ~]# tar cvf abc.tar /root/ab
查看abc.tar备份文件的内容,并显示在显示器上。
[root@rhel ~]# tar tvf abc.tar
将打包文件abc.tar解包出来。
[root@rhel ~]# tar xvf abc.tar
将文件/root/abc/d添加到abc.tar包里面去。
[root@rhel ~]# tar rvf abc.tar /root/abc/d
更新原来tar包abc.tar中的文件/root/abc/d。
[root@rhel ~]# tar uvf abc.tar /root/abc/d
把/root/abc目录包括其子目录全部做备份文件,并进行压缩, 文件名为abc.tar.gz。
[root@rhel ~]# tar zcvf abc.tar.gz /root/abc (.gz文件的操作加上这个z即可)
同理对.bzz2的文件加上j即可
对.xz的文件加上J即可
Ch10:权限两种设定方法(字符和数值方法),
添加所有者对a文件的写入权限。
[root@rhel ~]# chmod u+w a
【例10.2】 取消所有者对a文件的读取权限。
[root@rhel ~]# chmod u-r a
【例10.7】 设置a文件权限,所有者拥有读取,同组用户有读取、写入 和执行的权限。
[root@rhel ~]# chmod 470 a
设置/home/user目录连同他的子文件夹的权限为777。
[root@rhel ~]# chmod -R 777 /home/user
三种特殊权限对于文件和目录的影响
特殊权限有以下3种类型。
(1)SUID
对一个可执行文件,不是以发起者身份来获取资源,而是以 可执行文件的用户所有者身份来执行;对一个目录无影响。
(2)SGID
对一个可执行文件,不是以发起者身份来获取资源,而是以 可执行文件的组群所有者身份来执行;对一个目录,在该目 录中创建的任意新文件的所属组与该目录的所属组相同。
(3)Sticky
对一个可执行文件无影响;对目录设置Sticky之后,尽管其它 用户有写权限,也必须由文件所有者执行删除和移动等操作
设置文件a具有SUID,SGID和Sticky权限。
[root@rhel ~]# chmod 7000 a (suid4,sgid2,sticky)
chown,
【例10.18】 将文件a的所有者改成newuser。
[root@rhel ~]# chown newuser a
将文件a的用户组改成newuser。
[root@rhel ~]# chown :newuser a
将文件a的所有者和用户组一起改成root。
[root@rhel ~]# chown root.root a
Ch11:进程管理ps等命令
显示所有进程。 [root@rhel ~]# ps –e
【例11.2】 显示所有不带控制台终端的进程,并显示用户名和进程的起始时间。 [root@rhel ~]# ps -aux
查看less进程是否在运行。 [root@rhel ~]# ps -ax|grep less
显示用户名和进程的起始时间。[root@rhel ~]# ps -u
,任务计划cron
/etc/crontab文件中的每一行都代表一项任 务,它的格式如下:
minute hour day month dayofweek user-name commands
,系统启动过程
Linux系统的启动是从计算机开机通电自检
开始直到登录系统需要经过的多个过程。
1.BIOS自检
2.启动GRUB 2
3.加载内核
4.执行systemd进程
5.初始化系统环境
6.执行/bin/login程序
,GRUB不用看