首页 > 代码库 > 04 Linux操作系统及常用命令

04 Linux操作系统及常用命令

一、操作系统


shell:


GUI: Graphic User Interface 图形用户界面 

  Windows

  X-Window:

    Gnome

     KDE

    Xfce


CLI:Command Line Interface

  sh 

  bash  

  csh

  ksh

  zsh

  tcsh


两大雷锋实验室:

  贝尔实验室

  施乐公司的PARC实验室:以太网,鼠标,图形用户界面


库文件:


  1. .dll : dynamic link library,  windows 下的 动态链接库。

  2. .so: shared object ,共享对象,dso, Linux 下的库


二、Linux


登录界面


A创建的文件不希望被B访问到,就需要在文件上附加权限。

权限:访问资源的能力的设定


计算机所能处理的最快的资源不是字符,而是数字。


login:

  用户名:用户ID,用户名是公开的,用户名不能用来作为限定用户是否可以访问资源的认证标识


认证机制:Authentication 鉴别用户就是他所声称的那个人的机制  ,密码


授权:Authorization


审计:Audition 通过日志来完成


prompt: 命令提示符

命令:

   二进制程序

   脚本文件

magic number: 程序的魔数

shebang


#!/bin/bash


# command options... arguments...


选项: 修改命令的执行特性

  短选项

  长选项


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



文件夹:

目录: 路径映射,也是文件


路径:从指定起始点到目的地所经过位置,


文件系统: file system 实现层次化文件管理的一种机制。


列出指定路径下的所有目录或者文件


技术分享


可以分叉的节点称为目录

不能分叉的节点称为文件


绝对路径: 从根开始查找的机制

相对路径: 相对于当前所处位置查找

  

任何时候,当你登录系统之后,在某个时刻,一定处于某个目录上,这个目录称为当前目录,或工作目录 working directory, current directory 


Linux 上一定有的一级子目录:FHS 文件系统层级结构标准

  


三、Linux 命令


1. ls

  

list: ls  列出,列表

  

ls:

 列出指定路径下的文件 , 目录也是文件。

 直接回车,不跟任何参数,也没有任何选项 ,默认,缺省,显示当前目录


pwd: Printing Working Directory


最顶级路径用 / ,各路径之间的分隔符也使用 / ,windows 中使用反斜线 \


ls /root


蓝色:目录

绿色:有执行权限


ls

 -l : long 长格式

   十位: 最左侧: 

        文件类型:

            -: 普通文件 (f)

            d: 目录文件 

            b: 块设备文件 (block)

            c: 字符设备文件 (character)

            l: 符号连接文件 (symbolic link file) 软链接文件

            p: 命名管道文件 (pipe)

            s: 套接字文件 (socket)

         文件权限:后九位:文件的权限 mod ,每三位一组,每一组 r 读, w 写, x 执行,

                如果没有对应的权限,用 - 表示

         文件硬链接的次数:

         文件的属主:拥有者 owner

        文件的属组:group

         文件大小:默认单位 字节

         时间戳:最近一次被修改的时间。

         每个文件都有三个时间戳,timestamp,

            最近一次被访问的时间,access

            最近一次被修改的时间,modify 文件内容

            最近一次被改变的时间. change 文件的属性数据,也叫元数据 metadata 

         文件名 

         

 -h :单位转换 eg: ls -lh 

   human readable  

 -a : all 隐藏文件用 .开头   

   .  当前目录

   ..  父目录, 当前目录的上一级目录       

 -A : 隐藏文件,不包括 . 和 ..

 -d : 显示目录自身属性   eg: ls -ld /root

 -i : 显示 index node 简写为 inode 文件的索引节点号

 -r: 逆序显示

 -R: 递归(recursive)显示     


2. cd 


cd: change directory 切换目录

   home directory: 不加任何参数:回到用户的主目录,家目录

            在 bash 下,每个用户的家目录使用 ~ 表示  ,cd ~

   cd ~ USERNAME: 管理员 cd + ~ + 用户名 ,到指定用户的家目录去

   cd - : 在前一个目录和当前目录来回切换


3.type


Linux 命令类型

  内置命令:shell 内置

  外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件


环境变量:用于定义当前用户的工作环境的,指定工作环境属性的


  变量:是命名的内存空间

  变量赋值:向起了名字的内存空间里放数据


 堆:heap 

    其他申请保存数据的地方,不是变量,但需要保存数据

    比如打开一个文件,这个文件要打开,需要申请一段内存空间。

    这个文件要被程序打开,必须申请内存


  栈: stack

    本地声明的一些变量和静态变量



