菜鸟转行嵌入式_(第2天)linux环境搭建及使用

124 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

1、必备Linux命令和C语言基础

1.1环境安装

Ubuntu是Linux的一个发行版本,Linux有许多发行版本,比如Debian,center,redhat等都是比较流行的,Linux和Ubuntu的关系,类似win7,win10,XP是windows的实际的一个操作系统 在这里插入图片描述

1.1.1虚拟机安装

VMware-workstation 10 (.exe后缀) ubuntu-14.04.5-desktop-i386.iso

1.1.2linux安装

1.1.3常规配置

1.2文件和目录相关命令

linux文件系统就是一个树形的分层组织结构

/bin:bin是二进制(binary)英文缩写(命令行的命令如:cp,ls,cd等等存放在此处)
/boot:存放的都是系统启动时要用到的程序
/dev:包含了所有Linux系统中使用的外部设备
/etc:存放了系统管理时要用到的各种配置文件和子目录
/lib:存放系统动态连接共享库的
/home:普通用户的主目录
	/linux:
	/usr1:
/root:根用户(超级用户)的主目录
/mnt:
/opt:
/proc:
    /bin:
    /local:
    	/bin:
    	/man:
    	/src:
    /share:
/sbin:
/srv:
/sys:
/tmp:
/usr:
/var:

1.2.1文件系统层次结构标准FHS

Filesystem Hierarchy Standard(文件系统层次结构标准) 为了规范文件目录命名和存放标准,Linux基金会颁发了FHS(Filesystem Hierarchy Standard)。 ==Linux的优势==:Linux是开源的软件,各Linux发行机构都可以按照自己的需求对文件系统进行裁剪,所以众多的Linux发行版本的目录结构也不尽相同。

1.2.2 man命令

man man:查看man手册的作用

1.2.3 ls命令

man ls:查看ls的使用方式 显示当前路径下的文件和文件夹(不包含隐藏的) 隐藏的文件/文件夹:带 . 的文件或文件夹是隐藏文件/文件夹 ls [options] [files_or_dirs] []内的内容为非必选项

Example:
    ls -a
    ls -l
    ls -R
    -a:显示隐藏的文件或文件夹
			.:代表当前目录
			..:上一级目录
			eg:ls  -a  /home
	-l:以长列表的形式当前路径下的内容
		文件类型 用户权限 组员权限 其他成员权限   文件夹的个数  文件所属用户  文件所属组   文件大小  时间戳  文件名
		drwxr-xr-x   4 root root       4096 Sep 23 10:24 boot
	-h:带单位的显示当前路径下的内容,需要搭配-l选项使用
	-R:递归显示当前路径下的所有文件和文件夹,如果有文件夹递归展开显示
	-i:显示文件的inode号

1.2.4 文件的类型和权限

dcb-lsp:
		d:directory目录
		c:字符设备
		b:块设备
		-:普通文件
		l:链接文件(符号链接)
		s:socket套接字
		p:有名管道

权限:

		 u     g     o           a
		用户  组员   其他成员    所有成员
		rwx    rwx       rwx
		如果对应的权限不存在使用-表示
		r-x    rw-       -wx
		r:可读权限         4
		w:可写权限         2
		x:可执行权限       1
		0:---
		1:--x
		2:-w-
		3:-wx
		4:r--
		5:r-x
		6:rw-
		7:rwx
	chmod:更改文件的权限:
			字母的方式:
				chmod u+x  filename  将filename文件的用户加上可执行权限
				chmod a-w  filename  将filename文件的所有成员可写权限去掉
				chmod u-wx filename  将filename文件的用户去掉可写和可执行权限
			八进制数的形式:
				chmod 0777 filename   将filename的用户组员其他成员的权限加满
				chmod 643  filename   filename权限:rw-r---wx
			
   将文件1.c的权限改成r-xrw---x
	         chmod 561 1.c

1.2.5 pwd命令

pwd命令用于显示用户在文件系统中的当前位置,该命令没有任何选项和参数,命令执行结果显示为绝对路径名。 路径:绝对路径和相对路径 绝对路径:从根目录或家目录开始的路径 相对路径:从当前路径开始的路径

linux@ubuntu:~$ pwd
/home/linux

1.2.6 cd命令

cd:切换路径,相当于鼠标的双击

cd /:进入根目录
cd:进入家目录
cd ~ :进入家目录
cd /home/linux:进入家目录
cd -:返回上一次操作过的目录
cd ..:返回上一级目录

1.2.7 cat/nl/head/tail查看文件内容命令

1.cat  
	-s 多个空行合并成一个空行显示
    -b 加行号显示
2.nl 加行号显示,等同于cat -b
3.head 
	-n 文件名(前n行,默认10)
4.tail 
	-n 文件名(后n行,默认10)

1.2.8 cp复制命令

cp [options] file destination

