20180325听课笔记

内核:
内核是操作系统最基本的部分。它是为众多应用 程序提供对计算机 硬件的安全访问的一部分 软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核的分类可分为 单内核和双内核以及 微内核。严格地说,内核并不是 计算机系统中必要的组成部分。
1.进程管理
2.内存管理
3.文件系统管理
4.驱动管理
库:是一个二进制的文件,通过系统调用来执行
编程的编译方式:
静态编译
动态链接
Linux函数调用 用glibc调用
进程:
与终端有关的进程
与终端无关的进程(操作系统启动时)
一个操作系统组成:
内核 应用程序
应用程序组成:
1.二进制文件
2.库文件
3.配置文件
4.帮助文档
文件系统------层级结构
采用FHS结构. Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux 版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
FHS
/ : 根目录
/bin : 所有用户可用的基本命令文件
/sbin : 供系统管理使用的一些工具程序
/boot : 引导加载启动必须使用的静态文件, kernerl grub
/dev : 设备文件和存储文件
设备文件: 字符文件,块设备文件,
/etc : 系统程序的配置文件,静态文件
/home : 普通用户的家目录的集中位置 /home/USERNAME
/lib : 为系统启动或者根文件系统上的应用程序等提供共享库,以及一些内核的模块
modules : 用于存储内核模块目录
/lib64 : 64位操作系统的共享库文件
/media : 便携式设备的挂载点 cdram
/mnt : 临时挂载点
/opt : 附加的应用程序的安装位置,可选路径
/srv : Date for services provided by this system
/tmp : 为那些可以产生临时文件的程序提供用于存储临时文件的目录,普通用户可以写入操作,有特殊权限
/usr : 全局共享的只读数据路径
bin,sbin
lib,lib64
share:共享
src : 源代码
/usr/local : 让系统管理员安装本地应用程序,通常也用于第三方程序
/var : 存储常发生变化的数据目录
/proc : 基于内存的文件系统,为进程及进程存储相关信息,多数放置内核参数,
/sys :


linux上的文件类型
-rw-r--r--. 1 root root 10023 3月 24 15:54 keyword
lrwxrwxrwx. 1 root root 7 3月 20 22:31 lib -> usr/lib
dr-xr-xr-x. 5 root root 4096 3月 20 22:42 boot


- : 常规文件 f
d : directory 目录文件
b : 块设备文件
c : 字符设备文件
l : 符号链接文件
p : 命名管道
s : 套接字文件

命令类型
外部命令
内嵌命令
type
接触到的命令,命令可以有别名,别名可以和原名相同,如果运行原命令,则使用\command

命令别名:
# alias
定义别名: alias 别名=原命令 ------- 仅对当前shell有效,退出后无效
撤销别名:-------unalias + 别名
--------alias

which:shows the full path of (shell) commands
显示文件路径
--skip-alias:忽略别名,只显示路径
--read-alias
whereis:locate the binary, source, and manual page files for a command
-b:仅仅搜索二进制程序路径,类似于which
-m:仅仅搜索使用手册路径
w:Show who is logged on and what they are doing
-------------显示谁登录了做了什么操作
who:show who is logged on -----------显示谁登录
-b:系统此次启动的时间
-r:系统运行的级别
bash的基础特性:
命令历史:
# history
HISTSIZE:shell进程可以保留的命令历史的条数
HISTFLIE:持久保存命令历史的文件路径
每个用户有一个,默认在自己的家目录中 .bash_history
history用法:
-c:清空内存记录
-d:指定删除一天记录
-r:从文件读取命令历史到内存历史列表中
-w:将目前的 history 记忆内容写入 histfiles
调用命令列表中的命令
!#:!12再次执行历史列表的第12条命令
!!:执行上一条命令
!STRING:再一次执行命令历史列表中最近一个STRING开头的命令
调用上一条命令的最后一个参数
快捷键:ESC.
字符串:!$
控制命令历史的记录方式
HISTCONTROL

ignoredups:忽略重复的命令 ------echo $HISTCONTROL ignoredups
ignorespace:忽略以空白字符开头的命令 ------
ignoreboth:两者同时生效 -------

修改变量的值:
NAME='value' ------------echo $HISTCONTROL va='value'
HISTCONTROL=ignorespace ------------
命令补全:
shell程序在接收到用户执行的命令请求,分析完成之后,最左侧上午字符串会被当作命令
命令查找机制:
查找内嵌命令
根据当前的PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名
如果给定的打头的字符串,能够唯一标识某个程序文件,敲击Tab键
如果不能唯一标识,需双击Tab键,给出列表
路径补全
在给定的起始路径下.以对应路径下的打头的字符串来逐一匹配的每一个文件路径
Tab
如果标识唯一,直接Tab补全
如果标识不唯一,双击Tab键,给出列表
目录管理类的命令
mkdir , rmdir
mkdir make directories
mkdir [OPTION]...DIRECTORY...
-p:自动按需创建夫目录
-v:显示创建详细过程
-m:直接给定权限
练习: /tmp/gentoo/file1 file2
mkdir -p /tmp/gentoo/file1
ls
ls -ln gentoo
mkdir -pv /tmp/gentoo/file2

