2.Linux使用基础

一、文件系统

Linux的灵魂所在就是一切皆文件,文件系统是对存贮设备的数据和云数据进行组织的机制,这种机制有利于用户和系统的交互,尽管内核是Linux的核心,但是文件系统确时用户和操作系统交互的主要工具,文件系统不仅包含了文件中的数据而且还有文件系统的结构。Linux用户和程序看到的文件,目录,软连接,以及文件保护都存储在其中。
linux最早的文件系统是Minix,后来专门设计了文件系统—扩展文件系统第二版(EXT2)被设计并添加到了Linux中,这对Linux产生了巨大的影响,目前常用文件系统有ext2(ext3是现在默认的Linux文件系统)、swap(作为交换分区使用)、vfat(兼容windows)、NFS(网络文件系统,可以方便的在局域网内共享文件系统,运用广泛)等。

1.目录结构

采用阶层式的树状目录结构,在该结构中的根目录为“/”。
目录结构

目录
/BIN目录: 作为基础系统最基本的命令大都放在该目录下,如ls,cp,mkdir等
/BOOT: 存放内核以及引导内核所需要的文件,主要是内核
/ETC: 配置文件存放的文件夹,访问最多的文件目录
/USR: 系统用户工具和程序
/USR/bin: 普通用户的可执行文件
/USR/include:标准头文件
/USR/LIB:标准库文件
/USR/SBIN:非必须可执行文件
/USR/SRC:内核源码,默认不一定创建,如果下载源码后通常放在该目录
/VAR: 系统运行需要改变的数据,如日志等,于USR配合使用
/SBIN: 超级用户的二进制文件,大部分文件为系统管理员使用的系统文件
/TMP: 存放临时文件
/DEV: Linux系统下所有的外设文件,驱动等
/HOME: 用户文件夹
/ROOT: 超级管理员文件夹
/LIB: 存放动态库文件
/MNT: 挂在文件系统,平时空,让用户临时挂在文件系统

2.文件类型

普通文件:通常是流式文件,作为数据存储在磁盘当中,可以随机访问 -rw-r–r--
目录文件:用于表示和管理管理系统中的全部文件 drwxr-xr-x
链接文件:用于不同目录下文件的共享(软硬链接) lrwxrwxrwx
设备文件:包括块设备和字符设备文件 #ls -la /dev/tty crw-rw-rw- (b块设备 c字符设备)
管道文件:进程间通讯的一种机制
套接字文件:该文件类型与网络通信有关

3.分区

在Windows系统中,是先将物理地址分开,再在分区上建立目录,Linux则相反,是先有目录再将物理地址映射到目录中,所有的路径都是从根目录开始。Linux默认可分为三个分区,分别是boot区,swap区和根分区。

4.挂载

Linux下的分区需要挂载到目录后才能使用,挂载的意义就是把磁盘分区的内容放在某个目录下,操作该目录就是在操作该分区。这个把分区和目录对应的过程叫做挂载(Mount)而这个挂载在文件树中的位置就是挂载点。有挂载就有必有卸载

Shell使用技巧

Shell是使用较多的工具,提供使用使用者的壳。Linux中的Shell是一个命令解析器,将用户命令解析为操作系统所理解的指令,从而实现用户与操作系统的交互。Shell是内核的一个外壳保护工具,并负责完成用户与内核之间的交互(如命令行)使用最多的版本是bash。既是命令解析器,也是命令编辑器在这里插入图片描述

使用技巧

Ctrl+k: 删除从光标到行尾的部分
Ctrl+u: 删除从光标到行首的部分
Alt+d: 删除从光标到当前单词结束的部分
Ctrl+w: 删除从光标到当期单词开头的部分
Ctrl+a: 光标移到行首
Ctrl+e: 光标移到行尾
Alt+a: 光标移到当前单词头部
Alt+e: 光标移到当前单词尾部
Ctrl+y: 插入最近删除夫人单词
Ctrl+R: 历史记录根据关键词查找

