linux第一阶段学习总结

来源:互联网 发布:微商城框架 java 编辑:程序博客网 时间:2024/04/29 10:29
linux系统基础讲解
该总结主要是对我自己所学过的linux进行的梳理,其

中有些部分会偏简单点,一是因为我自己学习也是有

点乱,没有合理的知识结构;二是有很多命令我们平

常用不到,在网络上我们也能搜到
   由于学习的时间久了点,所有前面的部分内容记得

不是很详细。希望大家能够帮忙修改。

1:系统分区

 /   根目录,存放系统命令和用户数据等(如果下

面挂载点没有单独的分区,它们都将在根目录的分区

中) 
/boot    boot loader 的静态链接文件,存放与

Linux启动相关的程序
/home    用户目录,存放普通用户的数据
/tmp    临时文件
/usr    是Red Hat Linux系统存放软件的地方,如有

可能应将最大空间分给它
/usr/local 自已安装程序安装在此
/var    不断变化的数据,服务器的一些服务、日志

放在下面。
/opt    (Option可选的)附加的应用程序软件包

/bin    基本命令执行文件
/dev    设备文件
/etc    主机特定的系统配置
/lib    基本共享库以及内核模块
/media    用于移动介质的挂载点
/mnt    用于临时挂载文件系统或者别的硬件设备(

如光驱、软驱)
/proc    系统信息的虚拟目录(2.4 和 2.6 内核),

这些信息是在内存中,由系统自己产生的。
/root    root 用户的目录
/sbin    基本系统命令执行文件
/sys    系统信息的虚拟目录(2.6 内核)
/srv    系统提供的用于 service 的数据
/usr/X1186         X-Windows目录,存放一些X-

Windows的配置文件
/usr/include      系统头文件,存储一些C语言的头

文件
/usr/src           Linux内核源代码,Linux系统

所安装的内核源代码都保存在此
/usr/bin          对/bin目录的一些补充
/usr/sbin        对/sbin目录的一些补充
/lost+found 这个目录在大多数情况下都是空的。但

是如果你正在工作突然停电,或是没有用正常方式关

机,在你重新启动机器的时候,有些文件就会找不到

应该存放的地方,对于这些文件,系统将他们放在这

个目录下。
/boot: 必须总是物理地包含

/etc、/bin、/sbin、/lib 和 /dev,否则您将不能启

动系统。
/home:每个用户将放置他的私有数据到这个目录的子

目录下。
/tmp: 程序创建的临时数据大都存到这个目录。
/usr:包含所有的用户程序(/usr/bin),库文件

(/usr/lib),文档(/usr/share/doc),等等。
/var:所有的可变数据,如新闻组文章、电子邮件、

网站、数据库、软件包系统的缓存等等,将被放入这

个目录。这个目录的大小取决于您计算机的用途,但

是对大多数人来说,将主要用于软件包系统的管理工

具。如果做服务器的话空间应尽量大。我的服务器的

实际分法及实际使用的大小,还没有实际投入使用。所

以/var目录没有用那么多。一般WEB存放网页的目录是

/var/www,postfix邮件的存放邮件的目录

是:/var/mail,var/log,是系统日志记录分区,

/var/spool:存放一些邮件、新闻、打印队列等。
/opt:存放可选的安装的软件。

对于挂载的看法:
     Linux就是把所有的一切都放到一颗“树”下。

如果你有另外的分区或者硬盘,它们就会被“挂载”

到枝干的子目录中,像是/media或/mnt。这个子目录

就是所谓的挂载点了。?这个方法跟Linux的“树”概

念更好地融合在一起。你可以把分区挂载到任意的子

目录中。Windows就不是这么简单了,一个新的分区就

是另外的一个盘。
 

上面介绍了几个挂载点,一般来说我们最少需要两个

分区(当然只要一个 / 分区也可以),需要一个SWAP分

区,和一个“/”分区,但把一些常用、重要的挂载点

分到其它分区,这样便于管理。一般一个/分区,一个

/usr分区,一个/home 分区,一个/var/log分区。当

然这没有什么规定,完全是依照需要来定的。我们可

以使用Red Hat Linux提供的硬盘管理工具Disk Druid

来完成分区和挂载点设置。

