标签:linux
1.登录界面
login : 用户id
passwd:密码
<1>为什么需要用户名和密码
计算机的资源是有限的,我们需要对资源进行管理,我们希望让某些人可以操作某些资源,但我们怎么识别这些人呢,于是有了用户名;
但是我们怎么证明用户就是它自己呢,于是我们需要一种机制,叫认证机制,这个机制可以有很多种,比如***认证,指纹等等,但一般是密码;
现在我们已经可以确认用户身份了,但是我们要让他知道哪些是他可以碰的,哪些是不可以的,比如进来一个新员工,你让他碰money肯定不合适,于是我们要告诉他所能用的东西,这个过程在linux叫授权;
我们已经可以分配资源了,但是我们怎么保证资源不被滥用呢?比如我们给了一个经理采购的权利,我们怎么保证他不乱花钱呢,我们可以找个人去监督他。这种表现在linux里叫审计,通常是一些日志。
所以一个用户登陆过程可以归纳为以下过程:
读取用户名---->认证(Authentication)---->授权(authorization)---->审计(Audition)login passwd 日志
<2>linux命令的格式
prompt:命令提示符
(登陆后会有这个[root@indexer ~]#,普通用户最后一个为$提示符,root为#)
魔数:magic number
程序要想被执行,必须有个执行程序入口,比如库文件是不可以直接被执行的(但是可以被调用执行)命令是可以被执行的,那系统怎么知道哪些是可执行的,哪些是不可执行?我们需要几个特殊字符来标识程序的可执行,这几个字符就叫magic
number(有待深入了解)
命令格式:
command option .... arguments....
命令 选项 (命令的作用格式) 参数(命令的作用对象)
命令分两种:内置命令(不需要其他条件就可以直接被执行,比如cd)
外部命令 (系统中必须含有与之相对应的文件,比如ls,它有 /bin/ls这个文件)
选项也分两种:长选项(不可以合并使用,--开头)
短选项(可以合并使用,比如ls -l -d 可以简写为ls -ld)
参数:可以使文件,路径等等
<3>路径与文件系统
路径:从指定起始点到目的地所经过的位置
绝对路径:从根节点开始到目的节点的完整路径
相对路径:从当前节点开始到目的地的一段路径(不是很准确,相对路径所在的当前节点只能是绝对路径上的某个节点,两者绝对路径包含相对路径)
树状文件系统:
假设我们要在10000个人中找一个叫tom的人,按普通方法我们只能一个个找,这样运气好的话找一次就能找到,运气不好要找10000次,平均要找(1+2+.....+10000)/10000次,大约5000次,但是如果我们把10000人分成两组,这样需要找的次数为(1+2+...5000)/2+1,大约2501次,效率大大提高,同样地我们再把5000细分,子又生孙,孙又生子,这样最后几次就可以找到jerry。这种思想在linux表现就是树状文件系统,以/为根,/又可以分为/root,/usr等,/usr分为/local,/bin等等。
<4>ls 命令
ls (list)
-l: 长格式 (例子:输入ls -l 显示: -rw-------. 1 root root 9.6K Oct 28 09:20 .bash_history)
第一部分-rw-------
第一个-代表文件类型有如下几类:
-:普通文件
b:block块设备文件
c:字符设备文件(character)
d:目录文件 (directory)
l:符号链接文件
p:管道文件(pipe)
s:套接字文件(socket)
剩下九个字符分别代表所属者权限,所在的组权限和其他人的权限,r代表读read,w代表写write,x代表可执行excuse。
第二部分代表硬链接数
第三部分代表文件所属者root
第四部分代表文件所在组root
第五部分代表文件大小9.6k
第六部分代表文件最近一次被修改的时间Oct 28 09:20
文件的时间戳: 访问时间access time
修改时间modify time(指的是文件本身的数据)
改变时间change time(指的是文件的属性也就是元数据metadata)
第七部分代表文件名
-h:单位转换(默认是byte,这个可以转换成人类比较看得懂的格式,大意:human readable)
-a:显示所有文件包括隐藏文件
-A:显示所有文件,包括隐藏文件,但不包括 . 和 ..
-r:显示格式按z->a排序
-R:递归显示(慎用,就是假设当前路径下有子目录,子目录下又有文件,那么子目录里面的文件也会被显示,子目录的子目录也会显示,所以ls -R
/这条命令就能显示系统中的所有文件..所以你懂得。。)
-d:显示本身的属性
<5>cd命令
cd 和cd ~都是直接回家目录
cd ~USERNAME可以进入到别人的家目录(只限root)
cd - 可以到上一次所在目录(类似于遥控器上的返回键)
<6>hash命令
显示命令的缓存
当我们执行一个外部命令的时候,系统首先会在环境变量PATH里面按顺序查找到这个命令(如果命令同时存在在PATH所包含的多条路径的话,只会按顺序找到第一个),但是每次这样找显然效率是十分低下的,于是系统采用了一种缓存机制(也就是hash),当一个命令被执行后,系统就把它放在缓存中,以后查找命令的时候首先在缓存中找,如果命中率高的话,以前可能需要查找上千次的命令,现在只需查找几次,所以效率大大提高了。
那么问题来了,当缓存中的命令个数大于原来所需查找的次数,是不是效率反而降了呢?不是这样的,hash的算法满足o(1),也就是说找一次跟找一万次所消耗的时间是一样的。具体是怎样做到的,有待深究。
<7>linux的时间
硬件时间:按主板上的石英振动频率来计时,十分精确,查看命令:hwclock
系统时间:利用cpu来计时,会有误差,尤其是cpu繁忙的时候。查看命令:date
hwclock -w:把系统时间写入到硬件时间
hwclok -s:把硬件时间写入到系统
为什么使用格林威治时间差存储数据?(date +%s 命令可以计算从1970年1月1日0时0分起到现在所用的秒数,通常用这个数据记录时间,mysql等应用)
答:这是因为我们的系统时间是不准确的,我们的时间是相对于格林威治的时间偏移量,假如我们存入一笔钱进入银行,而采用的是系统时间记录,这样在北京是08:00,可能在美国就是16:00,这样势必会产生一些不必要的麻烦,而相对于格林威治的时间差是相同的,可以减少很多纠纷。
<8>命令帮助获取方式
1.内部命令的使用帮助:
help COMMAND
外部命令:
COMMAND --help
2.man命令(manual)
whatis COMMAND(查找命令在man手册的哪些章节有说明)
<1>.man 命令的8个章节:
1:用户命令(/bin/usr/bin/,/usr/local/bin)
2:系统调用
3:库调用
4:特殊文件(设备文件:这类文件并不含有真正的数据,只是提供一个使用设备的接口)
5:文件格式(也就是配置文件的使用格式,比如passwd和shadow)
6:游戏
7:杂项(Miscellaneous)
8:管理命令(只有系统管理员才有权限,/sbin..)
<2>man文档的格式说明
NAME:命令名称及功能简要说明,下面是命令格式里出现的字符含义:
[ ]:代表里面的内容可以省略
<>:必选
……:可以出现多次
|:多选一
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能报货每一个选项的意义
FILES:此命令相关的配置文件
bugs:提交bug的联系方式
examples:使用实例
see also:另外参照
本文出自 “单季稻” 博客,请务必保留此出处http://linzb.blog.51cto.com/5192423/1725415
标签:linux
原文地址:http://linzb.blog.51cto.com/5192423/1725415