《鸟哥的Linux私房菜》学习笔记(0)——磁盘与

系统 1760 0

一、Linux的登陆流程                                              

login:

  用户名:每个用户名都有一个用户ID(用户标识符),计算机处理的就是用户ID(数字)而不是用户名(字符),。

  认证机制:Authentication,比如密码或者其他生物识别技术

  授权:Authorization,资源访问的权限授权。但是授权不代表权限可以滥用,因此需要审计。

  审计:Audition(通过日志)。

  登陆成功后,进入prompt,命令提示符界面,因此需要输入命令来执行程序。这些命令既可以是二进制程序也可以是脚本文件。对于内核而言,严格区分两者不同。一般情况,一个可执行程序文件,必须有程序的执行入口。一般这个二进制文件开始处,有几个特殊字符,我们称为程序的magic number(魔数)。

二、命令                                                              

1、命令格式

  command  options arguments

  选项是用来修改命令的执行特性,它有两种格式:短选项和长选项。其中,短选项可以合并。而且,有些选项是可以带参数的。  

  参数指定命令的作用对象。

2、命令类型

  内置命令(shell内置):bash内部的基本实现管理功能的命令,不同的shell内置不同的命令,一般都有cd 等。

  外部命令:在文件系统的某个路径下有一个与命令名称相对应的可执行文件,比如ls,su等。虽然执行命令都应该指定其所在路径,但是由于环境变量的存在,所以不必指定其路径,直接去PATH中查找路径下,是否拥有该条命令,因此直接使用ls su就可以了。当然,如果执行一条命令就去查找环境变量,会特别慢,因此第一次查找后,会在内存的缓存中保存该命令和其路径,使用hash命令可以查看,hash保存的键值对,查找时间复杂度O(1)。

  可以用type来显示指定命令属于哪种类型。

      
        
          hao@hao:~$
        
      
      
        which
      
      
        ls
      
      

/bin/
      
        ls
      
      
        
           hao@hao:~$
        
      
      
        which
      
      
        su
      
      

/bin/
      
        su
      
      
        
           hao@hao:~$
        
      
      
        which
      
       cd
    

   这里的3,1,1表示命中的次数

      
        
          hao@hao:~
        
      
      
        
          
            $
          
        
        
          hash 
        
      
      ?戒腑    ?
      
        戒护

   
      
      
        3
      
          /usr/bin/
      
        which
      
      
        1
      
          /usr/bin/
      
        sudo
      
      
        1
      
          /usr/bin/printenv
    

 

3、常用命令:

ls: 显示文件目录及属性(在文件及目录专门讲)

 pwd: 显示当前目录

      
        
          root@hao:/home/hao#
        
      
      
        pwd
      
      

/home/hao
    

cd: change directory切换目录。家目录(Home Directory),也叫主目录,

    cd ,不加参数可以直接回到家目录,家目录用~表示.

    cd ~ username,可以直接回到某个用户的家目录。

    cd - 在当前目录和前一次所在目录来回切换

      
        
          root@hao:/home/hao# 
        
      
      
        ls
      
       /
      
        

bin   cdrom  etc   initrd.img  lost
      
      +
      
        found  mnt  proc  run   selinux  sys  usr  vmlinuz

boot  dev    home  lib         media       opt  root  sbin  srv      tmp  var
        
root@hao:
/home/hao# cd / usr root@hao : /usr#

root@hao: /home/hao# cd /usr
root@hao: /usr# cd
root@hao: ~# pwd
/root
      
        
          root@hao:~#
        
      
      
        cd
      
       ~
      
        hao


        
          
            root@hao:/home/hao#
          
        
      
    

    date: 显示当前时间

4、环境变量

  环境变量是命名的内存空间,变量声明的过程就是向内存请求空间的过程,向内存空间放置数据的过程叫做赋值。

      
        
          hao@hao:~
        
      
      
        
          
            $
          
        
        
          printenv
        
        

SHELL
      
      =/bin/
      
        bash

TERM
      
      =
      
        xterm