rmdir remove empty directories
-p:删除目录后,如果发现父目录也为空,则删除
-v:显示过程
bash基础特性:
命令行展开
~:家目录
{ }:可承载一个以逗号分隔开的路径列表,并能够将其展开为多个路径
# rm -rf * ---------清除目录
命令的执行结果 ----------echo $?
命令的执行状态结果
成功:0
失败:0-125
命令执行完成后,其状态返回值保存在bash的一个特殊变量中 $?
引用
强引用: ' '
弱引用: '' ''
命令引用:·· 反单引号
bash的基础特性:快捷键
Ctrl+a:跳转至命令行行首
Ctrl+e:跳转至命令行行尾
Ctrl+l:清屏 clear
Ctrl+u:删除行首至光标所在位置之间的所有字符
Ctrl+k:删除光标所在位置至行尾之间的所有字符

tree
显示层级目录
清除当前建立的目录文件: 命令 -----rm -rf *



练习:
/tmp/mylinux/
|--bin
|--etc
| |-sysconfig
| |--network-scripts
|--sbin
|--usr
| |--bin
| |--sbin
| |--lib
| |--lib64
| |--local
| | |--bin
| | |--etc
| | |--lib
| | |--sbin
|
|--var
|--cache
|--log
|--run


[root@wxq ~]# mkdir -pv /tmp/mylinux/{bin,etc/sysconfig/network-scripts,sbin,usr/{bin,lib,lib64,local/{bin,etc,lib,sbin},sbin},var/{cache,log,run}}




[root@wxq tmp]# mkdir -pv /tmp/x/{y1/{a,b},y2}
mkdir: 已创建目录 "/tmp/x"
mkdir: 已创建目录 "/tmp/x/y1"
mkdir: 已创建目录 "/tmp/x/y1/a"
mkdir: 已创建目录 "/tmp/x/y1/b"
mkdir: 已创建目录 "/tmp/x/y2"

[root@wxq tmp]# mkdir -v {a,b} {c,d}
mkdir: 已创建目录 "a"
mkdir: 已创建目录 "b"
mkdir: 已创建目录 "c"
mkdir: 已创建目录 "d"

文件查看类命令: cat tac tail head more less

more less
tail 查看文件的后n行
-n #
-#
-f:查看文件尾部内容结束后不退出,跟随显示新增的行
监控日志新增使用很有用
head 查看文件的前N行
-n #
-#
stat命令:display file or file system status 显示文件或者文件系统状态
stat file...

文件:两类数据
元数据 文件状态信息
数据: 文件存储的数据

Access: 2018-03-25 13:12:24.936715725 -0400 最近访问时间
Modify: 2018-03-25 13:12:18.174715271 -0400 最近更改 数据的改变
Change: 2018-03-25 13:12:18.174715271 -0400 最近改动 元数据的改变

touch change file timestamps

touch [OPTION]... FILE...
-c:
-a:change only the access time
-m:hange only the modification time
-t [[CC]YY]MMDDhhmm[.ss] file


文件管理工具: cp mv rm

cp:copy
源文件 目标文件
cp - copy files and directories

单源复制:cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在,则首先创建此文件,复制源文件的数据流到DEST中
如果DEST存在 :
如果DEST是非目录的文件,则覆盖目标文件,复制时是非管理员用户不提示是否覆盖
如果DEST是目录文件,则先在DEST内创建一个与源文件同名的文件,并复制数据流

多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

如果DEST不存在 错误
如果DEST存在:
如果DEST是非目录文件:错误
如果DEST是目录文件,分别复制源文件的每一个文件到目标目录中,并保持同名
-R,r 递归复制
-f 强制覆盖目标文件
-i 交互式复制
mv move 移动命名

-i 交互式
-f 强制

rm remove 删除
-i
-f
-r

mount /dev/sr0 /media
vi /etc/fstab
/dev/sr0 /media/ iso9660 defaults 0 0

cd /etc/yum.repos.d
mkdir bak
mv Cen* bak
vi yum.repo
[Centos7]
name=Centos7
baseurl=file:///media/
gpgcheck=0
enabled=1
yum clean all
yum makecache

yum install -y name
yum search name










猜你喜欢

转载自blog.csdn.net/Wxq960906/article/details/79728215