现在的位置: 首页 > 综合 > 正文

Linux系统学习

2017年08月15日 ⁄ 综合 ⁄ 共 3992字 ⁄ 字号 评论关闭

1 历史

       Linux:Linux Is Not Unix

       Unix:是Linux的前身,因为收费,只有在公司和学校才能用到,一位高手在学校用到以后觉得非常好就写了一个Linux。

       Linux核心:基于内核的操作系统,Linux兄弟只写内核(管理硬件的程序)

       Linux发行版本:debian,slackware,suse,红旗,turbolinux,redhat,fedora,mandrake(依赖于内核的工具),在linux内核上写了外围的依赖程序,根据依赖程序又写了许多许多管理硬件工具

       Linux版本:r.x.y,r:release version,x:偶数,稳定版本,奇数,开发中的版本,y:错误修补的次数 eg:2.0.38

       

2 分区

       VFS:虚拟文件系统,所有文件系统统一的接口,可以根据接口编程(多态)

       分区表:如图,记录了分区的信息,一般位于对应分区的开始,最多只能记录四条记录,所以主分区加扩展分区最多不能超过四个(一般用来装系统),下面那张表记录了逻辑分区(不同的文件系统)

       格式化:建立不同的文件系统,就是对应数据不同的存储规格。

       为什么要分区:可以在同一块硬盘上装各种各样的文件系统,各种各样的小格,不同的文件系统的拥有不同的小格。更加容易管理

       windows:c:(主分区),d:(扩展分区/逻辑分区),e:(扩展分区/逻辑分区)

       linux分区的命名:所有的设备在Linux看来都是文件,分为字符设备(如键盘)和块设备(如硬盘)

            --/dev/xxyN,/dev/:所有设备文件所在的目录名,xx:分区名的前两个字母标明分区所在的设备的类型。通常是hd(IDE磁盘)或sd(SCSI磁盘)。y:这个字母标明分区所在的设备,代表第几个硬盘。N:代表分区,前四个分区(主分区和逻辑分区)是从1到4,逻辑分区从5开始。例如:/dev/hda3:第一个IDE硬盘上的第三个主分区或逻辑分区,/dev/sdb6:在第二个SCSI硬盘上的第二个逻辑分区。

       访问分区:通过挂载(mount)实现,挂载是将分区关联到某一目录的过程。挂载分区使起始于这个指定目录(称为挂载点)的贮存能够被使用。如:mount  /dev/cdrom  /mnt/cdr

       至少两个分区:/分区,SWAP分区:把硬盘当内存使用(虚拟内存),实际物理内存的两倍

3 目录结构:google

4 linux启动过程(boot sequence)

        load bios(hardware information)

        read MBR‘s config to find out the OS:根据MBR的配置找到启动哪个操作系统

        load the kernel of the OS:这个操作系统启动的核心文件

        init process starts:init进程启动

        execute /etc/rc.d/sysinit:运行命令

        start other modules (etc/modules.conf):read读取系统各种模块

        execute the run level scripts:,启动级别,启动到哪个层次,分层结构,分为6层,每层之间互不影响,可以修改(/etc/inittab)

        execute /etc/rc.d/rc.local:执行脚本

        execute /bin/login

        shell started..

5 linux帮助

        命令 --help

        man 命令

