zoukankan      html  css  js  c++  java
  • [原创]Linux-day1

     原创:转发务必注明出处http://www.cnblogs.com/0zcl/p/6077298.html

    一、Linux的基本原则

    1. 由目的单一的小程序组成:组合小程序完成复杂任务
    2. 一切皆文件
    3. 尽量避免捕获用户接口
    4. 配置文件保存为纯文本格式

    二、Linux基本认识

    1. 接口

    GUI接口: 图形接口  Graphic  User  Interface

    CLI接口: 命令提示符,  prompt,  bash(shell)

    • #:root
    • $:普通用户

    2. 命令格式

    命令格式为: 命令       选项       参数

    选项:

      短选项:-       比如:-l,-a...

          多个选项可以组合:-a -b = -ab

      长选项:--      

          一般不能组合

    参数:命令的作用对象

    PS: Linux严格区分大小写

    3. 用户认证

    修改密码: #passwd

    切换用户: su  用户名         

    su 是switch  user的缩写

    标准密码:

    1. 使用4种类别字符中至少3种
    2. 足够长,大于7位
    3. 定期更换
    4. 循环周期足够大
    5. 使用随机字符串

    PS:当然,不按上面标准也可以,比如我的密码设123

    Login: 用户名   用户ID

      认证机制:Authentication

      授权:Authorization  (权限分配)

      审计:Audition (日志)

    PS:这些先了解,以后会讲……

    三、Linux的基本命令

    1. pwd  ls  ls -l

      pwd: 显示当前目录

      ls: 显示当前目录下的文件

      ls -l: 显示完整信息     (ls: list    l:long 当前目录下文件的完整信息)

    2. 文件类型

    大家会发现用#ls -l 命令时会出现-rw-r--r--,这是什么鬼?

    这里一共有10个字符,第一个表示文件类型,后9个表示文件权限

    文件类型:

    • -: 普通文件 (f)
    • d: 目录文件
    • b:块设备文件(block)
    • c:字符设备文件(character)
    •  l:符号设备文件(symbolic link file)
    • p:命令管道文件(pipe)
    • s:套接字文件(socket)

     

    接下来分析下面这些分别是什么意思。

    •  文件权限 9位,每3位一组,每一组分别是:rwx(读,写,执行), -表示:不能。比如:rw-  表示能读能写不能执行
    •  文件硬链接的次数(以后讲)
    •  文件的属主(owner)
    •  文件的属组(group)
    •  文件的大小(size): 单位是字节
    •  时间戳(timestamp): 最近被修改的时间

     

    PS:每个文件都有3个timestamp

    • 最近被访问的时间  access
    • 最近被修改的时间  modify     改变文件内容
    • 最近被改变的时间  change     改变文件属性/元数据

     你可能会问:被修改的时间和被改变的时间有毛线不同?

    其实一个文件有两种数据

    • 文件自身数据 
    • 文件元数据 (metadata)

    比如:只改文件名,文件内容不变,GET IT?

     

     3.  命令 -h/-a/./../-A/-d/-R/-r

    -h: 做单位转换

    -a: 显示以. 开头的隐藏文件

    . :  表示当前目录

    ..:  表示父目录

     

     -i : 显示文件的缩影结点号(文件唯一的一个数字标志符)  i 是index node的缩写

    -R: 递归显示(recursive)

    -r :逆序显示

     

    4. cd/type

    cd: 切换当前工作目录

    • cd :不加目录,则回到家目录/主目录
    • cd ~USERNAME  :进入指定用户的家目录
    • cd -  :在当前目录和前一次所在的目录之间来回切换

     

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

     命令有分为哪几种类型?

    命令类型:

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

    看下面这个图就肯定懂了!

    5. printenv/hash/useradd

    printenv: 打印环境变量

    数据太多,忽略一部分……

     

    重点注意下这里的PATH变量:(以冒号分开的路径)

    作用:执行命令时,在PATH依次查找,直到第一次找到为至

    那么问题来了,要知道系统的命令是很多的,如果一个程序包含很多命令,那每次执行命令都去PATH找,这很浪费时间啊!!

    解决:若第一次命令在PATH找到,把命令和对应路径缓存下来(可以用hash命令查看),第二次执行同一命令则不再到PATH找

     

     好,接下来说说hash命令

    hash: 把之前的命令和路径缓存下来。

    哈希表:查找速度快。 为什么要用哈希表呢,这和算法效率有关了。有机会再说吧。

     useradd: 创建用户与切换用户

    6. date/man

    date: 时间管理

    奇怪,怎么会有两种时间,而且时间还不一样?

    其实Linux 有两种时间:

    • 硬件时钟      clock
    • 系统时钟      date

     具体怎么修改时间我下面会说……

    获得命令使用帮助:

    • 内部命令:help  command
    • 外部命令:  command  --help
    • 查看命令手册(manual) : man  command     
    • 显示命令的摘要信息,以及出现的章节: whatis  command
    • 在线文档: info command    (文档位于:/usr/share/doc目录下)

    下面是一部分测试实例:

    (按q退出)

     

    以大家勤学好学的奋斗精神,难道不应该问上面man  cd下面的BASH_BUILTINS(1)是什么意思!

    BASH_BUITINS:说明cd 是bash shell的一个内部命令;而1又是什么东西?

    首先要知道

    man 是分章节的,常见章节有以下8个:

    1. 用户命令:所有用户都可以使用的命令
    2. 系统调用
    3. 库调用
    4. 特殊文件(设备文件)
    5. 文件格式(配置文件的语法)
    6. 游戏
    7. 杂项: Miscelianeous
    8. 管理命令

    man命令手册中的名词:

    • NAME: 命令名称及功能简要说明
    • SYNOPSIS:用法说明,包括可用的选项
    • DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
    • OPTIONS:说明每一个选项的意义
    • FILES:此命令相关的配置文件
    • BUGS:
    • EXAMPLES:使用示例
    • SEE ALSO:另外参照

    翻屏:

    • 向后翻一屏:SPACE
    • 向前翻一屏:b
    • 向后翻一行:ENTER
    • 向前翻一行:k

    查找:

    • /KEYWORD: 向后找
    • ?KEYWORD: 向前找

    n:下一个
    N:前一个

    q : 退出

    上图中date[...|...] 中的[] 及|等又是什么意思呢?

    • [ ] 可选的
    • <>必须选用的
    • … 可以出现多次
    • | 多选 一
    • { } 分组

    对了,我之前有说过要修改时间的,这很简单,根据上图就可以了,我们来试试

     我觉得能这样意义重大,这意味着我们可以通过man命令查看相关信息,修改/输出相关数据!

    比如下面:

    前面说了好多关于man命令的,让我们赶紧进入下一个点。(妈呀,第一次写怎么长的博客……)

     

     7. hwclock -w/hwclock -s/cal

    • hwclock -w: 将系统时间同步到硬件,以系统为准
    • hwclock -s: 将硬件时间同步到系统,以硬件时间为准

     读取时间:

     

     cal: 查看日历      (是calendar的缩写)

     

    三、练习与作业

    练习1:
    1.echo是内部命令还是外部命令
    2.其作用
    3.如何显示"The year is 2016. Today is 17" 为两行?

    练习2:
    1.print是内部命令还是外部命令
    2.其作用
    3.如何显示"The year is 2016. Today is 17" 为两行?

    练习3:
    file命令及其用法??

    欲知后事,下回分解

  • 相关阅读:
    我(webabcd)的文章索引
    学习重构的一些思考
    学习重构的一些思考
    软件编程思想读后感
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/0zcl/p/6077298.html
Copyright © 2011-2022 走看看