嵌入式linux基础学习笔记

偶尔善良 提交于 2020-02-19 13:39:19

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 : 配置文件的权限!直接设定,不需要看预设权限的脸色。

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!