第一、Linux 基础
CPU架构:
x86
x64 (amd64)
m68000,m68k
arm
ultrasparc
Power;PowerPC(aix) (IBM公司设计RISC的CPU)
MIPS,ARM(多用在网关,机顶盒,便捷式设备的处理)
alpha (HP公司的)
POSIX:(Portable Operating System Interface)
window和linux都遵循POSIX ,俗称的API
硬件–> 驱动—> kernel –》操作系统(API(SysCall,LibCall))
硬件部分
Unix-like 开源协定:
GPL:General Public License (强制开源)
copyright,copyleft
LGPL:lesser GPL (稍微)
GPLv2,GPLv3
FSF:Free
BSD:
Apache :只要不以原作者名义商业化,都可以不开源,商业用途
ASF:Apache Software Foundation
双线授权:
Community : 遵循开源协定
商业授权:
Enterprise(企业版) (针对企业提供付费服务,维护)
程序管理:
相关开源协议的介绍
http://www.awflasher.com/blog/archives/939
https://www.oschina.net/question/54100_9455
程序的组成部分:
二进制程序(就是主程序)
配置文件(定制化配置,以方便特定运行服务)
库文件(为二次开发提供的接口)
帮助文件:(使用说明)
程序包管理器:
1,程序的组成文件打包成一个或者几个有限文件
2,安装:
3,卸载
4,查询
各种系统安装包管理器
Debian :dpkg,apt-get
RedHat: rpm ,yum,dnf(yum升级版)
S.u.S.E: rpm,zypper
ArchLinux: port
Gentoo: 边编译边安装
LFS: Linux From Scratch (完完全全显示了系统编译-创建的过程)
Kali:
硬件资源的复用创建出了虚拟机
CPU的复用:时序
内存的复用:空间切片
硬盘的复用:空间
I/O的复用:时序
网卡的复用 :时序
ps:目前主流的虚拟化软件:vmware workstations;virtualbox
终端(terminal)用户界面
gui:graphic user interface
gnome ked
cli:command line interface
bash ,ksh ,csh,
终端分类、操作和切换:
物理终端:控制台,console
虚拟终端:6个 称为:tty
ctrl+alt+F[1-6]
图案终端:
CentOS 6
Ctrl+Alt+F7
CentOS 7
在相应的虚拟终端上启动
串行终端:ttyS
伪终端:pty
远程连接:
ssh协议:secure shell
命令:ss -tnl
查看系统是否监听于tcp协议的22号端口
]# ip addr list
]# ifconfig
如果是远程安装的,需要远程连接,确保关闭防火墙
]# iptables -L -n # 查看防火墙是否关闭
关闭防火墙
CentOS 7 :
~]# systemctl disable firewalld.service
~]# systemctl stop firewalld.service
CentOS 6:
~]# service iptables stop
~]# chkconfig iptables off
第二、Linux 重要思想:
1,一切皆文件(硬件设备都是文件表示)
物理终端:/dev/console
虚拟终端:/dev/tty#[1-6]
串行终端:/dev/ttyS#
伪终端:/dev/pts/#
2,有众多功能单一的程序组成:一个程序只做一件事,组合小程序完成复杂任务
3,尽量避免跟用户交互
目标:易于以编程的方式实现自动化
4,使用文本文件保存配置信息
CLI接口
命令行[smile@www ~]#
prompt(提示符的解释) 相关环境变量是PS1
#,管理员,$普通用户
建议用非管理员用户登录,安全操作起见 执行管理操作,临时切换就行
几个基础命令:
tty:查看当前终端设备
ifconfig或者ip addr list:查看活动接口的ip地址
echo:回显
ping 探测网络的目标地址和当前的主机之间的连通性
关机命令:
CentOS 7
~]# systemctl poweroff
~]# systemctl reboot ; 重启
stallman:
自由含义:自由学习和修改,自由使用;自由分发,自由创建衍生版
思考:文件是什么?众多文件如何组织起来?
目录:路径映射
文件:存储空间存储的一段流式数据,对数据可以做到按名存取
文件系统:层级结构
/: 原初节点,倒置树状结构
文件路径表示: 相对路径(从当前位置出发)和绝对路径(从根位置出发)
文件名使用法则:
严格区分字符大小写;目录也是文件,同一个目录下,两个文件不能同名
支持使用除“/"以外的任意字符
最长不能超过255个字符
basename:最右侧的文件或者目录名
dirname:basename左侧的路径
程序的组成部分:二进制程序文件,库文件,配置文件,帮助文件
前两者一般都是二进制文件,后两个是文本文件
库文件:不能独立执行,只能被调用时执行
命令存放的目录:/sbin, /bin, /usr/bin, /usr/sbin, /usr/local/bin,/usr/loacl/sbin
库文件: /lib,/lib64,/usr/lib,usr/lib64
注意:并非所有的命令都有一个在某个目录里有一个对应的可执行文件
命令可两类:
shell自带的命令, 内置命令(builtin)
独立的可执行程序文件,文件名即命令:外部命令
命令语法的基本格式
Command OPTIONS ARGUMENTS
shell 程序是独特的程序,负责解析用户提供的命令
环境变量: eg:HOME,PATH
查看命令的类型:
type COMMAND
OPTIONS: 指定命令运行的特性
注意:1,有些命令的选项没有-,多个选项可以合并;2,–help,这种长选项不能合并;3,有些选项可以带参数,此称为选项参数
ARGUMENTS:命令的作用对象,命令对什么生效
第三、如何获取帮助?
内部命令:help COMMAND
外部命令:使用手册 manual (man COMMAND)
手册所在目录:/usr/share/man
SECTION:
NAME:功能性说明
SYNOPSIS: 语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用案例
AUTHOR:作者
BUGS:报告程序的BUG方式
SEE ALSO:参考
SYNOPSIS:
[]:可选内容
<>:必须提供的内容
a|b|c: 多选一
….同类内容可出现多个
使用手册:压缩格式的文件,并有章节之分
/usr/share/man1,man2,man3
1,用户命令
2,系统调用
3,C库调用
4,设备文件及特殊文件
5,文件格式 (配置文件格式)
6,游戏使用帮助
7,杂项
8,管理工具及守护进程
查看命令有哪些章节
whatis COMMAND,有依赖数据库: makewhatis(手动更新数据库)
操作man手册的阅读方式
空格:向文件尾部翻一屏
b键:向文件首部翻一屏
ctrl+d:向文件尾部翻半屏
ctrl+u:
回车键:向文件尾部翻一行
k:向文件首部翻一行
G:直到最后一行
1G:直到文件首行
#G:直到指定行
-M 选项 : 到指定目录下面查找命令手册并打开
info COMMAND: 获取在线帮助文档
README:程序相关信息
INSTALL:安装帮助
CHANGES;版本更改信息
google搜索:
keyword filetype:pdf
keyword site:domain.tld
第四、Linux文件系统
1,文件名严格区分大小写
2,文件名可以使用除/以外的任意字符
3,文件名长度不能超过255字符
4,以.开头的文件是隐藏文件
.是当前目录
..是上一级目录
常用命令:
pwd:printing working directory (显示路径
cd:change directory 改变目录(就是改变路径
直接cd或者cd~ 直接到家目录
在bash中,~表示家目录
cd ~USERHOME 切换到USERHOME的家目录
cd – 和上一级来回切换
$PWD:当前工作目录
$OLDPWD:前次的工作目录
ls:list 列出指定目录下的内容
-a: 显示所有文件(包含隐藏文件
-A:显示除.和..之外的所有文件
-l:–long 显示出详细信息
-h,–human-readable 对文件大小单位换算,换算大小可能不是非常精确
-d,查看目录本身,不是目录内部内容
-r:逆序显示
-R:递归显示
cat:catenate 查看文本文件
-n :显示行号
-E:显示行结束符
tac:反过来显示文本文件命令,和cat对比
file :determin file type 确定文件类型
查看文件类型
echo :回显
-n:不换行
-e:执行转义字符
单引号和双引号的区别
单引号:强引用,变量引用不能被替换
eg:'$SHELL' 还是$SHELL
双引号:弱引用,变量引用能被替换
eg:'$SHELL' 是SHELL
shutdown :halt ,power-off,reboot
OPTIONS:
-h:halt
-r:reboot
-c:cancel
TIME:
now
hh:mm
wall: 向所有终端发出信息
日期相关的命令
Linux:系统启动时从硬件读取时间和日期:读取完以后,就不在与硬件相关
还有就是和服务器时间同步时间
系统时钟和硬件时钟
date: 查看系统时钟
显示日期:date [OPTION][+FORMART]
%s:从1970年1月1日(Unix元年)0分0秒到现在所经过的秒数
设置日期:date [MMDDhhmm[[CC]YY][.ss]]
clock: 显示和设置硬件时钟
-s: –hctosys 以硬件为准,同步系统时间
-w: –sysyshc: 以系统为准,同步硬件时钟
hwclock和clock同一个命令
cal :查看日历
原创文章,作者:不忘初衷,如若转载,请注明出处:http://www.178linux.com/63341