先执行command1,不管对错,执行command2: command1;command2
只有当command1正确执行完成后,执行cmd2 : command1&command2
命令的任务调度或后台运行:command &;任务进入后台后可用jobs命令查看运行的进程,也可以用ps查看并用kill+pid杀死进程。
输出重定向:"<“为输出重定向符,可以将命令的输出结果保存到文件中。“>>” 和”>“作用类似,不同的是,“>”为新建或者重写一个文件,而”>>"是在已有文件尾追加内容;Mail -s “hello world” < testmail

三、环境变量

环境变量是和Shell密切相关的,用户登录系统后就会启动一个Shell,对于Liunx来说一般就是bash,但是也可以重新设定或切换到其他Shell,根据发行版本而定,bash有两个基本的系统级配置文件:/etc/bashrc(启动和命令行等都被读取)和/etc/profile(系统启动时只读取一次)
环境变量常用变量:
PATH: 决定了shell将到那些目录中寻找命令或程序
HOME: 当前用户主目录
HISTSIZE: 历史记录数
LOGNAME: 当前用户登录名
HOSTNAME:主机名称
SHELL: 当前用户Shell类型
LANG: 语言相关的环境变量,多语言可修改次变量
MAIL: 当前用户的邮件存放目录

//PATH声明格式
PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>
//环境变量更改后,在用户下次登录时生效。如果想立即生效可执行:
source .bash_profile
//显示环境变量值
echo &PATH
//添加环境变量,用户退出失效
export MyName="qiu"
env 	:	显示所有环境变量		(grep筛选)
set 	:	显示所有本地定义的Shell变量
unset	<名字>:	清除所有环境变量
readonly <名字>:	设置只读变量		超级用户修改

四、管理文件

查看命令帮助手册 ./man command

//目录操作命令
pwd	显示当前目录
cd
ls
mkdir			mkdir -n 777  test		创建目录并指定权限		mkdir -p   /root/my/test	路径不存在则创建

//文件操作命令
touch <文件>		创建或修改文件更新日期
file <文件>		识别文件类型
cp <选项><源文件><目标文件>		复制文件
    -r:递归复制整个目录树
    -p:源文件属性不变
    -f:覆盖同名文件或目录
    -i:需要覆盖时提醒
rm <选项><文件>
    -r:递归删除整个目录树
    -f:强行删除文件或目录
    -i:需要提醒
mv <选项><源文件><目标文件或目录>
which <文件>		查找文件位置
find <范围><查找条件>	find /etc -name "pass"
    -name
    -size
    -type
    -user
ln -s <源文件或目录><链接文件>		创建软连接
ln	   <源文件或目录><链接文件>		创建硬连接		

五、内容管理

cat	filename 			//显示文件内容		与">"">>"灵活结合
	-n	filename 		//显示文件内容+行号
more filename 			//分页显示文件内容
less filename		(ps -ef | less)
tail filename			查看文件结尾部分内容
head filename			查看文件头部分内容
wc <选项> 目标文件		统计单词数量等
grep <选项> 查找条件 目标文件		ls -l | grep d   
diff <op> 文件1  文件2			diff -u tes  tes2 	对比文件差异   与打补丁结合

六、用户管理

useradd <op> 用户名			添加用户  /etc/passwd记录了用户账号的基本信息	如:testUser:x:1001:1008::/home/testUser:/bin/bash
																			名称:密码:UID:GID:宿主目录:登录Shell信息
		op---
			m:在home下创建宿主目录
			u:指定UID标记号
			d:指定宿主目录
			e:指定账号失效时间
			g:指定UID号
			G:指定GID号
			M:不为用户建立并初始化宿主目录
			s:指定用户的登录Shell
userdel [-r] 用户名			删除用户(连同宿主目录)

passwd [op] 用户名			设定用户密码
		op---
			d:清空用户密码
			l:锁定用户张虎
			S:查看用户状态
			u:解锁用户账号
