Linux从入门到精通2

一、Linux概述 GNU是GNU's Not NUXI的递归缩写。
二、Linux安装 【Linux从入门到精通2】硬盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个。且基本分区可以马上被使用但不能再分区。扩充分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么由扩充分区再分下去的是什么呢?它就是逻辑分区(logical partion),况且逻辑分区没有数量上限制。对于ide硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备的类型,这里是指ide硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个ide硬盘上的第三个主分区或扩展分区,hdb2表示为第二个ide硬盘上的第二个主分区或扩展分区。对于SCSI与SATA硬盘则标识为“sdx~”。主分区的作用就是计算机用来进行启动操作系统的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上。这就是主分区和扩展分区及逻辑分区的最大区别。操作系统可以安装在主分区或者逻辑分区,但引导程序必须安装在主分区内。
三、Linux基本配置 su方式切换是需要输入目标用户的密码,而sudo只需要输入自己的密码,所以sudo可以保护目标用户的密码不外流的。并不是任何用户都可sudo,它是通过读取/etc/sudoers/来确定用户是否可执行相关命令。sudo -s相当于su,但需要的是当前用户的密码,用完后输入exit回到先前用户。修改引导项,sudo gedit /etc/default/grub后要执行sudo update-grub才会更新/boot/grub/grub.cfg。如果安装了双系统,可通过把Windows启动项复制到Ubuntu前来设置为默认启动。
四、桌面环境 五、Shell基本命令 Shell指命令解释器,有多种Shell,默认是BASH Shell(BShell)。文件名可补全,命令本质上是可执行文件,因此命令也可补全。命令行中可使用通配符,如ls .cpp,有,?,[]。
六、文件目录管理 7种文件类型:-,d,c,b,s(本地域套接口),p(有名管道),l(链接符号)字符设备文件:能够从它那里读取成字符序列的设备,如磁带和串行线路;块设备指能随机访问的设备如磁盘。链接符号也称为软链接(可是中目录)。硬链接(只能是文件):将两个独立的文件联系在一起,改变一个会影响另一个,删除一个另一个仍会存在(两个链接指向同一个区域)。 重定向:如ls > a.txt,用>>不会覆盖原内容。 输入重定向:如cat默认不带任何参数会停在那里,等待从标准输入获取数据,可使用<重定向,效果cat < a.txt同cat a.txt(Ctrl+Z暂停任务,Ctrl+D终止)另一种输入重定向为“立即文档(here document),使用<<,从标准输入设备接收输入,到“输入结束分隔符”为止。管道(|):一条命名的输出作为另一条命令的输入,如ls | grep ay查找列表文本名中有ay的。
七、软件包管理 常用软件包格式取决于使用的发行版,如Red Hat用RPM,Ubuntu用.deb。高级软件包管理工具:APT,yum。rpm安装时参数加-i,可加-v(显示rpm当前正在执行的工作),-h(通过打印#提醒用户当前的安装进度),升级时i换为U,升级时会先卸载老版本的软件包,再安装新的,但会保留软件的配置文件。apt-get用于下载软件的地址(通常称为安装源),都被放在/etc/apt/sources.list中。Linux上所有软件都使用configure这个脚本来配置以源代码形式发布的软件,configure依据用户提供相关参数生成对应的makefile文件,后者指导make命令正确编译源代码。从源代码中安装软件先make,再make install。
八、磁盘管理 简单来看,文件系统是一种对物理空间的组织方式。ext4fs是对ext3fs的扩展和改善,通过增加日志功能,大大增加了文件系统的可靠性。ext4fs预留一块专门的区域来保存日志文件,当对文件进行写操作时,所作的修改将首先写入日志文件,随后再定稿一条记录标记日志项的结束,完成这些操作后,才会对文件系统作实际的修改,当系统崩溃,可利用日志恢复文件系统。ResiserFS相对ext来说是个非常年轻的文件系统。swap被称为交换分区,是一块特殊的硬盘空间,当实际内存不够用时,OS会从内存中取出一部分暂时不用的数据放在交换分区中,好处可使用的内在空间远远超过实际的物理内在,坏处频繁操作硬盘会降低运行速度。相比而言,Windows不会为swap单独划分一个分区,而是使用分页文件实现相同的功能,即虚拟内存。swap分区容量应大于物理内存大小,但目前不超过2G。用户不能直接通过设备文件访问存储设备,所有存储设备(包括硬盘、光盘等)在使用前必须先被挂载到一个目录下,然后就可以像操作目录一样使用这个存储设备了。iso9660是CD-ROM光盘的标准文件系统。挂载设备时加参数-t表示指明设备所使用的文件类型(一般不用),-r与-w以只读与可读写模式挂载。在启动的时候挂载文件系统:/etc/fstab,fstab用UUID(Universally Unique Identifer,通用唯一标识符)指代设备名。所有磁盘在使用前都要格式化,这个过程就是在目标盘上建立文件系统的过程,Linux用mkfs,它本身不执行建立文件系统的工作,而是调用mkdosfs,mke2fs,mkfs.minix等。USB设备在Linux中被认为是SCSI设备,挂载USB设备同硬盘一样,.tar.gz文件是先经过tar打包程序处理,然后用gzip压缩。bzip2比gzip有更高的压缩率。tar不会删除原来的文件,而gzip会。tar命令选项的-线是要省略的。配置fstab则可在启动时加载。高级磁盘管理有:独立磁盘冗余阵列RAID及逻辑卷管理器LVM。备份有完整及增量(当删除某些文件时,增量恢复的也会包含这些),dump,restore。dump命令使用备份级别来实现增量备份,每次级别为N的备份会对上次级别小于N的备份以来修改过的文件执行备份。备份级别从0到9到10个,选项-u指定dump更新/etc/dumpdates文件,-f指定用于存放备份的设备。
九、用户与用户组管理 useradd不加-m时,可以登录shell,但不能用图形界面,因为图形界面需要用到用户主目录的一些配置文件。历史文件会存储在用户主目录的.bash_history文件中(最多1000条)。可以直接打开查看。可直接编辑passwd帐户和shadow密码文件。shadow存储密码时可用多种加密算法,常用的有MD5,其任意长度口令加密,且不会产生损失,且无论加密前有多长,加密后都是34个字符,加密过程中会随机加入一些被称为“盐”的数据,从而使一个口令可对应多个不同的加密后的形式,常用加密算法总能通过前缀来识别,如MD5算法总以“”开关。
十、进程管理 PPID:父进程的PID,Linux并没有提供一种系统调用让应用程序创建一个进程,应用程序只能通过克隆自己来产生新进程,因此子进程是其父进程的克隆体。进程的UID是创建者用户ID,用于标识进程的属主。EUID是有效用户ID,用来确定进程对某些资源和文件的访问权限。绝大部分情况下,UID和EUID是一样的,除了著名的setid程序,如passwd是一个典型的setid程序(调用passwd会向shadow写文件),同样有GID,EGID,可通过setgid设置。进程谦让度与优先级是相反的概念。ps aux中出现的字段:RSS表内存中页的数量,TTY表进程所在终端的ID号,STAT表进程状态,有R、D、S、T、Z且常用附加标志有<表拥有更高优先级,N表更低优先级,L表有些页面被锁在内在中,s表会话的先导进程,ps lax可提供父进程ID和谦让度NI,且不会显示进程属主的用户名,有更快的执行速度。如kill -SIGTERM 12974(也可用-TERM,可省略SIG)。kill向程序发送一个信号,然后程序捕捉此信号,并决定是封锁或忽略此信号,只有在信号没有被捕捉的情况下,系统才会执行默认操作。CTRL+C对应信号INT。想要自己定义需要忽略信号,可在程序中加入trap "" TERM,则可以忽略TERM信号。有个信号永远不能被程序所捕捉,即KILL信号,它可在内核级别杀死一个进程,如kill -SIGKILL(KILL) pid。谦让度值应该在-20~+19之间。/PROC目录下存放着有关系统状态的各种有意义的信息,ps、top就是从这个地方读取数据的。
十一、网络配置 无线局域网标准:IEEE的802.11g与802.11a,在安全协议上,WPA已取代WEP。有线网DSL(Digital Subscriber Line)数字用户线路,是使用普通电话线传输数据的技术,目前国内主要使用的DSL技术分支是ADSL,A表非对称asymmetric。调制解调器Modern作用是将电话模拟信号转变为计算机可理解的数字信号。ADSL使用以太PPPoE调制解调器设置实现连接,这是一种被称作“点对点”的拨号方式。Ndiswrapper的程序能够利用Windows上的网上驱动程序来配置Linux内核。ifconfig用于启动或禁用一个网络接口,同时设置其IP地址、子网掩码及其他网络选项。路由是定义网络上两主机间通信的一种机制。全0全1的主机是网络地址(代表整个网络)和广播地址(发送到此的包会被转发到这个网络上所有主机上)。确定主机和ip的映射关系可用DNS或原始方式的hosts文件(指定本地映射关系),保存位置在/etc/hosts,至少包含两行,分别指定locahost和本地主机名对应的IP地址(127.0.0.1)。PPP协议(Point-to-Point Protocol),ADSL用此,配置PPP可用wvdial命令行工具。
十二、浏览网页 基于文本的浏览器lynx。
十三、收发邮件 邮件协议有POP3(Post Office Protocol 3邮局协议版本3),IMAP(Internet Mail Access Protocol),SMTP(Simple Mail Transform Protocol)。可用客户端如Gnome下的Evolution,KDE下的Kmail
十四、传输文件 NFS目前只用于在Linux和UNIX主机间共享文件系统,安装选项中可有硬安装(默认,当网断时会暂时阻塞,更安全),软安装。Windows下使用CIFS(Common Internet File System)协议来共享文件。Samba包括一个服务器端和几个客户端程序。安装在Linux主机上的Sabma的服务器端程序向Windows机器提供Linux共享。FileZilla是FTP工具。ftp命令与Shell基本一致,如ls(ftp中也可用dir),cd等,前加!,表执行本地命令,如!ls表列出本地文件,?将列出所有ftp命令,用bye或quit退出ftp。基于SSH的文件传输有sftp和scp。
十五、远程登录 OpenSSH是Linux下最常用的SSH服务器/客户端软件。可通过PuTTY或VNC从Windows登录到Linux上。使用SSH时,可只用密钥不用密码也可只用密码而不用密钥。
十六、多媒体 xine是Linux下负责解码的后端,调用其实现音频输出的称为前端,gstreamer与其类似。也有自己解码器的如Xmms、MPlayer等。Ogg同mp3一样,也是一种音乐文件压缩格式。
十七、图像 KDE下有Konqueror文件浏览器可直接查看图片,Gnome下可用Nautilus文件浏览器,然后调用“GNOME”之眼来查看。处理图像可用GIMP。Shotwell是管理相册工具。LibreOffice提供了绘图工具LibreOffice.Draw。
十八、打印机配置 打印机可认为是计算机,有自己的CPU、内存、OS、硬盘等,网络打印机还有自己的Web服务器。打印机语言:PDL(Page Description Language),经过其编码的页面可提供比原始图像更小的数据量及更大的传输速度。把文件转化为打印机能理解的PDL就是打印机驱动程序要做的全部事情。CUPS是Common UNIX Printing System,它是基于服务器/客户机架构。PostScript是一种PDL,打印信息会包含在PPD(PostScript Printer Description)文件中。CUPS维护一个全局的打印机配置文件/etc/cups/printers.conf。CUPS的配置文件是cupsd.conf。
十九、办公软件的使用 LibreOffice.org包括文字处理器Writer(格式是odt),电子表格Calc(xls格式),演示文稿Impress(默认是odp格式,可保存为ppt),公式编辑器Math和绘图程序Draw。PDF阅读器Xpdf、Adobe Reader。光盘刻录工具Brasero,可刻录音乐、系统映像等。
二十、Linux编程 Linux下图像化编辑器:Gnome下的gedit与KDE下的Kate。 gcc是GNU C Compiler。gcc [-o test -g] test.c,其编译选项:-c生成-o目标文件,-S生成.s汇编文件,-E只激活预处理,将结果输出到标准输出,-g生成调试信息。gcc可以编译C++源文件,但不能自动和C++程序使用的库链接。调试gdb test.out。gdb支持补全及缩写。
二十一章、Shell编程 目前在GNU/Linux中有两套可用的正则表达式编程POSIX库(自带)和PCRE库(Perl)。正则表达式中,.用来匹配除换行符之外的任意一个字符。字符集[],只能匹配其中一个。正则表达式中“单词”是两侧由非单词字符(字母、数字、下划线外的任何字符)分隔的字符串。重复0或多次,+一或多次,?0或1次,指明次数{a},{a,b}{a,}。子表达式也被称为分组,如egrep "(or){2,}" 文件,反义即除此之外所有,如[xy]表除x,y之外的所有字母。分支,如以h开头或t结尾用|,"h|t$"。逆向引用:在子表达式中捕获的内容可在其他地方再次调用,用反斜杠\加子表达式编号即可,如"(<.>).?( )*\1"可匹配所有在某个单词出现后,紧跟着0或1个标点符号及任意空格后再出现此单词的行,由于.?前已匹配单词,所有.只能匹配标点。
二十二、服务器基础知识 Linux启动步骤:执行存储在ROM中的代码即BIOS来获取硬件相关内容引导设备等,然后加载该设备开头512字节即MBR,MBR告诉计算机从什么地方加载下一个引导程序即“引导加载器Boot Loader”,引导加载器负责加载操作系统的内核,Grub,LILO是Linux上两个著名的引导加载器。 Linux的init进程总共支持10个运行级,但实际定义的运行级只有7个,它指定了如0是系统关闭,1或S是单用户械,3是完整的多用户模式(如服务器用),5是多用户模式,运行X窗口系统(一般默认),如要更改可用sudo telinit 6,也可入/etc/inittab。 守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务,一般在系统引导的时候启动且一起运行到系统关闭,另一些只在需要的时候启动完成任务后自动结束。init是系统中第一个启动也是最重要的守护进程。为了不让守护进程一直运行监听,可使用inetd,如FTP设置为此,当出现一个连接时,inetd就启动FTP服务,还有更好的xinetd,自启动的模式称为standalone,后者称为inetd/xinetd模式。
二十三、HTTP服务器——Apache 二十四、TFP服务器——vsftpd Very Secure FTP Daemon。和HTTP一样,FTP也是基于简单的服务器/客户机架构,但它默认是一种“主动连接”的方式向客户机传递信息,FTP服务器在使用时开启两个端口,默认是21和20,其中21被客户机用来向服务器下达命令,而实际文件传输则发生在20端口,当接收到客户机发送的命令如ls后,会主动向客户机发送连接请求(主动连接)。也可被动连接,21端口仍接收命令,然后服务器会启动一个端口号大于1024的非特权端口并告诉客户机,由其发起连接。
二十五、Samba服务器 二十六、网络硬盘——NFS 二十七、任务计划:cron 如需定期备份:0 17 * * * root ( tar czf /media/disk/book.tar.gz /media/station/document/book/*.doc ) Linux上周期性任务通常由cron这个守护进程来完成的,它随系统启动而启动。cron的配置文件叫做crontab。Ubuntu、Debian把默认Shell改成dash(Debian ash)了,是对BASH的改进,提示更快的脚本执行速度。at执行一次性任务,如at 17:00 02/01/2018 -f ~/脚本,用atq查看已经设置的任务,用atrm 编号删除。
二十八、防火墙和网络安全 Linux的防火墙工具是IP Tables。Linux防火墙是一种典型的包过滤防火墙,通过检测到达的数据包头中的信息,确定哪些数据包可以通过,哪些应该被丢弃。扫描网络端口nmap -sT。口令破解工具:John the Ripper,如sudo john /etc/shadow
二十九、病毒和木马 rootkits能隐藏入侵活动的痕迹,它能在操作系统中隐藏恶意程序。Linux下防毒软件ClamAV。
链接:https://pan.baidu.com/s/1ubtmhPC6iJ2QxPlHTBD7TQ
提取码:co3y

    推荐阅读