内核功能:
1. 进程管理
2. 内存管理
3. 文件系统
4. 网络功能
5. 硬件驱动
6. 安全机制
FreeBSD # 专注于运行在PC机上 苹至今果的操作系统都是FreeBSD的内存
OpenBSD # 专注于安全
NetBSD # 专注于服务
linux内核安装:
linux ip=172.16.x.1 netmask=255.255.0.0 gateway=172.16.0.1 dns=172.16.0.1 ks=http://172.16.0.1/class.cfg
Linux的基本原则:
1. 由目的单一的小程序组成:组合小程序完成复杂任务;
2. 一切皆文件;
3. 尽量避免捕获用户接口;
4. 配置文件保存为纯文本格式;
5.
shell是人机交互的入口,这种接口有两种模式:
GUI接口
CLI接口
命令提示符,prompt,bash(shell)
'#':root # 管理员权限的
'$': 普通用户的
命令格式:
命令+选项(修正命令的执行方式)
选项:
短选项:- # -后面加一个字母
多个选项可以组合: -a -b = -ab
长选项:-- # --后面加一个单词
长选项通常不能组合
参数:命令的作用对象 # ls是默认的,ls /etc etc是指定的参数。
使用凭证:
Linux GUI(图形界面:Graphic User Interface)的3中类型:
Gnome: C 语言开发
KDE: C++开发
XFace: 简洁的适合用在嵌入式平台的轻量级的桌面系统
CLI:(命令行接口:Command Line Interface)
sh(默认shell,其实还是链接到bash)
bash
csh
zsh
ksh
tcsh
'''
当输入一个命令,敲回车的时候,这个命令会被shell送给内核,由内核判断这个程序是否有执行权限,以及能否执行,还包括从什么地方开始执行。
'''
用户切换:
su(switch user)
su [-l] 用户名 # []表示其是可省略的
su -l 用户名 # 完全切换
su 用户名 # 半切换
windows操作系统安装时,会有很多dll(dynamic link library:动态链接库)文件
Linux常用命令:
ls
-l: 长格式
文件类型:
-: 普通文件(f)
d: 目录文件
b: 块设备文件
c: 字符设备文件(character) # ls -l /dev
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket) # ls -l /tmp
文件权限:9位,每3位一组,每一组:rwx(读、写、执行)
文件硬链接的次数:
文件的属主:
文件的属组:
文件的大小(size),单位是字节
时间戳(timestamp):文件最近一次被访问(access)的时间,文件最近一次被修改(modify)的时间(ls -l),文件最近一次被改变(change)的时间
'''
修改指改变了文件的内容,改变指修改了文件的属性(metadata)
'''
-h:做单位转换
-a:显示以.开头的隐藏文件,-A显示以.开头的隐藏文件,但不包含‘.’和‘..’
.表示当前目录 # ls .
.. 表示父目录 # ls ..
-d:显示目录自身属性
-i:index node简写位inode(我们识别一个文件靠文件名,机器识别文件靠inode)
-r:逆序显示文件 # ls 和 ls -r 做对比
-R:递归显示当前文件夹下所有文件及子目录中的所有文件和文件夹,如果子目录特别多,使用该命令将特别消耗资源。
pwd:printing working directory
cd:change directory
cd ~用户名 # 在root用户下通过这个命令可以直接到这个用户的家目录:cd ~student
cd - # 在当前目录和前一次所在的目录之间来回进行切换
命令类型:
内置命令(shell内置),内部,内建
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
环境变量:命名的内存空间
变量赋值:
NAME=Jerry
PATH:使用冒号分隔的路径
type:显示指定属于那种类型
printenv: 查看所有环境变量
hash: 查看每个命令被使用的次数统计
date: 时间管理
Linux: rtc(real time clock)
硬件时钟:clock/hwclock
系统时钟: date
eg:
date 03041642 # 修改系统时间为03月04日16点42分
hwclock -w # 将系统时间写到硬件中去 以系统时间为准
hwclock -s # 将硬件时间写道系统中去 以硬件时间为准
hwclock -r # 读取时间,-r是默认的,可以不写
在线文档:(info是对man的一个补充)
info COMMAND # 一般描述该命令的历史演进,比如命令由谁创建,有谁接替演进,有没有bug发生。
获得命令的使用帮助
首先使用type命令查看这个命令是内置还是外置命令,内置用--help,外部用help.
内部命令:
help COMMAND
eg: help cd
外部命令:
COMMAND --help
或者:man COMMNAD
eg: ls --help
命令手册:manual
man COMMAND
man number COMMAND # man 4 tty 查看tty第4个章节的内容
分章节:
1:用户命令
2:系统调用
3:库调用
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项(Miscellaneous)
8: 管理命令(/sbin, /ust/sbin, /usr/local/sbin)
whatis COMMAND # 查看一个命令出现在哪个章节当中
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找:
/KEYWORD:向后
n:下一个
N:前一个
?KEYWORD:向前
n:下一个
N:前一个
<>:必选
[]:可选
...:可以出现多次
|:多选一
{}:分组
查看指定年份日历
cal(calendar):# 查看指定年份的日历
cal 2021
echo命令
echo # echo后面不跟任何选项,默认打印一个换行符
echo -n # 加一个-n则取消换行符
# 如何将echo显示的文本换行显示?
echo -e "echo is a builtin,
please study curiously"
# 退一格,把前面的一个字符给删掉
echo -e "echo is a builtin,please study curiously"
# 加上-n之后输出内容,换行符将被吃了。
echo -n 'The year is 2018'
printf 命令
作用:格式化并显示数据;默认没有换行符,需要加 ‘ ’换行。