groupadd 用户名

七、权限管理

文件权限

chmod [ugoa] [+-=] 文件或目录	chmod -c o-w,0-x test.c (对test.c去除其他用户的写和执行权限)
		u:user
		g:group
		o:other
		a:all
		+:增加权限
		-:去除权限
		=:设置权限
chmod nnn 文件名或目录
		n:八进制数
		op:R 递归修改目录下的所有的文件和子目录
chown 属主:属组 文件/目录		修改文件拥有者	chown -v qiu:qiu test.c		将test.c拥有者和所属组修改为qiu

八、压缩与解压

压缩文件的类型:
*.Z compress程序压缩的文件;
*.gz gizp程序压缩的文件;
*.bz2 bzip2程序压缩的文件;
*.tar tar程序压缩的文件;
*.tar.gz tar程序打包的文件,并经过gzip的压缩;
*.tar.bz2 tar程序打包的文件,并经过bzip2的压缩;

gzip [op] filename
bzip2 [op] filename		解压缩命令 对应的格式文件
	op---
		9:表示高压缩比,多在创建压缩包时使用
		b:用于解压已经压缩过的文件

tar [op] 归档文件名  源文件
		tar cvf	test.tar test		打包不压缩
		tar zcvf test.tar.gz test	打包并压缩	
		tar vzfx test.tar.gz
		tar zcvf test.tar.bz2 test	打包并压缩
		tar vjfx test.tar.bz2		解压
	op---
		c:创建.tar包格式文件
		x:解开.tar包格式文件
		v:输出详细信息
		f:表示使用归档文件
		p:打包时保留原始文件及目录的权限
		t:列表查看包内的文件
		C:解包时指定释放的目标文件
		z:调用gzip压缩或解压文件
		j:调用bzip2程序解压或压缩文件

九、磁盘管理

在系统里新增一个硬盘时,应该有那些动作需要做呢?
①对磁盘进行分区,以创建可用的partition;
②对该partition进行格式化(format),以创建系统可用的filesystem(文件系统);
③可以对创建好的文件系统进行检查
④在Linux系统上,需要创建挂载点(亦即是目录),并将它挂载上来;

1.磁盘分区

fdisk -l  查看分区
修改分区
fdisk 主分区名(会有帮助命令)
建立扩展分区并不能直接使用,还需要再扩展分区下建立逻辑分区

分区大致内容

DevicebootStartEndblocksldSystem
/dev/sda1*113104329183Linux
/dev/sda12147832628061178eLinux LVM
分区设备名称是否引导分区(是*)该分区在硬盘的起始地址(柱面数)该分区在硬盘的结束地址(柱面数)分区大小(块,默认块大小1024字节)分区类型的ID标记号,对于EXT3分区为83,LVM为8e分区类型

分割推荐方案

硬件名称IDE硬盘SCSI硬盘SATA硬盘USB移动盘光驱软驱打印机
挂载位置/dev/hd[a-z]/dev/sd[a-z]/dev/sd[a-z]/dev/sd[a-z]/dev/cdrom/dev/fd[0-1]/dev/lp[0-1]

2.挂载磁盘

df 					存储设备和挂载点罗列出
du 挂载点   			磁盘使用率

①格式化(创建文件系统)

mkfs -t 文件系统类型 分区设备

②挂载文件系统

mount [-t 类型] 存储设备 挂载点目录	vfat文件类型务必指定
mount -o loop ISO镜像文件 挂载点目录

3.设置文件系统自动化挂载

