Linux学习笔记入门篇.docx
- 文档编号:4034563
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:57
- 大小:2.46MB
Linux学习笔记入门篇.docx
《Linux学习笔记入门篇.docx》由会员分享,可在线阅读,更多相关《Linux学习笔记入门篇.docx(57页珍藏版)》请在冰点文库上搜索。
Linux学习笔记入门篇
Linux学习笔记
2014.02肖东
说明:
本学习笔记基于“尚学堂马士兵老师的Linux课程”和“软考网络工程师里的Linux部分考点”,以RedhatLinux9.0为平台,从基础入门知识到简单的服务器配置。
全程手工实验,真实截图。
目录
一.基础概念
●存储设备命名规则、硬盘知识、Linux硬盘分区˙˙˙˙˙˙˙˙˙˙˙˙˙˙2
●Linux的目录结构˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙3
●Linux的启动顺序和层次˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙4
●vi基础知识、文件权限、重定向知识˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙5
●Linux与Windows之间文件传输、SSH˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙6
二.BasicCommands
●startx、cd、pwd、whoami、ls、mount、clear、exit、reboot、logout
shutdown、man、mkdir、rmdi、rm、cp˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙7
●mv、vi、more、cat、less、tac、head、tail、find、find、whereis、echo
ln、useradd、passwd˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙8
●userdel、groupadd、su˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙9
●chmod、chown、wc、grep˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙10
●其他简单命令、管道示例˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙11
●wall、重定向示例˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙12
●vsftp配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙13
●iptables简单配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙15
●chkconfig、service˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙16
●rpm、pstree˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙17
三.基本应用
●Linux里安装软件的方法˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙18
●Apache的简单配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙21
●Samba的配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙24
●LinuxBINDDNS的配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙28
●LinuxDHCP配置˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙40
一、基础概念
1.键盘、打印机在Linux看来是字符设备,硬盘、光驱、U盘是二进制(块)设备(一块一块读),Linux把任何东西(包括设备)都当成一个文件来处理(好处是:
编程简单,对任何东西只要针对文件编程即可)。
2.设备类型命名:
hd(IDE硬盘),sd(SCSI硬盘);
hda(第一块IDE硬盘),sdb(第二块SCSI硬盘);
磁盘分区的命名:
前四个分区(主分区或者扩展分区)用数字从1排列到4,逻辑分区从5开始;
hda3(第一个IDE硬盘上的第三个主分区或者扩展分区),sdb6(第二块SCSI硬盘上的第二个逻辑分区);
3.Linux根目录是:
“/”,Linux里的目录相当于Windows里的文件夹;
4.硬盘的物理结构:
●硬盘有数个盘片,每个盘片有2个面,每个面一个磁头;
●盘片被划分为多个扇形区域即扇区;
●同一盘片不同半径的同心圆为磁道;
●不同盘片相同半径构成的圆柱面即柱面;
●存储容量=磁头数X磁道(柱面)数X每道扇区数X每扇区字节数;
●MBR:
位于硬盘第一个物理扇区,第0个柱面,第0个磁头,第1个扇区处;MBR包含硬盘的主引导程序和硬盘分区表;
5.Linux硬盘分区:
6.Linux的目录结构
7.Lniux的启动顺序(重要)
rc是runcammand的缩写,d是demon(精灵)的缩写,指服务器后台的服务进程
Linux的启动是分层次的,每个层次启动的程序不一样,根据每个层次启动不同的脚本(scripts)
启动模块
Linux启动的第一个进程init
execute:
执行、实行
rc.local脚本是系统自启动程序列表,通过修改/etc/rc.local文件可以让某个程序开机自动启动!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Lniux的启动层次:
可以在/etc目录下用vi修改inittab文件,改变系统的默认启动层次,一般默认进入命令行模式(第3个),第5个是图形化界面
8.从技术角度讲,在Linux里,文件的后缀名没有任何意义!
也就是说,一个TXT文件可能是可执行文件,一个EXE文件也可能是文本文件。
不过,为了养成一个好习惯,让文件可以“见名知意”,一般没有人把TXT做成可执行文件或者把EXE做成文本文件。
Linux里文件的后缀名只有提示性的意义。
Linux里,可执行文件一般以.shell或者.C为后缀名。
9.vi基础知识:
●vi是最常用的文件修改工具,常用命令有50多个,推荐打印在一张纸上贴在醒目的地方方便查阅
●vi分两种模式:
命令模式和编辑模式
●刚刚进入vi时,默认是命令模式,只能敲命令
●从命令模式进入编辑模式,用append命令,是添加的意思,敲一个a即可
●按键盘上的Esc,返回命令模式
●:
w存盘
●:
q退出
●:
q!
不存盘退出
●:
wq存盘退出
●dd删除当前一行
●dw删除当前整个word(单词)
●o(小写)下面插入一行
●O(大写)上面插入一行
10.Linux是一个多用户的系统(系统里容许多个用户同时运行)
11.Linux的文件权限问题(重要):
●第一位中,d代表目录,l代表链接,横线(-)代表文件;后面还有9位,被分成了3组。
第一组代表文件所有者,第二组代表与文件所有者同组的用户,第三组代表剩余的其他用户
●Linux下文件的权限分为四种:
r表示read读,w表示write写,-表示no没有任何权限,x代表execute执行
●更改文件权限用chmod命令,使用方法见BasicCommands第28条
12.重定向知识(用的不多)
详细使用方法参见BasicCommands第35条
13.学习Linux,只是学习它的命令是很枯燥无味的。
学习Linux最重要的是学习如何在Linux环境下搭建各种各样的Server,当然操作的过程是纯命令行的,没有任何图形界面。
14.在Linux里安装软件,需要先把软件的安装包传到Linux服务器里。
将Windows里的文件传到Linux服务器里的方法很多。
主要有以下几种方法:
●在Linux里安装Samba协议,这样就可以在Windows机器上建立共享文件夹来让Linux访问。
但是这种方法在维护大多数企业的服务器时不适用,因为大多数企业喜欢把服务器托管在电信机房,与管理员所在的电脑不属于同一个局域网,所以共享文件夹这种方式用不了(除非你的LinuxServer挂在企业自己的机房里)。
所以这种方式很少用。
(Samba配置参见Basiccommands第条)
●在管理员这边建立一个FTP服务器,然后在Linux上下载。
如果站在电信机房的角度,这种方法也是不适用的。
因为管理员需要把自己挂在内网中的FTP服务器映射出去让外网访问(越多的端口对外开放,企业的内网会越不安全)。
如果不在乎那点安全性,而且你的公司是用电信给的固定的静态IP在访问外网,也可以在路由器或者防火墙里把内网里的FTP服务器的21端口映射出去(用ADSL电话线上网的公司不行,因为ADSL是分配的动态IP地址,每次拨号获取的IP都不一样)。
●在Linux上建立一个FTP服务器,然后管理员在Windows机器这边上传。
这种方法是很适合那些挂在电信机房的服务器。
因为每个托管在电信机房的服务器,电信都会分配一个固定的静态外网IP,具有相应权限的人可以轻松地在世界每一个角落通过互联网访问。
(LinuxFTP配置参见Basiccommands第37条)
15.SSH远程登陆协议:
SSH为SecureShell的缩写,是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
远程管理最古老的方式是Telnet,它的最大缺点是,所有信息都是以明文的形式在传输,很容易被监听,极不安全。
SSH本身传输的信息是经过加密的,所以SSH现在使用越来越广泛,而且现在大多数服务器已经不提供Telnet的服务了,只提供SSH的服务。
(SSH服务的开机自启动和vsftp类似,相关命令参见Basiccommands第39条)
二、BasicCommands
1.startx命令行转到图形界面;
2.cd/进入Linux根目录
cddev进入dev目录
cd..返回上一级目录;
3.pwd显示当前位于哪个目录;
4.whoami查阅当前用户;
5.ls列出当前目录里的内容
ls-l竖着显示当前目录里内容的详细信息(d开头的是目录,-开头的是文件)
ls-m按照屏幕的宽度列出当前目录里的内容
ls-r反向排列目录里的内容
ls-R按照树状排列目录里的内容
6.mount/dev/cdrom/mnt/cdr将光驱挂载到根目录下mnt目录下的cdr目录上
umount/dev/cdrom或者umount/mnt/cdr卸载光驱
7.clear清屏
8.exit退出当前界面(终端)
9.reboot重启
10.logout注销
11.shutdownnow现在关机
12.man【cammands】显示命令的手册(有问题问问男人)
13.mkdir创建空目录
14.rmdir删除空目录(不能删除非空目录)
15.rm-r删除非空目录、递归删除(r是recursion的缩写,是递归的意思),但是系统会提示是否删除,很麻烦
rm-rf强制且不带任何提示地删除目录或者文件
16.toucha创建一个名称为a的文件
17.cp12把1拷贝成2(注意:
cp不加任何参数,不能复制目录)
cp-r12把目录1拷贝成目录2
18.mva/将当前目录下的文件或者目录a移动到系统根目录下
mvb../将当前目录下的文件或者目录b移动到上一目录
19.via用vi文本编辑器打开文件a(若没有文件a,则创建文件a)
20.morea.txt查看文件a.txt里的内容
cata.txt查看文件a.txt里的内容(正序)
lessa.txt按页显示文件,B键向前翻页,P键向后翻页,Q键退出
taca.txt查看文件a.txt里的内容(逆序)
heada.txt查看文件a.txt里的内容(和more相同)
head-3a.txt查看文件a.txt里前三行的内容
tail-3a.txt查看文件a.txt里倒数三行的内容
21.find/-namerc.local查找系统根目录下一个叫rc.local的文件
find/etc-namerc.*查找系统根目录下etc目录下的以rc.开头的文件
22.whereisls查看ls命令所执行的是哪个文件,以及该命令的帮助文档在什么地方
echo$PATH查看PATH的环境变量(实际上,我们在Lniux里所执行的命令都是在PATH环境变量的目录里查找的,且环境变量的分隔符是“:
”,Windows里的环境变量的分隔符是“;”)
23.lna.txtp将文件a.txt链接到文件p,这种链接称为硬链接(链接和拷贝不同,修改a.txt后,查看文件p,内容也随之修改;而拷贝的文件则不会随源文件的修改而被修改。
)
ln-sa.txtq将文件a.txt软链接到文件p(s是symbol的缩写,意思是符号;软连接相当于Windows里的快捷方式,硬链接相当把源文件复制了一份,再在两份文件之间建立一个链接)
终上所述:
硬链接有备份的功能,而软连接没有。
当删除源文件后,硬链接的文件依然可以打开(就相当于复制的),而软连接的文件打不开了(因为它只是一个快捷方式)
24.useraddtest添加一个名为“test”的用户(或者用adduser也可以)
cd/home进入系统根目录下的home目录(不同的用户在home目录里都会有自己的主目录,所以在添加完用户后,可以进home目录用ls命令看看是否有新添加用户的主目录)
passwdtest给名为“test”的用户设置密码(后面系统会提示输入新密码,而且是输2次)
补充知识1:
在etc目录下有个名为passwd的文件,用more命令查看,倒数几行是用户的信息
解释:
这里每一记录行用冒号(:
)分成了7个域
1)xiaodong:
用户名;
2)x:
加密的口令(密码),因为系统使用了shadow技术,真正的加密后的用户口令存放在/etc/shado文件中,所以/etc/password文件的口令字段只存放一个特殊的字符x,并且shadow文件只有root可读。
3)500(第一个):
用户ID号;
4)500(第二个):
组ID号;
5)xiaodong:
用户的全名或者描述(下面的test用户没有描述,所以是空的)
6)/home/test:
用户的主目录(即登陆目录);
7)/bin/bash:
这个用户所用到的shell是bash(即登陆shell)
补充知识2:
●Linux内核不会直接执行Linux命令,内核的外围有一层shell,shell的功能就是解释Linux命令以让内核执行;
●shell有很多种,不同的shell执行的命令不一样,很多同样的命令在不同的shell下不能通用,很多常用的命令是通用的;
●常见的shell有:
bash、bsh、csh、ksh、sh等;
●不同的shell之间可以切换,用exit命令退出到上一层shell。
补充知识3:
在etc目录下有个名为group的文件,用more命令查看,倒数几行是用户组的信息
●当添加一个用户不指定这个用户属于哪个组时,系统默认添加一个和用户名一样的组
25.userdeltest删除一个名为“test”的用户
(注意:
用不带任何参数的userdel命令删除用户后,home下的用户主目录还在,需要用rm-rf命令手动删除掉。
)
userdel-rtest删除用户test在系统的账户以及用户管理配置文件(主要是/etc/passwd、/etc/shadow和/etc/group登)中的记录,同时删除用户的主目录
26.groupaddtest1添加一个名为“test1”的组
(用more命令查看group文件,发现多了一个组,组号为502)
useraddtest0-gtest1添加一个名为“test0”的用户,并将其指定到“test1”组里(g是group的缩写)
(用more命令查看passwd文件,果然test0所在的组号是502)
usermod-gtest1test将名为“test”的用户指定到名为“test1”的用户组里
groupadd-g503test1新建一个组号为503的用户组test1
groupdeltest1删除用户组test1
groupmod-ntest1test将test用户组的名字改为test1
(改名前)
(改名后)
注意:
如果需要将一个已知用户加入一个已知用户组,只需用vi编辑/etc/group文件即可。
group文件的每一行表示一个组的信息,其中第4个域代表组内用户的列表,将用户名加入到用户域列表中,用逗号隔开(如下图)
(这4个域分别是:
用户组名,加密后的组口令,组号(组ID),组成员列表)
27.sutest0从当前用户切换至“test0”用户
exit回到上一个用户
28.chmod+xc给所有用户增加文件c的可执行权限
chmod-xc给所有用户去掉文件c的可执行权限
chmodu+xc只给文件所有者增加文件c的可执行权限(u表示user,文件所有者;g表示group,同组用户;o表示other,其他用户;a表示all,所有用户)
chmod777c给所有用户增加所有权限(这种3位十进制数是专业写法,如下图)
每组对应三种权限(rwx),当第一种权限(r)有时,用1表示,没有用0表示,后面以此类推。
所以,三种权限都有就是111,转换成十进制就是7,所以7就代表所有权限。
下面对所有组合整理:
rwx
111
7
所有权限
rw-
110
6
读写
r-x
101
5
读和执行
r--
100
4
只读
-wx
011
3
写和执行
-w-
010
2
只写
--x
001
1
只执行
---
000
0
无任何权限
29.chowntest0c将文件c的所有者改为test0
30.wcc统计文件c里的行数、字数、字符数(wc是wordcount的缩写)
31.grepac查找文件c里哪些行有a这个字符,并将这些行显示出来
32.其他简单命令
33.ls-Rl/dev|less将/dev目录下的所有文件和目录(包括子目录和子文件)按照树状分页显示,按键盘功能键的‘pageup’向上翻页,按键盘功能键的‘pagedown’向下翻页。
竖线(|)叫做管道连接符,意思是把上一个命令(ls-Rl/dev)执行的结果交给下一个命令(less)。
ls-Rl/dev|more和上面功能一样,只不过这里是按Enter键逐行显示
补充:
管道知识(重要)
只列出文件,并且数一数有多少行,也就是当前目录下有多少个文件
小尖号“^”代表一行的开头,这里就是只列出目录(d是目录,-是文件,l是链接)
dmesg是显示系统启动时的信息,grepeth0是查一下网卡的启动信息是否正常
先把password文件显示出来,再查找哪一行包含lrj
先把password文件显示出来,再把显示出来的结果数数有多少行和字数
补充说明:
在许多UNIX说明文件里,都有RLF控制字符。
当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
34.walldate将信息“date”通知所有用户(wall是warningall的简写,意为警告所有人)
wall·date·将命令“date”执行的结果警告所有人(··是数字键1左边的按键),叫做命令替换。
35.ls>1.txt把ls命令执行的结果输入到1.txt文件里(1.txt文件生成在当前目录下,用more命令查看,内容和ls命令执行的结果一样)
ls>>1.txt把ls命令执行的结果添加到1.txt文件内容的后面(不光是ls,很多命令执行的结果都可以文本形式添加到1.txt文件内容的后面。
注意:
当命令无效时,是不会做输出的)
abc2>2.txtabc是一个无效命令,它本身不会做输出。
但是2>是错误重定向,意为着把abc这个无效命令执行的错误信息输入到2.txt文件中
wall<1.txt将1.txt文件里的内容先读进来,然后通知给所有人(重定向输入)
36.servicevsftpdstart启动ftp服务(注意:
linux里的ftp叫vsftp,它的进程叫vsftpd,启动这个进程就行。
vsftp的全称是VerysecureFTP,意思是非常安全的ftp。
vsftp的三大特点:
巨稳定、超高效、很安全。
)
ftplocalhost进入ftp的登陆界面(刚刚启动的ftp服务,可以用这个命令检查ftp服务是否正常开启,如果进入登陆界面,说明ftp服务正常)
37.登陆FTP后,在ftp模式下的常用命令:
put1.txt2.txt把本机当前目录下的1.txt文件上传到LinuxFTP服务器的当前目录下,且改名为2.txt(这里的改名是可选的,不改名的话,就用文件原名下载)
get2.txt3.txt把LinuxFTP服务器当前目录下的2.txt文件下载到本机的当前目录,且改名为3.txt(当然改名也是可选的)
注意:
●要在LinuxFTP服务器里上传和下载,首先要保证登陆进去的账号具有相应的权限。
上传需要写入权限,下载需要读取权限。
可以用chmod命令修改一个目录的权限,让其他登陆进来的用户具有读写权限,那样就可以上传和下载了。
●vsftp默认容许匿名登录,可以通过查看/etc/vsftpd/vsftpd.conf这个文件得知。
匿名用户默认只能读取。
●vsftp出于安全考虑,默认不容许root登录
要容许root登录,需要更改2个配置文件:
/etc/vsftpd.user_list和/etc/vsftpd.ftpusers。
将这2个文件中的root删掉或者用#注释掉就行了。
●vsftp开机自启动有三种方法
1.在终端输入ntsysv,进入开机自启动服务选择器,选中vsftpd即可,如图
2.用vi打开etc/rc.local文件,在里面加入/usr/local/bin/vsftpd&即可
3. 执行chkconfig vsftpd on命令,可以在2到5不同的启动级别上都开启vsftp自启动。
还可以指定哪些级别自启动,如chkconfig --level35vsftpd on就是指定级别3(多用户带网络的命令行模式)和级别5(图形化界面)自启动。
第三种方法最为专业,也是现实中最常用的。
注意:
检查vsftp服务自启动状态的命令有2个:
chkconfig--list|grepvsftpd(用管道),
或者chkconfig--listvsftpd。
●FTP模式下操作文件的命令和Linux终端里的命令大部分相同,少部分不一样
delete [filename]删除远程LinuxFTP服务器上指定的文件
dir列出远程LinuxFTP服务器上当前路径下的目录和文件,和ls效果一样
bye断开连接
补充:
真实环境中使用远程LinuxFTP服务器时,Windows终端这边一般使用FlashFXP上传和下载文件,一是方便快捷,二是可以变换端口(有些FTP服务器将默认控制端口21更改成了别的数字)
设置界面:
登陆后,进入/test目录的界面:
38.serviceiptablesstart|stop打开/关闭防火墙(iptable是一种网络防火墙,在Linux下使用,Redhat9.0版本以上自带,它可以实现NAT转换,可以做上网代理)
iptables-L-n查看防火墙配置(注意L是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 学习 笔记 入门