type: 用于显示指定命令属于哪种类型


4. clear 清屏


5. printenv 显示环境变量


  HOSTNAME: 主机名

  TERM: 终端类型

  SHELL: 使用的shell程序

  PATH:    

    PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

   使用 : 分割的一堆路径,

   当执行命令的时候,会按次序从path指定的路径中去查找命令,找到为止

   第一次找,然后在内存中缓存。


  

  一个命令要想执行,不带路径,就必须是 PATH 指定路径下的命令,如果不是,无法执行。


6.hash 


  缓存的命令  (命中的次数,命令路径)

    hitscommand

       1/usr/bin/printenv

      21/bin/ls

       4/usr/bin/clear


  缓存为王 cache is king 


  hash 哈希,键值对,key value 数据库

  在键值库中查找数据的速度是 O(1)


   

  big O: 大 O 标识,

  衡量一个程序执行速度的一种标准

  从一个列表中查找一个数据的速度随着列表的长度的变化而变化的函数比例,或趋势


  O(1) :无论队列有多长,从中找一个数据的时间一样,

       从一个中找和从一万个中找,时间一样

  

  哈希是单一比较的,是有索引的,比从文件系统中找要快很多。


7. date


  - 显示当期系统时间

  - 修改时间


Linux 的时间实现机制


  电脑关机了,下次开机,时间显示还是正确的

  主板上有个纽扣电池

  rtc: real time clock 

  ntp: network time protocol 网络时间协议 


Linux 在开机的时候,会通过 rtc 读取时间,一旦读取成功了,就不再使用这个时间了。操作系统自身,会通过软件的方式,模拟振荡器,在系统内部维持一个时间。


  - 硬件时钟

  - 系统时钟


date 命令看到的是 系统时间,想看硬件时间,使用 clock 或 hwclock 命令  ,hardware clock


hwclock -w : 修改硬件时间,将系统时间同步到硬件时间去

hwclock -s : 修改系统时间,将硬件时间同步到系统时间去



8. man 


获得命令的使用帮助:


  - 内部命令

    help COMMAND 

   COMMAND -h


 - 外部命令

   COMMAND --help



命令手册: manual  内部命令,外部命令通用 ,按 q 退出

  man COMMAND


whatis COMMAN : 显示命令的摘要信息,及出现在哪个章节中


man 有章节,一般有8个章节


 1:  用户命令 (/bin, /usr/bin, /usr/local/bin)-- 用户、管理员都可以使用

 2:  系统调用

     man read

     man 2 read : 显示第2个章节中的内容

     export LANG=en

     man mount:  如果不指定章节,则命令第一次出现在第几个章节中,就显示几

             不是所有命令在第一个章节中都有

 3: 库调用  

 4: 特殊文件: (设备文件) 是比较独特的文件,在磁盘上数据区域内没有任何内容, 只是作为设备            的访问入口存在,不是一个真正的文件

 5: 文件格式 (配置文件的语法)

 6: 游戏   

 7: 杂项 Miscellaneous 

 8: 管理命令 :(/sbin, /usr/sbin, /usr/local/sbin) -- 只有管理员可以使用

        可以修改硬件参数,修改硬件工作特性,及其他系统级别的配置



[] : 表示可省略

| : 表示二选一,或多选一,不能同时使用

<>: 必须给出的内容

... : 可以出现多次

{} : 分组,没有特殊意义


MAN

  NAME : 命令名称,及命令简要使用说明

  SYNOPSIS : 用法说明,包括可用的选项

  DESCRIPTION : 命令功能的详尽说明,包括每个选项的意义

  OPTIONS: 说明每一个选项的意义

  FILES: 此命令相关的配置文件

  BUGS:

  EXAMPLES: 使用示例

  SEE ALSO: 另外参照


翻屏:

  向后翻一屏: SPACE 空格

  向前翻一屏: b

  向后翻一行: ENTER 回车

  向前翻一行: k 


查找:

/KEYWORD : 向后

n: 下一个

N:前一个

?KEYWORD :向前


退出:

q



9. hwclock


hwclock -w : 修改硬件时间,将系统时间同步到硬件时间去

hwclock -s : 修改系统时间,将硬件时间同步到系统时间去



10. info


在线文档


info COMMAND : 介绍发展历史 ,man 的补充


cd /usr/share/doc  : 大多数(并不是所有)命令都有使用和帮助说明的文档


11. cal 


cal : calendar 







  






04 Linux操作系统及常用命令