Linux操作系统及常用命令
====================
一、Linux操作系统
开发一个操作系统,只需要提供内核,提供软件,如果软件需要库,提供库即可,最关键的应用程序是shell。
(1)Bash需要1M
(2)库需要1M
(3)内核需要 2M
所以,一个最小的linux可以为4m就可跑起来,最不过功能比较少。
Linux的关键功能:
(1)认证机制:Authentication
用户 Login,Linux通过 用户ID验证用户是其自己声称的那个人。
(2)授权:Authorization
资源分配和使用
(3)审计:Audition(日志)
Linux的审计一般通过日志完成
二、Linux操作系统常用命令
[root@mylab -]#
上面是prompt, 命令提示符
一个二进制程序的开头处有几个特殊的字符,程序的魔数(magic number),也叫shebang,可以标注程序的执行格式。
Windowsh和Linux的magic number也是不一样的,所以在Windows上的二进制程序不一定能移植到Linux。
例子:
#!/bin/shell //魔数,magicnumber
输入命令,敲回车时,bash将命令提交给内核。
# command options… arguments….
选项(options):
修改命令的执行特性
短选项
长选项
有多个选项,用空格隔开
有些选项可以带参数的
参数(arguments):指定命令的作用对象
list: ls
列出,列出指定目录下的所有文件
目录:只是个目录映射,不是文件夹目录也是文件,是一种目录映射文件
路径:从指定起始点到目的地所经过的位置
层次化文件管理:文件系统(filesystem)
绝对路径:从根目录开始找
相对路径:相对当前所处位置的路径
FHS: 文件系统层级标准
蓝色:目录
绿色:有执行权限的文件
ls 命令详解:
-l: 长格式
文件类型
-:普通文件
d: 目录文件
b: 块设备文件(block)
c: 子条设备文件(character)
p: 命令管道(pipe)
s: 套接字文件(socket)
文件权限:9位,每3位一组
文件硬连接的次数
文件的属主(ower)
文件的属组(group)
文件大小(size),单位是字节
时间戳(timestamp): 最近一次被修改的时间(modify),修改文件的自身数据
最近一次被访问的时间(access),最近一次被改变的时间(change),改变文件的属性或者属性数据。
文件有2中数据,一种是文件自身数据
一种文件的属性数据或元数据(metadata)
-h: 做单位转换(文件大小),
-a: 显示文件的所有文件,隐藏文件以点号开头的
.: 表示当前目录
..:表示上级目录
-A:显示所有隐藏文件,但不包括.和..
-d: 显示目录自身属性
-i: 显示文件的索引节点号(很关键)
每一个文件都有一个数字标识符,叫index node, 叫inode
-r: 逆序显示文件
-R:递归(recursive)显示
cd: change directory
cd~USERNAME: 进入指定用户的家目录
cd - :在前一个目录和当前目录切换
命令类型:
(1)内置命令(shell内置),bash内建
(2)外部命令:在文件系统的某个路径下有一个
与命令相应的可执行文件
如果每个命令都要输入目录做为参数,会很繁琐,所以Linux提供了环境变量。
环境变量:命令的内存空间
变量赋值
NAME=Jerry
#printenv //列出所有环境变量
PATH: 一堆使用冒号隔开的途径第一次会实时地找,找到后就缓存下来,缓存后就从缓存中取,通过Hash查看被缓存的命令命中了多少次:时间复杂度:O(1)
#hash
显示系统时间:date
(1)硬件时钟:Linux时间实现方式:实时时钟(RTC),每次开机的时候都从硬件中取时间,并设置当前时间。
(2)系统时钟
Linux获取命令的使用帮助:
(1)内部命令:
help command
例子:help cd
(2)外部命令:
Command --help //获取命令的帮助
命令手册:manual
Man comman //查看命令的手册
内部命令一般不用man查看,一般要用help
Man command
分章节:
1:用户命令: 第1章节显示的都是所有用户都可以使用的命令
2:系统调用:第2章节显示的都是系统调用
3:库用户
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项:Miscellaneous
8:管理命令(/sbin, /usr/sbin, /usr/local/sbin)
会修改硬件参数或者系统级别的参数
如:man 5 passwd
Man 2 read //显示man第二章节的内容,默认那个章节
先出现就出现最先出现
查看章节:
Whatis command
<>必须给出的内容
[]可选的内容
…多选一
{}分组,没有特殊意义
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个
选项的意义
FIFES:次命令相关的配置文件
EXAMPLES:使用示例
SEE ALSO:另外参照
MAN时怎么实现翻页;
向后翻一屏: SPACE(空格键)
向前翻一屏:b
向后翻一行:enter(回车键)
向前翻一行:k
查找:
/KEYWORD: 向后
敲n: 下一个
敲N: 前一个
?KEYWORD: 想前
q: 退出
date +%s
格林威治时间:从1970-01-0100:00:00 UTC(标准时间)至此刻为止
经过的秒数,也叫时间戳
#clock 查看硬件时间
将系统时间同步到硬件去:
#hwclock -w
以硬件为准,将硬件时间同步到系统去:
#hwclock –s
在线文档:
Info command //对man的补充
#cal 2015 //显示2015的日历
#cal 12 2015 //显示2015年12月的日历