6 command(常用)

       ls:列出当前目录下的文件和目录,ls -l:显示详细信息,ls -R:树状递归显示目录下的所有文件和目录下的目录

       tree:树状显示

       cd:进入目录,cd ..返回上层路径

       pwd:当前路径

       mkdir:建目录

       rmdir:删除空目录

       rm -rf:递归强制删除目录或文件,强制删除不跳出确认信息

       touch:创建文件

       cp:复制,cp -r:递归拷贝目录

       mv:移动,改名

       vi:文本编辑器(跨平台,远程),vi 文件名(创建或编辑文件)

           一进去为命令模式:只能敲命令

              a:追加

          切换为命令模式:esc

              :w 存盘,:q 退出

       more:查看文件内容

       cat:查看文件内容

       tac:逆序查看文件内容

       head:查看文件,head -3:查看文件前三行

       tail:查看文件,tail -3:列出最后三行

       clear:清屏

       find:查找文件在什么位置上,find / -name my*

       grep(常用):grep 字符串 文件名,查找对应字符串在文本文件的哪一行

       whereis:查看命令是由谁执行的以及命令的文档

       echo:echo $环境变量名:查看对应的环境变量的值

       ln:链接,两个文件保持同步,与copy不同。ln -s:软链接,相当于windows的快捷方式

       source : 刷新文件,配置了path以后需要对其刷新使其立即生效:source .profile

       useradd:增加用户,在/home增加对应文件夹,默认和用户名相同的组,-g 组名

       usermod:修改用户名,-g:修改组名

       userdel:删除用户

       su 用户名:切换用户

       passwd:指定用户密码

       more /etc/passwd:所有的用户

       more /etc/group:组的信息

       ls -l:显示详细信息(详解):

            第一位:分为-:文件,l:链接,d:目录

            第二位到第四位:文件/目录的所有者,拥有者的权限

            第五位到第七位:文件/目录所有者同组的其他人的权限

            第八位到第十位:剩下的人的权限

        chmod:修改权限,chmod u+x 文件名:修改当前用户的权限,chmod  g+x 文件名:修改同组权限,chmod 777:高级操作,第一个7代表用户权限,第二个7为同组权限,第三个7为剩下人权限,把7对应的二进制来表示读写执行(1为有,0为没有)如:7:111,5:101

        chown:修改所有者,chown 所有者 文件名

        wc:统计指定文本文件的行数,字数,字符数wordcount

        col:过滤控制字符

        

       管道:将一个命令的输出传送给另一个命令,作为另一个命令的输入,命令1|命令2|...命令n

           ls -Rl /etc | more

           cat /etc/passwd | wc

           cat /etc/passwd | grep lrj

           dmesg | grep eht0

           man bash | col -b > bash .txt

           ls -l | grep "^d":之列出目录

           ls -l * | grep "^-" | wc -l:当前目录下有多少文件

           wall:wall ’命令‘ ,将命令执行的结果发送给每个登录到shell上来的人

           命令替换:将’命令‘替换为命令

     

           重定向:将命令输出写入文件,或将文件读取输入命令

               输出:ls > cmd.txt , ls >> cmd.txt ,>代表替换,>>代表追加

               输入:wall < aa.txt

            export:当linux下设定环境变量之后想让其他人使用则需要使用该命令,如:export PATH=/home/yyz/Applications/adt-bundle-linux-x86_64-20130917/sdk/tools:$P
ATH

            ps:观察下面有哪些进程,ps -ef:当前用户下的所有的进程,ps -ef | grep 进程名

            kill:杀进程,kill -9 进程名,强制杀进程

            service:服务管理,service 服务名 start:启动服务。service 服务名 stop:关闭服务,常用:service iptables stop,关防火墙

           

            wget  网址:本地连接网站(其中一个功能),测试

7 系统启动调用

            /etc/profile:只要当第一个人登录才起作用,设置系统级的环境变量,系统总的环境变量
            /etc/bashrc:只有当第一个用户登录进来后才运行,设置自动执行的程序,系统总的自动启动程序
            ~/.bash_profile:每个用户登录进来后设置环境变量,每个用户各自的环境变量
            ~/.bashrc:每个用户登录进来后设置自动启动程序,每个用户各自的自动启动程序
           开机自动运行:修改/etc/rc.local  配置方式和上面相同,如:
          JAVA_HOME=/...
          export JAVA_HOME
          /tomcat/bin/startup.sh

          注意:每个linux发行版都不一样,如ubuntu:想知道细节的话可以参看/etc/gdm/Xsession脚本,里面定义了source bash profile文件的顺序。先是/etc/profile,然后是~/.profile,再由/etc/profile触发全局bashrc:/etc/bash.bashrc,由~/.profile触发本地bashrc:~/.bashrc。

8 搭建部署环境   

          必须使用纯命令行操作,因为server使用纯命令行 

           服务自启动:chkconfig命令的使用 (启动级别和防火墙的设置(iptables))

        

【上篇】
【下篇】

抱歉!评论已关闭.