开始正式学习
回顾:
ROM:只读存储器,寻址地址空间的组成部分
RAM:随机存储器
南桥:低速
北桥:高速
将底层的细节隐藏起来,并提供一个统一的规范的,简介的接口提供出来,这就是操作系统的用途
posix 可移植操作系统(规范)
启动内核,启动外壳
init用来作为所有进程的父进程,由它来启动别的进程
linux被称为类unix,Unix―like
linux内核的官方站点
www.kernel.org
版本说明:
主版本号:此版本号、修正号
init:6以后使用Ubuntu研发的upstart,7以后可能使用systemd
shell:bash
源码:
linux发行版:
RadHat
SuSE
Debian
LFS:
bt:BackTrace
管理包工具:
RadHat,SuSE:RPM
Debian:deb
硬盘:分区、格式化(创建文件系统)、选择语言、键盘布局、时区、设置用户、选择安装需求、
安装程序:
RadHat:anaconda支持自动安装,有kickstart、cobbler
Linux终端:
物理终端、
/dev/console
串行终端、
/dev/ttys#
虚拟终端(Ctrl+Alt+F(1-6))
/dev/tty#(数字)
图形终端Ctrl+Alt+F7,
伪终端(远程终端、图形界面下的终端)
/dev/pts/#(数字)
startx 启动图形界面
Ctrl+c:取消正在执行的命令
&立即释放命令提示符(后台执行)
shfit+PageUp/PageDown:翻屏
tty命令:显示当前终端对应终端设备文件
who 查看当前系统上登陆的所有账号的命令
who am i 查看当前终端登陆的账号
linux哲学思想:
1.一切皆文件
2.由众多目的的单一应用程序组成:一个程序只做一件事,且做好
3。组合目的的单一的小程序完成复杂的任务
4.尽量避免跟用户交互
5.使用文本文件保存配置信息
6.提供机制,而非策略
自由软件的含义:
自由使用
自由学习和修改
自由分发
自由创建衍生版
shell:
GUI:
Windows
Gnome
KDE
Xfce
CLI:
bsh
csh
tcsh
ksh
bash
zsh
bash
管理员:提示符 #
普通用户 提示符 $
环境变量:
PS1:一级提示符
变量:是一段内存空间,
echo 回显
引用一个变量${变量名}
宏:
echo $PS1
[\u@\h \W]\$
\u:当前用户
\h:主机名
\W:工作目录的路径基名
基名:当前目录的最后一段
basename 显示当前目录的基名
dirname 显示当前目录的目录名
对于linux来讲,路径分隔符:/
绝对路径:从顶层开始的路径
相对路径:从当前位置开始的路径
目录是路径映射符
linux文件系统结构:
层次化
在启动的时候需要使用文件,需要载入内存,有一个分区作为起始分区,这个分区被称为根分区
根是由内核直接访问的
挂载
卸载
每个用户都有自己所有操作权限的目录,这个目录称之为家目录(主目录)
每次登陆目录,一定处在某个目录中
工作目录:当前所处的目录,叫做工作目录
cd:change directory
cd 目标目录
Linux文件系统的特性:
1、文件名可以使用除/意外的任意字符,但总长度不能超过255个
2、严格区分大小写
如何获取命令帮助:
bash中,命令分为:
内部命令:在bash中内部实现的命令叫做内置命令
外部命令:在文件系统上的某个位置有一个与命令名称对应的可执行文件
如何判断:?
使用type命令
shell 事先通过一个变量设定好了多个路径,当用户输入命令时,shell会自动到这些路径(由左向右)以此查找与命令名称相同的可执行文件
hash 用来保存以前曾经执行过的命令,以哈希表的方式保存,可以通过hash来查看
查看一个可执行程序的具体路径:使用 which+程序名来查看
获取帮助:
内置命令:
# help 命令名
外部命令:
# 命令 --help
有使用手册
# man 命令(先解压后显示)
里面有很多段落:
NAME
SYNOPSIS 格式
OPTIONS
EXAMPLES
DESCRIPTION
使用帮助中命令格式中的字符意义:
[]:可选的部分
{a|b}:分组,a和b作为一个使用单元来使用
|:或者,只能选其一
<>:必不可少的部分
...:同类内容可以出现多个
简要使用机制
翻屏:
空格键:向文件尾部翻一屏
b:向文件首部翻一屏
回车键:向文件尾部翻一行
k:向文件首部翻一行
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
1G:第一行
G:最后一行
文本搜索:
/keyword : 顺向,向文件尾部搜索
查看下一个被匹配到的
n 跟命令方向一致
N 跟命令方向相反
?keyword : 逆向,向文件首部搜索
q:退出
补充:man其实能为命令(普通命令、管理命令)、程序的配置文件格式、系统调用、库调用、游戏及其他不便归类的文件提供帮助手册
man命令的分段机制:
1:用户命令:
2:系统调用
3:库调用
4:设备文件
5:文件格式
6:游戏
7:杂项
8:管理命令
命令的使用格式:
command options arguments
命令 选项 参数
选项:调整命令的执行特性的
选项可以有多个,多个选项之间必须以空格分隔
短选项:-char(字符)
长选项:--word(单词)
两个短选项可以合并,长选项一般不可以合并
有些选项需要有参数
命令参数:命令的作用对象:
有些命令可以带多个参数,各参数之间需要使用空格隔开
查看某关键字在哪些段落有使用帮助
whatis Keyword 精确查找
提示:如果whatis的数据库尚未生成,可以使用makewhatis手动进行
man -k Keyword 模糊查找
info 命令:获取在线文档
很多应用程序自带的有文档:/usr/share/doc
ChangeLog INSTALL README
google:
linux filetype:ppt 特定格式
keyword site:magedu.com
Redhat官方文档
www.redhat.com/docs
shuitdown,如何关机和重启;
reboot halt date hwcolck
export LANG=en
将语言设置为en
系统管理类的命令
shutdown [option]...TIME
-r :重启
-h :关机
-c:取消重启或关机命令
时间格式:
now
+#:#分钟以后
hh:mm
reboot 一般情况下是调用shutdown进行关机处理
halt
poweroff
日期时间管理类命令
date,hwclock
date 显示当前系统时间
date MMDDhhmm[cc]YY.ss
date[+FORMAT]
%Y:四位年份
%y:两位年份
%m:月
%M:分钟
%d:日
%h:英文简写的月
%H:时
%S:秒
%s:现在距离1970年1月1号0点0分(unix元年)的秒数,timestamp(时间戳)
%D:月/日/年
%F:年-月-日
%T:时:分:秒
hwclock
-s:以硬件时钟为准 --hctosys
-w:以软件时钟为准 --systohc
Linux有两个时钟
硬件时钟:
软件时钟:开机时读取硬件时钟
cal 日历
bash的特性至二:
命令行展开:能够把一个特殊字符换成别的字符
{,}展开为多个条目
文件和目录管理类的命令
目录:
cd ~[username]
~:指定用户的家目录
cd -:回到上一次所在的目录
路径:
相对路径中:
.:当前目录
..:父目录
pwd: print working directory 显示当前目录
mkdir:创建目录
-p:先创建父目录
-v:显示详细信息
rmdir:删除空目录
-p:只能删除一线单的目录
shell的引用:
‘’:强引用,变量替换不会进行
"":弱引用,能够执行变量替换
``:命令替换,引用命令的执行结果,另外一种方式$()
变量替换:${变量名}
echo 显示
shell的特性之三:命令历史
bash默认会保持此前执行过的命令列表
当前shell进程的保存在缓冲区中:
缓冲区中的命令会在shell退出的保存在文件中 .bash_history
使用上下箭头键可以翻看此前执行过的命令:
history:
!数字:执行history中第数字条的命令
!!:上一条命令
!-数字:表示执行命令列表中的倒数第数字条命令
!$:执行上个命令中的最后一个参数:ESC,.
!string:执行命令列表中的最近一次以string开头的命令
-d 数字 删除第数字条记录
-c 清空history列表
-a:追加当前回话的命令到历史列表中去
-n:读取所有在回话列表中的 但是不在当前回话列表中的
命令历史相关的环境变量
HISTSIZE:历史命令中可以保存的个数
HISTFILE: 历史命令保存的文件
HISTFILESIZE:历史文件中可以保存的命令个数
HISTCONTROL:控制命令历史的生成机制
ignoredups:忽略记录重复的命令,连续的相同命令
ignorespace:以空格开头的命令不会被记录
ignoreboth:同时具有上面两种特性
补充:Linux文件系统的另一个特性:以点开头的文件为隐藏文件 通过ls -a 查看
shell中的变量赋值
变量名=值
注意:变量在赋值是不能再前面带$
变量名只能包含字母、数字和下划线,并且不能以数字开头
变量名区分大小写
尽量能见名知义
FHS:文件层次标准
操作系统自身运行使用的
/bin: 存放可执行的二进制程序,管理员和普通用户都可以使用
/sbin:管理员才能执行的命令
运行正常功能的程序存放位置
/usr/bin
/usr/sbin
用来存放第三方软件的程序
/usr/local/bin
/usr/local/sbin
/boot:存放系统引导文件:内核、ramfs文件、bootloader(grub)
/dev:设备文件存放目录
/etc:配置文件的集中存放目录
/etc/sysconfig:系统级别的应用
/etc/init.d:系统服务脚本
/home :普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录
/root:管理员的家目录
/lib,/lib64:库文件
/media:专用挂载位置,通常用来挂载便携式设备
/mnt:专用挂载位置,挂载额外的存储设备
/misc:杂项,备用目录
/opt:可选目录,但通常用来安装第三方软件
/proc:所显示的文件都不是文件,伪文件系统,运行中的内核参数的映射
/sys:伪文件系统,系统级别的用于配置硬件设备相关的参数
/srv:为服务提供数据存放位置的
/tmp:临时文件系统:默认存放30天
/usr:shared 所有遵循协议的系统都可以使用,readonly 只读
/usr/include:头文件存放位置
/var:经常发生变化的文件
/var/log
/var/lock
/var/run
/var/cache
文件管理类的命令:
文件类型
bash的其他特性:
shell管道和重定向:
文本编辑器:正则表达式
文件查找: