Linux是什么
1、 Linux的核心原型是1991年由托瓦兹(Linus Torvalds)写出来的。
2、 1973年:unix的正式诞生,Ritchie等人以C语言写出第一个正式unix核心。
3、 1977年:重要的unix分支——BSD(Berkeley Software Distribution)的诞生。
4、 目前被称为纯的unix指的就是System V(AT&T) 以及BSD(SUN)这两套。
5、 1984年,史托曼开始GNU计划,这个计划的目的是:建立一个自由、开放的unix操作系统(Free unix)。
6、 主、次版本为奇数:发展中版本。
7、 主、次版本为偶数:稳定版本。
8、 Distribution主要分为两大系统,一种是使用RPM方式安装软件的系统,包括red hat ,fedora,suse等这些;一种则是使用debian的dpkg方式安装软件的系统,包括debian,ubuntu,b2d等等。
9、 Linux的特点1、硬件需求低;2、架构开放;3、系统稳定性及保密性功能够强;4、完全免费。
10、 Linux distribution的组成含有:linux kernel + free software +documentations(tools) + 可完全安装的程序;所组成的一套完整的系统。
Linux怎么学习
1、 计算器概论与硬件相关知识;
2、 先从linux的安装与指令学起;
3、 Linux操作系统的基础技能;
4、 务必学会vi文书编辑器;
5、 Shell与shell script的学习;
6、 一定要会软件管理员;
7、 网络基础的建立。
虚拟机安装过程
1、 网络类型:桥接网络、使用网络地址转换、仅主机模式网络各自代表什么意思。
2、 I/O控制类型:SCSI控制器:BusLogic 、LSI Logic、LSI Logic SAS三者各自代表什么意思。
3、 磁盘类型:IDE、SCSI、SATA各自代表什么意思。
常用指令和小技巧
date
#显示日期的指令。
cal
#显示日历的指令。
bc
#简单好用的计算器;输入qiut离开bc这个计算器。
Tab按键
功能:
1、 命令补全。
2、 档案补齐。
*#Tab接在一串指令的第一个字的后面,则为命令补全。
*#Tab接在一串指令的第二个字以后时,则为档案补齐。
Ctrl + c按键
#让当前的程序停掉。
Ctrl +d按键
#Ctrl+d按键代表:键盘输入结束(End of File,EOF or End of Input)的意思!
#另外,他也可以用来取代exit的输入!例如你想要离开文字接口,可以直接按下Ctrl+d就可以直接离开。
man page
#查询指令的用法和相关参数的说明。
#指令后面跟的数字表示的内容:
#其中1、5、8三个号码特别重要。
#man page的内容所包含的的部分:
#还可能会看到Authors与Copyright等。
info page
#info与man 的用途其实差不多,都是用来查询指令的用法或者是档案的格式。但是与man page 一口气输出一堆信息不同的是,info page 则是将文件数据拆成一个一个的段落,每个段落用自己的页面来撰写,并且在各个页面中还有类似网页的『超链接』来跳到各不同的页面中,每个独立的页面也被称为一个节点(node)。
1、File:代表这个info page的资料是来自info.info档案所提供的;
2、Node:代表目前的这个页面是属于Top节点。 意思是info.info 内含有很多信息,而Top 仅是info.info 档案内的一个节点内容而已;
3、Next:下一个节点的名称为GettingStarted,你也可以按『N』到下个节点去;
4、Up:回到上一层的节点总揽画面,你也可以按下『U』回到上一层;
5、Prev:前一个节点。但由于Top 是info.info 的第一个节点,所以上面没有前一个节点的信息。
nano
#超简单文字编辑器。
1、[ctrl]-G:取得联机帮助(help),很有用的!
2、[ctrl]-X:离开naon 软件,若有修改过档案会提示是否需要储存喔!
3、[ctrl]-O:储存档案,若你有权限的话就能够储存档案了;
4、[ctrl]-R:从其他档案读入资料,可以将某个档案的内容贴在本档案中;
5、[ctrl]-W:搜寻字符串,这个也是很有帮助的指令喔!
6、[ctrl]-C:说明目前光标所在处的行数与列数等信息;
7、[ctrl]-_:可以直接输入行号,让光标快速移动到该行;
8、[alt]-Y:校正语法功能开启或关闭(单击开、再单击关)
9、[alt]-M:可以支持鼠标来移动光标的功能。
正确的关机方式
1、 who 查看有谁在线
2、 netstat –a 查看网络的联机状态
3、 ps –sux 查看背景执行的程序
4、 sync 将数据同步写入硬盘中的指令
5、 shutdown 关机指令
6、 reboot, halt, poweroff 重新启动。
切换执行等级:init
#Linux共有七种执行等级。
#run level 0 : 关机
#run level 3 : 纯文本模式
#run level 5 : 含有图形接口模式
#run level 6 : 重新启动
linux 的档案权限与目录配置
chgrp
改变档案所属群组
命令chgrpgroupname install.log
chmod
改变档案的权限
1、 用chmod改变拥有者和群组,chmoduser.group file或者chmoduser:group file
2、 chmod xyz 档案或目录
3、 chmod (u/g/o/a) (+/-/=) (r/w/x)档案或目录
mkdir
mkdir [-mp] 目录名称
-m : 配置文件的权限!直接设定,不需要看预设权限的脸 {MOD}。
-p : 帮助你直接将所需要的目录(包括上层目录)递归建立起来!
rmdir
rmdir [-p] 目录名称
-p :连同上层空的目录一起删除
cp
cp [-adfilprsu] 来源文件(source) 目标文件(destination)
选项与参数:
-a : 相当于–pdr 的意思,至于pdr 请参考下列说明;
-d : 若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f : 为强制(force)的意思,若目标档案已经存在且无法开启,则移除后再尝试一次;
-i : 若目标文件已经存在时,在覆盖时会先询问动作的进行
-l : 进行硬式连接(hand link)的连接档建立,而非复制档案本身
-p : 连同档案的属性一起复制过去,而非使用默认属性;
-r : 递归持续复制,用于目录的复制行为
-s : 复制成为符号链接文件(symbolic link),亦即【快捷方式】档案
-u : 若destination比source旧才更新destination!
rm
移除档案或目录
rm [-fir] 档案或目录
-f : 就是force的意思,忽略不存在的档案,不会出现警告讯息;
-i : 互动模式,在删除前会询问使用者是否动作
-r : 递归删除啊!最常用在目录的删除了!
mv
移动档案与目录,或更名
mv [-fiu] source destination
-f : force强制的意思,如果目标档案已经存在,不会询问而直接覆盖
-i : 若目标档案(destination)已经存在时,就会询问是否覆盖
-u : 若目标档案已经存在,且source比较新,才会更新(update)
touch
建立一个空的档案
将某个档案日期修订为目前
touch [-acdmt] 档案
-a : 仅修订access time
-c : 仅修订档案的时间,若该档案不存在则不建立新档案
-d : 后面可以接欲修订的日期而不用目前的日期,也可以使用–date=”日期或时间”
-m : 仅修改mtime
-t : 后面可以接欲修订的时间而不用目前的时间
whereis
寻找特定档案(在数据库档案里面搜寻,不搜寻硬盘)
whereis [-bmsu] 档案或目录名
-b : 只找binary格式的的档案
-m : 只找在说明文件manual路径下的档案
-s : 只找source来源档案
-u : 搜寻不在上诉三个项目当中的其他档案
locate
locate [-ir] keyword
-i : 忽略大小写的差异
-r : 后面可接正规表示法的显示方式
压缩文件
*.Z compress程序压缩的档案
*.gz gzip程序压缩的档案
*.bz2 bzip2程序压缩的档案
*.tar tar程序打包的档案,并没有压缩
*.tar.gz tar程序打包的档案,并且经过gzip的压缩
*.tar.bz2 tar程序打包的档案,其中并且经过bzip2的压缩
tar
1、 压缩:tar –jcv –f filename.tar.bz2 要被压缩的档案或目录名称
2、 查询:tar –jtv –f filename.tar.bz2
3、 解压缩:tar –jxv –f filename.tar.bz2 –C 要解压的目录
dump
dump 的功能颇强,他除了可以备份整个文件系统之外,还可以制定等级喔
vim程序编辑器
删除
复制
yy 复制游标所在的那一行;
nyy n为数字,复制光标所在的向下n行;
粘贴
复原与重复
插入或取代
储存与离开
Vim环境的变更
区块选择
多档案编辑
多窗口
认识与学习BASH
Linux使用的shell称为【BourneAgain SHell】,简称bash。
命令编修能力(history)
在指令列按上下键就可以找到前后一个输入的指令。这么多指令记录在家目录内的.bash_history里面。
放在/root/.bash_history里面。
命令与档案补齐功能([tab]按键)
命令别名设定功能(alias)
例:alias lm=’ls-al’
后面的lm=’ls-al’不能有空格,要连在一起。
通配符(Wildcard)
Bash shell的内建命令:type
查看指令是来自与外部指令或是内建bash当中的。
export
自定义变量转成环境变量
影响显示结果的语系变量(locale)
declare / typeset
宣告变量的类型
#declare [-aixr] variable
-a : 将后面名为variable的变量定义成数组类型
-i : 将后面名为variable的变量定义成整数数字类型
-x : 用法与export一样,就是将后面的variable变成环境变量
-r : 将变量设定为readonly类型,该变量不可被更改内容,也不能unset
正规表示法与文件格式化处理
grep
用法:grep [选项]… 模式 [文件]…
在每个文件中查找样式或标准输入。
PATTERN默认的是一个基本的正则表达式(BRE)。
例: grep –I ‘hello’menu.h main.c
正则表达式的选择和解释:
-E,--extended-regexp PATTERN是一个扩展的正则表达式(ERE)
-F,--fixed-strings PATTERN是一套新行分离修复字符串
-G,--basic-regexp PATTERN是一个基本的正则表达式(BRE)
-P,--perl-regexp PATTERN是一个Perl正则表达式
-e,--regexp=PATTERN 使用 PATTERN 来匹配
-f,--file=FILE 从 FILE 来获得 PATTERN
-i,--ignore-case 忽略大小写
-w,--word-regexp 强制 PATTERN 仅匹配整个词
-x,--line-regexp 强制 PATTERN 仅匹配整行
-z,--null-data 结尾为 0 字节而不是新行符的数据行
杂项:
-s,--no-messages 不显示错误信息
-v,--invert-match 选择不匹配的行
-V,--version 打印版本信息并退出
--help 显示本帮助并退出
--mmap 如果可能,使用内存映象作为输入
输出控制:
-m,--max-count=NUM 在有NUM个匹配后停止
-b,--byte-offset 在输出行的同时打印字节位移
-n,--line-number 在输出行的同时打印行数
--line-buffered flush outputon every line
-H,--with-filename print the filenamefor each match
-h,--no-filename suppress theprefixing filename on output
--label=LABEL print LABELas filename for standard input
-o,--only-matching show only the partof a line matching PATTERN
-q,--quiet, --silent suppress all normaloutput
--binary-files=TYPE assume thatbinary files are TYPE;
TYPE is `binary',`text', or `without-match'
-a,--text 等同于 --binary-files=text
-I 等同于 --binary-files=without-match
-d,--directories=ACTION how to handledirectories;
ACTION is `read',`recurse', or `skip'
-D,--devices=ACTION how to handledevices, FIFOs and sockets;
ACTION is `read' or`skip'
-R,-r, --recursive 等同于 --directories=recurse
--include=FILE_PATTERN 只搜索符合FILE_PATTERN型式的文件
--exclude=FILE_PATTERN 跳过名字为FILE_PATTERN的文件或目录
--exclude-from=FILE skip filesmatching any file pattern from FILE
--exclude-dir=PATTERN directories that match PATTERN will be skipped.
-L,--files-without-match print only names of FILEs containing no match
-l,--files-with-matches print only names ofFILEs containing matches
-c,--count print only a countof matching lines per FILE
-T,--initial-tab make tabs line up(if needed)
-Z,--null FILE名字后打印0字节
上下文控制:
-B,--before-context=NUM 打印 NUM 行上文
-A,--after-context=NUM 打印 NUM 行下文
-C,--context=NUM 打印 NUM 行输出上下文
-NUM 与 --context=NUM相同
--color[=WHEN],
--colour[=WHEN] 使用标记来高亮匹配的字符串;
WHEN 可取值为“always”,“never”或“auto”
-U,--binary 不去掉 EOL(MSDOS)处的 CR 字符
-u,--unix-byte-offsets 如果 CR 不在那里(MSDOS),报告偏移值
‘egrep’ 与 ‘grep -E’含义一致。‘fgrep’与 ‘grep -F’的含义一致。
直接调用‘egrep’和‘fgrep’的方式已经被废弃了。
没有 FILE或者 FILE 是 -,读取标准输入。如果少于两个 FILE,
假设 -h。如果任意行被选中,退出状态为 0;
如果出现任何错误并且 -q 未被给出,退出状态为 2。
如果想查看没有某个字符的行,用反向选择[^]来实现。
想要查看the开头的:
#grep ‘^the’ a.txt
符号’^’在[]内和外是不同的,在[]内表示反向选择,在[]外表示定位在行首的意思。
搜寻空白行,
#grep ‘^$’ a.txt
(小数点). 代表一定有一个任意字符的意思
(星星号)* 代表重复前一个0到无穷多次的意思,为组合形态
限定连续字符范围{}
Shell script
1、 指令的执行是从上而下、从左而右的分析与执行
2、 指令的下达:指令、选项与参数间的多个空白都会被忽略掉
3、 空白行也会被忽略掉,并且[tab]按键所推开的空白同样视为空格键
4、 如果读到一个ENTER符号(CR),就尝试开始执行该行命令
5、 至于如果一行的内容太多,则可以使用【enter】来延伸至下一行
6、 【#】可作为批注,任何加在#后面的资料将全部被视为批注文字而被忽略
sh sh01.sh 和 ./sh01.sh 执行完以后,子程序内的各项变量将会结束而不会传回到父程序中
source sh01.sh 执行完以后,子程序内的各项变量将会传回到父程序中。