对照上图和目录简介,可以把Linux系统的挂载点想象

成一棵大树
/ 为大树的树根
/ 衍生的其他挂载点为这颗大树的树枝
一般的Linux系统分区是这样的:?
??12-20?GB?给系统

的分区,挂载为/(叫做根分区)???
   一个比较小的分区用来扩大内存,挂载为swap?

??一个比较大的用来存储个人数据的分区,挂载

为/home
    我对根分区的认识:
     所谓根分区,说白了就是系统分区,所有的东西

都放在这里面。

    Linux是一个树形文件系统,根分区就是它的root

节点,任何的目录文件都会挂在根节点以下。Linux只

有一个根。你可以给你的硬盘进行分区,但是,分区

设备一定挂载到linux根目录下的指定位置,

如/usr,/var,/home等。如果要对分区进行操作的话,

只能到分区所挂载的目录中进行操作。所以,不管对

硬盘分多少个区,都要将这些分区挂载到根目录底下

才可以使用。


我对swap部分理解:
   当物理内存不足以支撑系统和应用程序(进程)的

运作时,这个 swap 空间可以用作临时存放使用率不

高的内存分页,把腾出的内存交给急需的应用程序(

进程)使用。再有,即使你的机器拥有足够多的物理

内存,也有一些程序会在它们初始化时残留的极少再

用到的内存分页内容转移到 swap 空间,以此让出物

理内存空间。对于有发生内存泄漏几率的应用程序(

进程),swap 空间更是重要,因为谁也不想看到由于

物理内存不足导致系统崩溃。
    RAM和ROM之间的关系,ram随着断电而丢失数据,

rom(硬盘)则不会,所以我们电脑上的软件在关机前

仍启动中,但是电脑断电关机,重新启动后该软件需

要重新启动,启动后歌曲停止播放(有的软件会回归

到主页面,需要重新选定播放歌曲),我的理解是,

在ram启动中运行过程产生的数据随着断电数据丢失,

而软件在硬盘中的数据并没丢失,所以我们开启软件

时,ram跟原先关机前无关,调用的也是rom中的内存


    由这个我自己想了想,可以理解swap区的作用:

当系统的物理内存不够用的时候,就需要将物理内存

中的一部分空间释放出来,以供当前运行的程序使用

。那些被释 放的空间可能来自一些很长时间没有什么

操作的程序,这些被释放的空间被临时保存到Swap空

间中,等到那些程序要运行时,再从Swap中恢复保存

的数据到 内存中。这样,系统总是在物理内存不够时

,才进行Swap交换
    Swap空间是“匿名”数据的交换空间。例如

malloc和new函数生成的对象的数据它们 需要Swap空

间,因为它们在文件系统中没有相应的“储备”文件

,因此被称作“ 匿名”(Anonymous)内存数据


个人认为经常接触到的命令
     2.
   (1)查看命令.ls 选项 [文件或者目录]
       选择项:-a 显示所有包含隐藏文件
        -l详细信息显示
        -d查看目录属性
(2).创建目录命令
    mkdir 选项 目录名
     选项  -p  递归创建目录
(3).切换到某目录下
    cd  路径(即目录)
    cd  ..返回到上一级目录
(4).rmdir删除空目录(该目录下不能含有文件)
(5).复制文件或者目录
    cp  选项 /某路径/文件1  /某路径
    选项:-r复制目录
      -p保留文件属性
(6).剪切文件或者目录
  mv  /tmp/meinv   /root
(7).删除文件或目录
  rm  选项 删除的文件名
   选项:-r 删除目录
      -f强制执行
(8).touch创建文件
    

    3.权限管理命令
(1).改变文件或者目录权限
   chmod [ugoa] {-+=} {rwx} [文件或目录]
[mode-421] [文件或目录] [-r] 递归修改
    rxw分别具有的权限:
    r=1:查看文件或目录权限
    w=2:修改,删除文件或者目录的权限
    x=4:进入或者执行文件的权限
(r-x一般不分离,甚至有些命令执行前必须存在x权

限,否则命令无法执行)
ugoa在linux权限中代表啥?


(2).改变文件或者目录的所有者
  chown  [用户名]  [文件或目录]
   例如:把root对/tmp/dianying具有的权限赋予[普

通用户1]
    4.搜索命令