/etc/fstab配置文件包含了开机后自动挂载的文件系统记录
注意:挂载点的目录必须是已经创建完成的,否则挂载失败,挂载点同一时间只能挂载一次,分区也只能挂载,系统自带的挂载点尽量不要去修改
![自动挂载配置](https://img-blog.csdnimg.cn/75d1705c5a324fcb8e0ba6738e7ed06d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5bCP6YKxcHVsc2U=,size_20,color_FFFFFF,t_70,g_se,x_16)

十、网络管理

1.ifconfig*

①查看网络接口信息

ifconfig  

②设置网络接口IP地址、子网掩码

ifconfig 接口 ip地址 [netmask 子网掩码]  ifconfig eth0 192.168.1.108 netmask 255.255.255.0
ifconfig 网络接口 IP地址[/掩码长度]

③禁用或重新激活网卡

ifconfig up         ifconfig eth0  up
ifconfig down		ifconfig eth0  down		
设置MAC地址
ifconfig eth0  down		
ifconfig eth0 hw ether 00:01:02:03:04:05
ifconfig eth0  up
IPv6
ifconfig eth0 add 00:01:02:03:04:05

④设置虚拟网络接口

ifconfig 接口名:序号 IP地址

2.netstat*

netstat [op]      查看系统的网络连接情况、路由器、接口统计等
		 op--
		 a:显示所有活动连接
		 n:以数字形式显示
		 p:显示进程信息
		 t:查看TCP协议相关信息
		 u:查看UDP协议相关信息
		 r:查看路由表信息
		 i:显示接口信息

ping IP     					测试网络连通性

traceroute 目标主机地址			测试当前主机到目的主机之间经过的网络节点

3.route*

route [-n]						查看路由表条目

route del default gw IP地址		删除路由表中的默认网关记录	
								eg: route del-net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

route add default gw IP地址		添加路由表中的默认网关记录
								eg: route add default gw 192.168.0.1 eth0
route add -net 网段地址			eg: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0

设置网络参数方式
①临时配置:使用命令调整网络参数(适合在调试过程中使用,系统重启便失效)
②固定配置:通过修改配置文件修改网络参数(需要重载网络服务或重启后才生效)
网络接口配置文件在/etc/sysconfig/network-scripts/目录下——ifcfg-eth0:第一块以太网往卡的配置文件…
主机名称配置文件在/etc/sysconfig/network文件:保存全局网络设置,主要包括主机名信息

vi /etc/sysconfig/network  
内容:NETWORKING=yes
	 NETWORKING_IPV6=no
	 HOSTNAME=qiu

域名解析配置文件在/etc/resolv.conf:配置本机需要使用的DNS服务器的IP地址

vi /etc/resolv.conf
内容:search localdomain
nameserver 202.106.0.20
nameserver 202.106.148.1

十一、进程管理

**引导流程总览**

在这里插入图片描述

ps [aux]   		查看静态的进程统计信息
ps -elf

top				动态查看进程排名信息

终止进程的运行

Ctrl+z
kill -9 pid
killall + 进程名字

十二、编辑工具vi(vim)

在这里插入图片描述

基本操作(命令模式下)

操作类型操作键功能
光标方向移动↑、↓、←、→上、下、左、右
翻页Page Down(Page Up)向下整页翻页(向下)
行内快速跳转Home/^/0(End/$)跳转行首(尾)
行间快速跳转gg/1G(G)(#G)跳转文件首(跳转文件尾)(跳转文件#行)
行号显示:set nu(:set nonu)在编辑器显示行号(取消显示)
删除dd(#dd)(d^)(d$)删除所在行(删除从光标#行内容)(删除光标前的所有字符)(删除光标后的所有字符)
复制yy(#yy)复制整行(复制#行)
粘贴p(P)复制到光标之后(之前)
搜索/word(?word)自上而下搜索字符串"word"
-n(与搜索连用)定位下一个匹配字符串
-N定位上一个匹配字符串
全文替换1,50s/word/Word/g将1到50行word替换成WORD
撤销u可重复操作
撤销U撤销对当前行所有的操作
保存zz保存对当前文件的操作并退出
保存:w filename另存为fliename
基础保存退不讲

这玩意还是有点多,历时几天才结束,希望对你的嵌入式之Linux开启一个好篇章,后续将推出Linux C开发,交叉编译,Uboot 、kernel等Linux博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值