zoukankan      html  css  js  c++  java
  • 《鸟哥的Linux私房菜》学习笔记(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

       

  • 相关阅读:
    javascript中的几点说明
    repeater 绑定数组
    SQL语句之按in排序
    固定VS2005端口号
    关于asp.net中动态获取LinkButton的Text值的问题
    ASP.NET 2.0中直接得到本页面生成的HTML代码
    实现数据库的备份与还原的功能
    使用ASP.NET 2.0提供的WebResource管理内嵌资源(c#)
    [IIS]由于无法创建应用程序域,因此未能执行请求解决方案汇总
    VS2005中引用Microsoft Office COM组件
  • 原文地址:https://www.cnblogs.com/mingcaoyouxin/p/4027319.html
Copyright © 2011-2022 走看看