(1).文件搜索命令find
   find 路径  -name 文件名(此时的文件名是精确

查找,模糊查找有*文件名*,文件名的左右两边都有

可能出现字符;文件名???右边位置有三个字符,-

iname表示不区分大小写)
   
   (2).find  路径 -size 文件名(搜索指定大小的

文件)
  (3).find 路径  -size  +163840 -a -size -

2014510
注意:若只需要查找文件大小,那么不需要写出"文件

名"
-a   两边条件同时满足
-o  两条件满足任意一个即可

   (4).find /etc  -name init -exec ls -l {}\;
    查找init文件并显示详细信息
    -exec/-ok命令{}\表示对搜查结果进行操作
    -type根据类型文件查找
    -inum根据第i节点查找
 (5).搜索文件或者目录名,但是locate搜索属于模糊

搜索
   locate 文件名
5.帮助命令
   (1).man [命令或者配置文件](info具有类似功能)
     (2).help[命令]
     有时候man显示的命令,帮助信息是一对文档,

此时可用此命令求帮助
(3).whatis 命令(获取命令的简短信息)
    whereis 命令或者文件(可用于查找自己忘记命令

或文件的路径)
     

    5.网络命令
(1).write 用户名
   (给用户发信息,以ctr+D保存并结束)
   
   当我们接受信息可以使用:
         mesg拒绝或者接受信息
     接受的命令是mesg is y
     拒绝的命令是mesg is n
(2).指令wall
     wall [message]
    作用:发送广播信息,相当于我们qq里面的群发
(3).指令ping
    ping  选项   IP地址
   选项:指定发送次数
   (不过ping的作用,我们通常用作测试网络连通性

,如果要退出的话以ctr+f快捷键)
(4).指令ifconfig
    ifconfig  网卡名称  IP地址
    网卡名称(例如eth0,eth1等)
    (查看和设置网卡信息)
(5).指令mail
    mail 用户名
    查看发送电子服务
    
    (mail接收邮件,help查看信息
      &h 查看先前邮件
      &d  数字n  删除第一份邮件
      )
(6).指令last
    (列出目前与过去登入系统的用户信息
      
     lastlog  -u  用户户名地址UID
      lastlog显示所有用户有无登入的信息,显示某

段用户上次登入时间)

(7).traceroute
   显示数据报到主机间的的路径
(8).指令netstat
netstat [选项]
  选项:
        -t   TCP协议
    -u    UDP协议
    -l  监听
    -r   路由
    -n   显示IP地址和端口号
其中我们常用的选项:
-tlun查看本机监听的端口
-an  查看本机所有的网络服务
-rn查看本机路由表

(9).指令setup
    (配置网络)
(10).挂载命令mount
mount [-t 文件系统] 设备文件名  挂载点
例如:mount -t iso9660  /dev/sr0/mnt/cdrom

    卸载挂载点:umount
(11)判断网络命令是否连接成功的操作过程
   ifconfig eth0 IP地址
    ifconfig(确认是否出现eth0这一网卡名称)
    window下的cmd中我们可以用ping  IP地址
    看看网络设置是否正确



    6.压缩,解压缩命令
(1).gzip 文件名(压缩)
    gunzip 文件名(解压)
(2).(.tar)打包命令
    tar 选项 [-zcf] [压缩后文件名] [目录]
选项:-c  打包
      -v显示详细信息
      -f指定文件名
     -z打包同时压缩
     例如:tar -zcf oneday.tar.gz holiday(压缩

目录)

    tar解压命令
    选项:-x  解压包
     -v显示详细信息   -f指定解压文件名
     -z解压缩
例如:tar -zcfv  oneday.tar.gz
(3).bzip 选项[-k] [文件名]
    -k:产生压缩文件后保留源文件
    
    bzip解压缩命令是bunzip2,同tar的解压命令使

用法一样

    7文本编辑器vim
(1).进入Vim命令模式
    vim 文件名
(2).退出vim命令,
   当处于命令模式时(:wq保存且退出   :q不保存退

出     :w保存   :q!强制退出    :wq!强制保存退

出   )
    
    当处于插入模式时,我们需要先退出插入模式才

