• 鸟哥的linux私房菜学习笔记


    第一章 什么是linux:主要介绍linux及其发展史,GNU与linux的关系,自由软件与开源代码,GPL协议,linux的版本、核心、特性、优缺点等。
    第二章 如何学习linux:linux应用(网络服务器、工作站计算机、台式计算机、嵌入式系统);从头学习(基础知识)->选择工具书->实践;学习方法(x-window、命令行模式、网络/主机数据查询、向别人提问)
    第三章 linux主机的规划:根据需求选择硬件,对硬件进行了介绍(速度,稳定性);每个硬件被当成文件对待;安装前的规划、主机服务器与硬件的关系,学完这章可以根据主机的服务来选择相应的硬件设施,合理的对系统进行规划,解决常见的系统问题。
    第四章 安装FC4与多重启动技巧:通过实例讲解,如何规划和安装linux系统;识别硬盘分区:由于MBR块容量有限,linux设计成4个分区记录,分区号dev/hda1-4是预留的,所以逻辑分区的代码号由5开始。如何安装多系统,以及多重启动的一些技巧。
    第五章 启动关机、在线求助与执行命令的方式:x window及命令行模式下正确登录与离开系统(不正常关机可能导致系统扇区错乱,数据坏损);X window(重启crtl+alt+backspace)与命令行模式切换(crtl+alt+f1--f6)按下crtl+alt+f7回到x window下;命令行模式执行命令,英文区分大小写,一些简单命令的使用(日期date、日历cal、计算机bc[默认只输出整数,要输出小数,需要指明小数点位数,执行scale=number即可]);重点热键,在线帮助man/info;正确关机的方法及命令(shutdown、reboot、init、halt)shutdown参数介绍:
    -t sec : -t后面加秒数,即“过几秒后关机”的意思
    -k : 不要真的关机,只是发送警告信息
    -r : 在将系统的服务停掉之后就重新启动
    -h : 将系统的服务停掉后,立即关机
    -n : 不经过init程序,直接以shutdown关机
    -f : 关机并启动之后,强制略过fsck的磁盘检查
    -F : 系统重新启动之后,强制进行fsck的磁盘检查
    -c : 取消已经在进行的shutdown命令内容
    使用时注意加上时间参数;忘记root密码不必重装,单用户维护模式登入可修改root密码。
    第六章 linux的文件属性与目录配置:用户与用户组的介绍,文件属性设置(只有某个目录的可读权限是不能进入该目录的,因为没有对该目录进行操作的权限)chgrp:修改文件所属用户组;chown:修改文件拥有者;chmod:修改文件属性(r:4,w:2,x:1);文件类型与扩展名:类型:普通文件(纯文本文件、二进制文件、数据格式文件)、目录、连接文件、设备与设备文件(字符设备文件、块设备文件)、套接字、管道;扩展名没有什么实际意义,只是帮助我们了解文件内容,文件或目录名最长可达255个字符,加上完整路径可达4096个字符,设置文件名时最好避免使用特殊字符;目录配置(FHS):在linux中所有文件与目录都由根目录(/)开始,形成目录树,/etc、/sbin、/bin、/dev、及/lib要跟/绑在一起,不能放在不同的分区;主机分区与目录配置:根据主机用途进行分区和配置。
    第七章 linux文件和目录管理:
    绝对路径:路径的写法一定由根目录/写起;相对路径:路径的写法不是由/写起。
    特殊的目录: . 表示此层目录 . .表示上一层目录 - 表示前一个工作目录 ~ 表示当前用户身份所在的家目录 ~account 表示account用户的家目录。
    常用操作:cd 切换目录;pwd [-p] 显示当前所在目录(-p选项可以获取正确的目录名,而不是以连接文件的路径来显示);mkdir [-mp] ,目录名 建立新目录(-m:设置文件的权限,直接设置,不用管默认权限;-p:直接建立所学要的目录递归);rmdir 删除空目录(-p:与上层空目录也一起删除;删除非空目录要使用rm -r 目录名 或者rm -rf 目录名)。
    增加PATH搜索目录:在命令行模式下输入PATH=”$PATH”:/root(/root目录根据需要而定)。
    查看文件和目录 ls 、复制文件或目录 cp、删除文件或目录 rm、移动文件与目录或重命名 mv,这些命令的选项很多,用的时候man一下就可以了。
    查看文件内容各命令用途:
    cat: 由第一行开始显示文件内容
    tac: 从最后一行开始显示文件内容
    nl: 显示的时候输出行号
    more: 一页一页的显示文件内容
    less: 与more类似,但是它不能向前翻页
    head: 只显示前几行(默认10行)
    tail: 只显示最后几行(默认10行)
    od: 以二进制方式读取文件内容
    各命令的选项也不少,需要的话同样man以下就可以了。
    修改文件时间与创建新文件:touch [-acdmt] 文件,各选项功能man下就知道了。
    文件默认权限:umask(查看后的值是要去掉的权限的值),默认权限的设置很简单,直接在umask后输入要去掉的权限的值即可,如umask 002目录权限即为:rwxrwxr-x;设置文件隐藏属性:chattr [+-=] [Asacdistu] 文件或目录名,其选项的意义通过man可知,其隐藏属性通过lsattr可以查看。文件的特殊权限SUID是程序在执行过程中拥有文件拥有者的权限,所以仅可用于二进制文件,不能用在批处理文件(shell脚本)上,对目录是无效的。
    SUID/SGID/SBIT权限设置:4为SUID;2为SGID;1为SBIT,在设置属性时在3个数字前再加上一个数字,最前面的数字就表示这几个属性,如chmod 4755 file则file属性为-rwsr-xr-x。
    文件类型:file 通过这个命令,可以简单的判断文件的格式。
    搜索文件:whereis与locate是使用数据库来搜索数据,没有实际搜索硬盘,所以速度很快,当找不到时才用find;which:寻找执行文件,whereis寻找特定文件,locate可以根据文件的部分名称搜索文件,find可以根据不同的参数提供搜索功能。
    第八章 linux磁盘与文件系统管理:硬盘的物理组成:注意磁头、磁道、柱面、扇区等概念,磁盘存储量简单公式是:柱面x磁头x扇区x512字节,一定要正常关机,让硬盘机械手臂回归原位,保证硬盘安全。分区的要点:就是记录每一个分区的起始与结束柱面。逻辑块实在分区进行文件系统的格式化时所指定的“最小存储单位”是以扇区大小为基础的,快的大小为扇区的2^n倍数,且一个块仅能容纳一个文件。ext2规划出inode与块来分别存储文件的属性与内容,要将磁盘格式化为ext2,就必须指定inode与块的大小才行。目录的最大功能就是提供文件的关联性,注意了解ext2的特性(查看文件系统信息命令:dumpe2fs 文件设备号),分区要根据主机的用途来规划。日志文件系统很好的解决了数据不一致的问题,可以快速修复文件系统。载入点就是进入该文件系统的入口。查看磁盘与目录的容量df、du具体用法通过man可知。连接文件类似于windows中的快捷方式,硬链接只是在某个目录下的块多写入一个关联数据,不会用掉inode与磁盘空间,且不能跨文件系统,不能连接目录;符号链接(即快捷方式)所建立的文件为一个独立的新文件,会占用inode与块,建立连接命令ln,详细使用man知道。硬盘分区fdisk,格式化mke2f(格式化为ext2/ext3)或mkfs(格式化为其他文件系统),设置磁盘代码mknod;制作可启动进入linux的软盘:mkbootdisk --device /dev/fd0 'uname -r',软盘低级格式化fdformat,在低级格式化之后,使用mke2fs命令将软盘的文件格式化为linux的ext2类型。磁盘检验:fsck(磁盘未挂载情况检查)、badblocks,sync命令可以直接将系统暂存在内存中的数据写入磁盘。使用mount命令,可以将文件系统载入到linux系统,使用umount命令卸载。修改磁盘参数:mknod、e2label、tune2fs、hdparm,这些命令都有很多参数,使用时要用man手册,搞清楚每个参数的功能。使用mke2fs /dev/fd0可以制作ext2软盘,使用如下命令可以挂载软盘:mount -t 文件类型(ext2/vfat等) /dev/fd0 /media/floppy #挂载
    umount /media/floppy #卸载掉/media/floppy后才能取出软盘
    载入windows磁盘:首先建立一个目录,然后将将windows所在分区(fdisk -l可查看)载入linux目录,如将windows所在分区/dev/hda1载入到/mnt/win98过程如下:
    mkdir /mnt/win98 #建立linux目录
    mount -t /dev/ vfat /dev/hda1 /mnt/win98 #挂载分区
    mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98 #显示正确的中文
    载入u盘:将u盘/dev/sda载入到/mnt/usb过程为:
    mkdir /mnt/usb #建立linux目录
    mount -t vfat /dev/sda /mnt/usb #载入u盘
    启动时载入/dev/fstab和/dev/mtab:文件系统有很多参数,这些可以查资料知道,可以使用dump备份命令进行系统备份,要在启动时载入自己建立的磁盘文件系统时,就在/etc/fstab文件中加入,例如启动时要载入/dev/hdb5到/mnt/hdb5,并在启动时自动载入,就在/etc/fstab中加入/dev/hdb5 /mnt/hdb5 ext3 defaults 2 2即可,如果在/etc/fstab中输入的数据错误导致无法顺利启动,可以使用mount -n -o remount,rw /命令读写根目录,并更新文件内容。
    建立虚拟内存:先建立swap设备或文件,将它格式化为swap格式,最后将它载入到系统上;建立虚拟内存设备:
    1、利用“fdisk /dev/hd[a-]”先建立一个分区,然后将该分区的ID改为82;
    2、使用“mkswap /dev/hd[a-d][1-16]”将刚建立的分区格式化为swap文件格式;
    3、启动swap,命令为"swapon /dev/hd[a-d][1-16]",(关掉虚拟内存的命令为swapoff)。
    建立虚拟内存文件:
    1、使用dd命令建立swap文件;
    2、使用mkswap将swap文件格式化为虚拟内存的文件格式;
    3、使用swapon来启动该文件,使其成为虚拟内存;
    4、使用swapoff来关闭该文件。
    第九章 文件的压缩与打包:目前一些常见的压缩文件的扩展名
    *.Z: compress程序压缩的文件
    *.bz2: bzip2程序压缩的文件
    *.gz: gzip程序压缩的文件
    *tar: tar程序打包的数据,并没有压缩过
    *.tar.gz: tar程序打包的文件,并且经过gzip的压缩
    linux常见的压缩与解压缩命令:compress(uncompress解压缩)(扩展名为.Z);gzip(扩招名为.gz),zcat(用来读取扩展名为.Z和.gz的压缩文件数据内容的命令);bzip2(bunzip2 解压缩)(扩展名为.bz2),bzcat(用来读取扩展名为.bz2的压缩文件的数据内容);tar(扩展名为.tar/.tar.gz)多用途的压缩命令,可以将整个目录或者指定的文件都整合成一个文件,要以绝对路径建立打包文件时要加上-P参数(注意大写);除了tar以外,其他命令在没有加入特殊的参数时,原来的文件就会被取代,但是,使用tar,原来的与后来的文件都会存在。dd的备份功能很好用,参数用man可知,cpio是备份的利器,但是不怎么好用,必须配合其他程序,与管道命令及数据流重导向的相关性很重要。
    第十章 vi文字处理:命令行的命令很多,常用的要知道;使用临时文件,可以恢复文件;vim中块选择、多文件编辑、多窗口功能(:sp)的使用;vim环境设置,可以根据习惯设置,这样很多操作就会变得很方便;dos与linux的换行符不同,可以用命令将文件格式进行转换:dos2unix [-kn] fiel [newfile]和unix2dos [-kn] file [newfile]使用时不清楚可以man一下。
    第十一章 认识Bash Shell:bash的主要优点:命令记忆功能,命令与文件补全功能,命令别名(alias)设置功能,作业控制(jobs)、前台、后台控制,shell scripts的强大功能,通配符;bash shell的内置命令(man bash):type [-tpa] name;shell的变量功能可以使操作方便很多;变量的获取与设置:echo、变量设置规则、unset:变量设置时变量与内容用"="连接,且要符合某些规定,否则设置会失败,变量设置中,双引号仍然可以保持变量的内容,单引号内只能是一般字符,在一串命令中`符号之内的命令先执行,查看环境变量命令env、set和export,自定义变量不能被子程序引用,但是可以通过export转换成环境变量;支持语系查询命令locale;读取键盘输入的变量用read命令read [-pt] variable;声明变量属性用declare或typeset命令declare [-aixr] variable,与文件系统及程序的限制关系ulinit [-SHacdflmnpstuv] [配额];命令别名设置:alias、unalias;历史命令:history [n/-craw] histfiles;登录消息显示数据:/etc/issue、/etc/motd(man issue和man mingetty查看各代码);环境设置文件:默认的设置文件/etc/sysconfig/i18n、/etc/profile、etc/bashrc、/etc/profile.d/*.sh、
    /etc/man.config,个人设置文件~/.bash_profile、~/.bash_login、~/.profile、~/.bashrc、~/.bash_history、~/.bash_logout;终端环境设置命令stty和set;数据流重导向:标准输入:代码0,使用<或<<;标准输出:代码1,使用>或>>;标准错误输出:代码2,使用2>或2>>;命令执行的判断依据:;(依次执行多个命令用;隔开)、&&(前面的命令执行正确才执行后面的)、||(前面的命令执行错误才执行后面的);管道命令“|”仅能处理通过前面一个命令传来的正确信息,常用的选取命令cut、grep,排序命令sort [-fbMnrtuk] [file or stdin]、wc [-lwm]、uniq [-ic],双向导向tee [-a] file,字符转换命令tr、col、join、paste、expand,拆分命令split [-bl] file prefix,参数代换xargs [-0epn] command,stdin和stdout可以用“-”来代替。
    第十二章 正则表达式:搜索字符grep、[],行首行尾字符^$,正则表达式中“.”代表绝对只有一个任意字符,限定连续重复字符范围{};sed可以分析标准输入的数据然后将数据经过处理后,再将它输出到标准输出,它有替换、删除、新增、选取特定行等处理功能,用法:sed [-nefr] '[动作]';awk与sed相比适合处理小型的数据,运行模式为:awk '条件类型1{动作1} 条件类型2{动作2} ...' filename;文件比较:diff [-bBi] from-file to-file(以行为单位),cmp [-s] file1 file2(以位为单位);文件打印准备pr。
    第十三章 学习shell脚本:什么是shell脚本及其特点;如何编写好的shell脚本;条件判断,循环,追踪调试sh [-nvx] filename。
    第十四章 linux账号与身份管理:linux账号与用户组,用户识别UID与GID,用户账号/etc/passwd,/etc/shadow可以用man 5 passwd和man 5 shadow获得详细信息,用户组/etc/group和/etc/gshadow,更改有效用户组newgrp groupname,离开exit;账号管理:新增用户useradd [-u UID] [-g initial_group] [-G other_group] -[Mm] [-c 说明栏] [-d home] [-s shell] username,设置密码passwd username,账号相关数据调整usermod [-cdegGlsuLU] username,删除用户userdel [-r] username,用户功能chfn [-ls],chsh [-foph],查询finger [-s] username或id [username];添加用户组groupadd [-g gid] [-r] groupname,group相关参数修改groupmod [-g gid] [-n group_name],删除用户组groupdel gruopname,gpasswd [-AMrRad] username,passwd [-lunxwS] username,切换用户身份su [-lcm] [username]、sudo [-u [username|#uid]]command,用户特殊shell、/sbin/nologin与PAM模块/etc/nologin、/etc/securetty验证;linux系统的用户对话与邮件的使用,查询用户w、who、last、lastlog,用户对话talk、mesg、wall、write,用户邮件信箱mail,使用方法mail username[@localhost] -s "邮件标题"[<filename利用数据重导向可以发送文件内容];要了解整个系统最好手动增加用户,但是要真的了解自己在做什么,检查工具pwck、pwconv、pwunconv、chpasswd。
    第十五章 linux磁盘配额:磁盘配额即硬盘空间管理的使用限制,基本磁盘配额命令/etc/mtab、quota、quotacheck、edquota、quotaon、quotaoff。
    第十六章 例行性命令的建立:linux工作任务分配的种类at [-m] TIME(仅进行一次的工作任务分配)atq和atrm可以删除at任务、crontab [-u username] [-l|-e|-r](循环执行的工作)。
    第十七章 程序与资源管理:进程(PID)与程序(pstree查看程序的关联性),常驻内存程序;linux多用户多任务环境;作业管理:直接将命令放到后台执行的&、将当前作业放到后台暂停ctrl+z、观察当前后台作业状态jobs、将后台作业拿到前台处理fg、让作业在后台运行bg、管理后台作业kill/killall;进程的观察ps、top、pstree;系统资源的观察free、uname、uptime、netstat、dmesg、sar;进程执行顺序PRI(new)=PRI(old)+nice,nice、renice;特殊文件与进程:使用find查询系统的SUID/SGID、查询已打开或已执行进程打开的文件fuser、lsof、pidof。
    第十八章 启动关机的流程与加载程序:启动过程:1、加载BIOS的硬件信息,并获取第一个启动设备的代号;2、读取第一个启动设备的MBR的引导加载程序(即lilo、grub、spfdisk)的启动信息;3、加载核心操作系统的核心信息,核心开始解压缩,并且尝试驱动所有硬件设备;4、核心执行init程序并获取运行信息;5、init执行/etc/rc.d/rc.sysinit文件;6、启动核心的外挂模块(/etc/modprobe.conf);7、init执行运行的各个批处理文件(scripts);8、init执行/etc/rc.d/rc.local文件;9、执行/bin/login程序,等待用户登录;10、登录之后开始以shell控制主机。核心与核心模块,建立依赖文件depmod [-Ane],核心模块的观察lsmod、modinfo;核心模块的加载与删除insmod、modprobe、rmmod;grub与lilo引导加
    载程序的功能与意义,设置文件,测试与安装(grub install);一些启动过程问题的解决办法。
    第十九章 源码与Tarball套件管理程序:Tarball的安装、升级及管理,函数库、make、makefile、config;使用patch -pxx(xx表示数字,表示路径去掉几个‘/’)<patch_file;函数库的管理,动态库(如何加载到内存ldconfig与/etc/ld.so.conf)与静态库的区别,查询程序含有的动态库命令ldd [-vdr] filename;检验软件正确性md5sum [-bct] filename。
    第二十章 RPM与SRPM套件管理程序:SRPM包含源码,比RPM多了一个重新编译的操作;RPM安装rpm -ivh packagename,升级与更新rpm -Uvh/-Fvh packagename,查询rpm -q[ailcdrf...] name,验证与数字签名rpm [-Vapf] name,解除安装rpm -e name,重建数据库rpm --rebuilddb;SRPM编译rpmbuild -bb name(编译成RPM文件),打包rpmbuild -ba name(打包成SRPM文件)。
    第二十一章 系统服务守护程序:守护程序就是一个在后台执行的程序,独立启动的守护程序启动方式/etc/init.d/syslog start,启动超级守护程序/etc/init.d/xinetd restart,或者是service [service name] (start|stop|restart|...),TCP_Wrappers 中的两个文件/etc/hosts.allow与/etc/hosts.deny以/etc/hosts.allow优先判断,且第三栏可以扩展(spawan、twist),观察系统启动的服务netstat,设置开机后立即启动服务(或者建立自己的服务)chkconfig、ntsysv。
    第二十二章 认识与分析登录文件(配置文件/etc/syslog.conf):登录文件的记录syslogd,轮替logrotate,安全性设置课增加+a参数的隐藏属性chattr +a name;系统查看命令dmesg、last、lastlog。
    第二十三章 linux备份策略:需要备份那些文件,选择备份设备,备份种类(全部/部分备份),完全备份工具:1、使用cpio:find / -print | cpio -covB > /dev/st0 备份到磁带机,cpio -iduv < /dev/st0 还原;2、使用tar:tar --exclude /proc --exclude /mnt --exclude /tmp >-zcvpf host.tgz /备份,tar -zxvf host.tgz还原;3、使用dd:dd if=/dev/hda cf=/dev/hdb。
    第二十四张 X Window简单设置:什么是x window,是否需要启动及发张历史,启用流程(man xinit、man x):检测startx [x client options] -- [x server options],启动xinit [client options] -- [server or display option],手动修改xorg.conf或XF86Config,获取x版本命令:x -version,x服务器的字体服务器设置文件/etc/X11/xorg.conf(chkfontpath、xmodmap),设置默认的x设置文件Xorg -configure或XFree86 -configure,更新显卡驱动:下载驱动、安装模块、修改主要设置文件;一些常见问题的解决方法。
    第二十五章 linux硬件检测与维护:硬件信息收集lspci [-vvn]、iostat [-cdkt]、查看USB设备fdisk -l,载入mount,创建设备代号mknod,取得温度、电压等信息使用lm_sensors/sensors-detect,setup设置功能,打印机守护程序CUPS与LPRng,CUPS支持的联机模式socket、LPD、IPP、SMB、parallel、Network Printer、USB,启动打印机:下载合适的ppd定义文件、确定CUPS及打印机已启动、开始在CUPS中加入打印机(setup/lpadmin)、开始打印测试(lp/lpr/lpstat/lpq/lprm/cancel)、权限控制(disable/enable/accept/reject)、利用web接口管理CUPS打印机;特殊的文件系统LVM:物理卷(PV)、卷组(VG)、物理扩展(PE)、逻辑卷(LV);制作LVM磁盘的流程:建立PV与PV的查询,相关命令(pvcreate/pvscan/pvdisplay/pvremove/partprobe)、建立VG,相关命令(vgcreate/vgscan/vgdisplay/vgextend/vgreduce/vgchange/vgremove)、建立LV,相关命令(lvcreate/lvscan/lvdisplay/lvextend/lvreduce/lvresize/lvremove)、分区的格式化与载入;加大原有的LVM磁盘resize2fs;额外的存储设备iSCSI协议的磁盘阵列(好处:增加数据访问性能、具有类似备份效果)的架设与使用。
    第二十六章 Linux核心编译与管理:编译核心的原因:新功能需求、原核心太庞大、与硬件搭配稳定性、其他;查看核心版本uname -r;获取最新的核心,利用补丁升级核心源码,核心目录下的子目录信息,编辑核心的生成文件(删除留下的.o文件make mrproper、建立生成文件make menuconfig,make xconfig,make gconfig);设置核心内容与模块(根据主机用途选择);核心的编译与安装,编译流程:make clean、make bzImage、make modules、make modules_install(如果同一个版本的核心被编译两次以上的话,再次编译前先将/lib/modules里的该版核心先移开);设置多重启动系统:移动新核心到/boot中、修改grub设置文件;单一模块编译流程:模块说明与下载、将文件解压缩(tar)、编译与安装(make)、将模块移到核心目录,并更新模块依赖属性;核心模块管理:lsmod、modinfo、modprobe、insmod、rmmod...

  • 相关阅读:
    Atitit sql计划任务与查询优化器统计信息模块
    Atitit  数据库的事件机制触发器与定时任务attilax总结
    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
    Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
    Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
    Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
    Atitit View事件分发机制
    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
    Atitti 存储引擎支持的国内点与特性attilax总结
    Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折
  • 原文地址:https://www.cnblogs.com/276815076/p/1924166.html
Copyright © 2020-2023  润新知