嵌入式linux基础学习笔记

2019-07-12 20:20发布

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  执行完以后,子程序内的各项变量将会传回到父程序中。