可以进行退出(先命令Esc,接着按命令模式下操作)
(3).在命令模式下,我们可以用delete对字符串进行

删除
(4).(:set number 给每行一个行)
(:set nonumber  取消行号)
(5).删除指定范围:输入指令(:800,900d)
(6).指令u(取消上一步的操作)
(7).利用新字符串替换旧字符串,旧字符串shenchao
新字符串yangshu
    (:41,44s/yangshu/shenchao/c)
(8).阅读文档
    more 文件名
(9).gh选定区域后,string替代该区域
(10).导入命令执行结果(:r !命令)
     (:map  ^P  i#<Esc>进入插入模式后,在光标指

定的位置,插入#符号)
范例:输入命令时没必要把中括号[]输入
   :n1,n2[s]/^/#/g
    :n1,n2[s]/^#//g
    :n1,n2[s]/^/\/\/g
(11).(:r /etc/shadow  自动把文件内容写入到该文

档中)
       (:!date 把现在的时间导入到该文档中,插

入位置为光标所在位置)

(12).vim配置文件/root/.vimrc仅root用户可以查看

和修改
    范例:
         输入(ab mymail www.baidu.com)
       以后使用命令直接(:!ab)就会输出

www.baidu.com
   
    8.rpm命令
先阅读该部分再看下面内容:
        {
软件包的组成部分:
二进制程序:/bin, /sbin, /usr/bin, /usr/sbin,

/usr/local/bin, /usr/local/sbin

库文件:/lib, /usr/lib, /usr/local/lib

配置文件:/etc

帮助文件:手册, README, INSTALL

(/usr/share/doc/)

RPM: RPM is Package Manager

源程序:name-version.tar.{gz|bz2|xz}

版本号:major.minor.release

bash-4.3.1.tar.xz

包名-主版本号-次版本号-发行号

        }
(1).源码包--->脚本安装包(是对源码包的二次开发

,大部分都是用c和c++,其中linux等操作系统大部分

使用c开发)
(2).二进制包(rpm包-->利用RPM命令管理,系统默认

包)
(3).软件的安装
     rpm -ivh 包全名称
     选项:-i 安装
     -v 显示详细信息
    -h显示安装进度(按照百分比显示)
     --nodeps不检测依赖性(不建议使用)
     --replacepkgs  重新安装
(安装过linux软件的各位都知道,rpm安装包都有依

赖性,举例:
     a是主包,b,c都是次包<可能理解不对请见谅

>,a->b->c,这三个包都得安装顺序安装,不然就无法

安装成功;还有一种情况是全部都得一起安装)
(3).rpm  -pi 包名
    选项:-p  查询未安装包的信息;   -i查询软件

信息
(4).rpm -qa 查询所有安装包
     选项: -q  查询
(5).rpm  -qr 系统文件名
   选项 -f 查询系统文件属于哪个软件包
(6).rpm -pR  包名
   选项:
    -R查询软件包的依赖性  
(7).rpm包校验
rpm -v 已安装的报名
(8).rpm包中文件提取  |\
A:cpio-idv文件绝对路径
B:rpm2cpio将rpm包转换为cpio格式的命令
C:cpio是一个标准工具,它用于创建软件归档按文件

和从档案文件中提取文件
(9).cpio 选项  <[文件|设备]>
选项 : -i  copy-in模式还原
-d   还原时自动新建目录
-v   现实还原过程
(10).卸载:rpm -e 包名
     注意:卸载过程中得注意包之间的依赖关系
warning: /etc/sysconfig/named saved as

/etc/sysconfig/named.rpmsave(删除时保留副本)
    
9.yum在线管理
(1).安装软件
yum  -y install 包名
-y是自动回答yes,即自动替用户安装所有的rpm包,

不用自己动手一个一个安装rpm包

yum search 包名:网上查询包名
(2).yum -y update 包名
    自动更新软件包(注意包名不可省略,要不然系

统中的所有软件都会升级导致整个系统会出现问题不

能打开)
(3).yum -y remove 包名
    卸载软件
(4).yum groupinstall   软件组名
    安装指定软件组,组名可由grouplist查询出来
(5).yum groupremove 软件组名
    卸载指定软件组名
    

0 0
原创粉丝点击