cp -r 路径/目标文件名 路径/新文件名 (复制文件夹时)
cp test.c ../ (把文件拷贝到上一目录下)
cp test.c ../bak.c (把文件拷贝到上一目录下并取名为bak.c)
cp test.c ../bak.c -i(把文件拷贝到上一目录下并取名为bak.c,i覆盖时交互提示)

复制多个文件到文件夹 cp [options] file1 file2 dest

cp test.c test4.c  ../(文件备份)

1.2.9 mv移动命名

mv [options] file destination 移动多个文件: mv [options] file1 file2 destination

mv test2.c ../ (移动到上一级目录)
mv test2.c test_second.c (更改文件名)
mv test2.c ../test_second.c(移动到上一级目录并更改文件名)

1.2.10 touch/rm/mkdir

touch:当文件不存在时新建文件,文件存在时则为更新时间戳 rm 删除文件 rm [options] ...

mkdir -p :嵌套创建文件夹/当父目录存在的时候的忽略创建父目录
		mkdir -p aa/bb/cc
rm -i file (-i为删除时提示是否真的要删除)
rm -r directory (删文件夹)
rm -rf:r递归删除,-f强制执行
rm -rf /*:强制递归删除当前系统根目录下的所有内容,不能执行的命令

1.3 vi编辑器

vi有以下三种模式

1.3.1 命令行模式

用户在用vi编辑文件时,最初进入的为该模式。可以进行复制、粘贴等操作。

	yy:复制当前所在行
	dd:剪切当前所在行
	nyy/yny:从当前光标位置向后复制n行
	ndd/dnd:从当前光标位置向后剪切n行
	p:粘贴,在当前光标的下一行进行粘贴
	P:粘贴,在当前光标的上一行进行粘贴
	1G:回到文件的开头
	G:到文件的结尾
	$:当前行的行尾
	0:当前行的行首
	y$:复制当前光标位置到行尾的内容
	y0:复制当前光标位置到行首的内容
	d$:剪切当前光标位置到行尾的内容
	d0:剪切当前光标位置到行首的内容
	yw:复制一个单词,以空格分隔的
	:118,125y (按块复制)
	:118,$d (118行以后的全部剪切)
	x:删除当前光标所在的字符
	c:同d和y,操作结束会进入插入模式
	gg=G:自动调整对齐格式 (也可以选中要对其的代码,按=即可)
	ZZ:保存并退出(大写)
	/string:在全文查找string字符串,并高亮显示(光标跳到之前光标下第一个出现string的地方)
		n:继续查找
		N:反向继续查找
		支持正则表达式,比如:/^the (以the开头的)
	u:撤销
	ctrl+r:反撤销
vim filename +num    打开文件并将光标移动到第num行

1.3.2 插入模式

进行文件编辑,按ESC键可以回到命令行模式。 插入模式:insert,文本编辑模式

		i:当前光标的前一个位置插入
		o:当前光标所在行的下一行进行插入
		a:当前光标的后一个位置插入
		I:在当前的光标的行首位置插入
		O:在当前光标的上一行进行插入
		A:在当前光标的行尾进行插入

1.3.3 底行模式

先用esc回到命令模式,按:进入底行模式 :!pwd (可以看编程的路径) :!data (可以看系统几点了) 光标位于屏幕的底行。可以进行文件的保存、退出、查找、替换、列出行号

	:noh     取消高亮
	:行号    进入多少行
	:set num 加行号显示
	:set nonu 取消行号显示
	:m,ns/oldstring/newstring/g    
		m:起始行
		n:终止行
		g:当前行所有的匹配字符串都替换
:范围s/old/new 当范围省略时,默认为当前行
:.,$s/str1/str2/g  从当前行开始,到结尾进行替换
:%s/old/new/g  全文替换
	:w    保存
	:q    退出,当文件已被修改时不能退出,需要先保存,或者强制执行退出,此时修改的操作无效
	:!强制执行
:wq 保存并退出,等同于:x
:w!      :q!
	:sp    水平分栏  分出来的文件和原先打开的文件还在一个终端,可以公用剪切板
	:vsp     垂直分栏
	方向键:hjkl(左下上右),ctrl+方向键:在分栏的文件之间移动,单独使用方向键是在当前文件移动光标			
	:wa   保存所有文件
	:qa    退出所有文件
	:wqa 保存并退出所有文件
	:w +file 另存为file给出的文件名,不退出(工作时先备份一份可用的)
	:r +file 读入file指定的文件内容插入到光标位置

1.3.4 可视化模式

多行注释:

1、按ESC进入命令行模式
2、ctrl+v进入可视化模式
3、移动光标选中所有要注释的行(光标在行首位置)
4、shift+i从行首进入插入模式
5、输入//  #  "等匹配语言类型进行单行注释
6、按两下ESC
(复制到外面:ctrl+shift+鼠标选择;复制到虚拟机内部:ctrl+鼠标选中+y)

删除多行注释:

1、按ESC进入命令行模式
2、ctrl+v进入可视化模式
3、移动光标选中所有的注释符号
4、按d或delete删除

注释:

/*
*多行注释内容
*/
#if 0
多行注释内容
#endif