XDG_SESSION_COOKIE
      
      =42b11f1fd75eaec16fec907e00000020-
      
        1413373884.792806
      
      -
      
        1786291659
      
      
        

HUSHLOGIN
      
      =
      
        FALSE

USER
      
      =
      
        hao

LS_COLORS
      
      =rs=
      
        0
      
      :di=
      
        01
      
      ;
      
        34
      
      :
      
        ln
      
      =
      
        01
      
      ;
      
        36
      
      :mh=
      
        00
      
      :pi=
      
        40
      
      ;
      
        33
      
      :so=
      
        01
      
      
        ;

。。。

MAIL
      
      =/var/mail/
      
        hao

PATH
      
      =/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/
      
        games

PWD
      
      =/home/
      
        hao

LANG
      
      =
      
        en_US

SHLVL
      
      =
      
        1
      
      
        

HOME
      
      =/home/
      
        hao

LANGUAGE
      
      =
      
        zh_CN:zh

LOGNAME
      
      =
      
        hao

LESSOPEN
      
      =| /usr/bin/lesspipe %
      
        s

LESSCLOSE
      
      =/usr/bin/lesspipe %s %
      
        s

_
      
      =/usr/bin/printenv
    

5、使用帮助

  对于内部命令,可以使用help command

  对于外部命令,可以使用command --help 获取简要帮助信息。

  当然无论内部还是外部命令,可以通过man命令查看命令使用手册,比如man ls,可以打开命令使用手册。对于内部命令,不是man的内部命令,而是man的这个内部命令所属的shell,如man cd,会显示bashell的,因此内部命令很少使用man命令。

  man:分章节,8个章节。默认显示第一个出现的章节(不一定是第一章),可以通过whatis command 来查看命令出现的章节。

      
        
          hao@hao:~$
        
      
       whatis 
      
        ls
      
      
        

whatis: can
      
      
        '
      
      
        t set the locale; make sure $LC_* and $LANG are correct
      
      
        ls
      
       (
      
        1
      
      )               - list directory contents
    
        
          
            root@hao:~
          
        
        
          
            
              #
            
          
          
            whatis
          
           read

read (
        
        
          2
        
        )             - read from a 
        
          file
        
         descriptor
      

 

  1:用户命令 (/bin,/usr/bin,usr/local/bin)2:系统调用 3:库调用  4:设备文件 5:文件格式(解释被指文件的语法) 6:游戏 7:杂项

  8:管理命令(/sbin,/usr/sbin,/usr/local/sbin)

      DATE(
      
        1
      
      )                                              User Commands                                              DATE(
      
        1
      
      
        )



NAME

       
      
      
        date
      
       - print or set the system 
      
        date
      
       and 
      
        time
      
      
        



SYNOPSIS

       
      
      
        date
      
       [OPTION]... [+
      
        FORMAT]

       
      
      
        date
      
       [-u|--utc|--
      
        universal] [MMDDhhmm[[CC]YY][.ss]]



DESCRIPTION

       Display the current 
      
      
        time
      
      
        in
      
       the given FORMAT, or set the system 
      
        date
      
      
        .



       
      
      -d, --
      
        date
      
      =
      
        STRING

              display 
      
      
        time
      
       described by STRING, not `now
      
        '


      
      

       -f, --
      
        file
      
      =
      
        DATEFILE

              like 
      
      --
      
        date
      
       once 
      
        for
      
      
         each line of DATEFILE

...

    
      
    

  如/etc/passwd文件保存的是用户的情况,man 5 passwd 便可以看该文件的语法。

      root@hao:~# 
      
        cat
      
       /etc/
      
        passwd
      
      
        

root:x:
      
      
        0
      
      :
      
        0
      
      :root:/root:/bin/
      
        bash

daemon:x:
      
      
        1
      
      :
      
        1
      
      :daemon:/usr/sbin:/bin/
      
        sh
      
      
        

bin:x:
      
      
        2
      
      :
      
        2
      
      :bin:/bin:/bin/
      
        sh
      
      
        
...
root@hao: ~# man 5 passwd

   

《鸟哥的Linux私房菜》学习笔记(0)——磁盘与文件系统管理


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论