资讯详情

Linux学习笔记——1、Basic knowledge

参考鸟哥的Linux私房菜地址:http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php

参考网中人地址:http://www.study-area.org/linux/linuxfr.htm

工具书:《Linux系统最佳实践工具

Linux命令在线速查:https://ganquan.info/linux/

在学习Linux在此之前,我们应该有基本的计算机概论知识。如果我们根本不了解计算机的组成,就很难学好Linux。

Linux入门笔记

路线:1、安装CentOS——2、首次登陆&在线求助-3.权限&目录管理-4&目录管理-5磁盘&文件系统管理(20130117)

学Linux一定要懂硬件吗?

文件系统在Linux它是一个非常重要的概念,就像C语言一样,Linux把所有装置&所有的设备都被视为文件。这是为了减少硬件和OS之间的耦合,所以,不具备硬件知识也能学习Linux,但要学好Linux必须了解硬件知识。

什么东西挂载?

Linux树目录结构(directory tree)来管理&呈现文件系统,硬盘分区通过混合连接到文件目录,这种连接是Linux定义为挂载(mount),也就是说,使用目录作为分区的进入点。

eg:/是Linux我把/和partition1进行mount,而/home与partition2进行mount,虽然/home从逻辑上讲,它们是父目录和子目录之间的关系,但在物理上,它们分别代表partition1&partition2的进入点(代表2个分区)。

1、安装CentOS

1)练习机规划(尤其是分区参数)

(1)硬盘&分区

硬盘(Hard Disk,简称hd)&分区(Partition Table,简称PT):

一个hd可分为多个分区(partition),比如windows有c、d、e盘符,这样做是便于数据的分类管理,同样的linux它也有类似的功能,不同于windows,linux以文件关联设备的形式进行管理。

理解应该分为两部分:(1)计算机可以有多块hd,那么hd在linux以什么形式形式表示?(2)单块hd,linux分区管理的形式是什么?

(2)家用机常见硬盘IDE、SATA两种,以IDE例如,因为一个IDE两个排线可以连接IDE硬盘,一般主板会提供两个IDE因此,两个接口IDE接口==2个IDE排线==4个IDE硬盘。

IDE\Jumper Master Slave
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd
Notice:主板的2个IDE接口区分为Primary&Secondary,每条排线上有两条IDE硬盘区分为Master&Slave。

同样的,SATA硬盘在Linux中简称sd,第一块SATA硬盘就是sda,第二块sdb,vice versa。

(3)hd主要用于存储信息的部分称为磁盘,磁盘的主要部分是磁区(Sector)&磁柱(Cylinder),每个Sector约可容纳512bytes通常每个数据hd的First Sector记录两个重要信息:

(#1)记录区主要启动(Master Boot Record,MBR),启动管理程序的区域一般为446bytes。

(#2)分割表(Partition Table),记录整个hd分割的状态,一般64bytes。

重点来了,PT内部分为四组记录区,每组记录区记录该区域的开始&结束的Cylinder Number,这意味着理论上只能分为四个记录区。

记录区编号 记录区内容 Linux中文文件表示
P1 1~100 /dev/hda1
P2 101~200 /dev/hda2
P3 201~300 /dev/hda3
P4 301~400 /dev/hda4

但实际上,我们可以扩大分区(Extended)建立更多逻辑分区的方法(Logical Partition,简称LP)。

记录区编号 记录区内容 Linux中文文件表示 扩展编号 扩展内容 Linux中的文件表示
P1 1~100 /dev/hda1
P2 101~400 Extended L1 101~160 /dev/hda5
P3 L2 161~220 /dev/hda6
P4 L3 221~280 /dev/hda7
L4 281~340 /dev/hda8
L5 341~400 /dev/hda9
Notice:LP记录信息Extend在开始时,记录区的固定编号是hda1~4.逻辑分区的编号发生了变化,Linux允许IDE的LP编号是hda5~64,SATA的LP编号是sda5~15。

(4)启动过程

(#1)单系统启动流程:启动==>BIOS启动==>BIOS读取MBR==>MBR运行boot loader==>boot loader加载核心文件。

但是,启动管理程序(boot loader)除了安装在MBR上外也可以安装在每个分区boot sector,用于多系统运行。

(#2)多系统启动流程:启动==>BIOS启动==>BIOS读取MBR==>MBR多系统菜单选择分支==>根据不同的分支加载相应的分区boot sector上的boot loader==>boot loader加载核心文件。

Notice:只有主分区(Primary)的First sector有MBR,每次分区First sector是boot sector,boot loader即可安装在MBR(单系统)也可以安装boot sector(多系统),boot loader只承认自己分区的核心文件。

Notice:Windows自动覆盖MBR,假如打算安装Linux&Windows双系统应先安装Windows。

2)开始安装CentOS 5

每个Linux distribution来自官方提供的Linux kernel,因此,不同distribution其实有一定的相通性。CentOS入门的原因是它是目前的顶级Linux distribution的Red Hat克隆版,两者完全兼容。

(1)调整启动媒体(BIOS)

(2)选择安装结构和启动

(3)选择语系数据

(4)磁盘分区

硬盘分割技巧需要正确Linux只有对文件结构有了相当大的了解,才能做出相对完善的规划。因此,建议第一次安装可以使customer选项。如果尝试自己分割,至少请为/(通常不小于5GB)&swap(内存的1.5~2倍)分配足够空间。

(5)引导装载程序、网络、时区设置与root 密码

(6)软件选择

(7)其他功能:RAM testing、安装笔记本电脑的内核参数(Option):linux nofb apm=off acpi=off pci=noacpi

3)安装后的首次设置

http://vbird.dic.ksu.edu.tw/linux_basic/0157installcentos5_3.php#post_install

4)多重引导安装流程与技巧

2、首次登陆&在线求助

1)首次登录系统

(1)首次登录CentOS 5.x 图形界面

Linux是多人多任务OS,它为每一个用户提供了用户目录位于/home下,在进入Linux会看到右上方更新提示,这是yum提供的更新,它对于OS的安全性起着重要作用。(关于yum详见http://baike.baidu.com/view/157053.htm)

(2)GNOME 的操作与注销

(3)KDE 的操作与注销

(4)X Window 与命令行模式的切换

不同于Windows,窗口界面只是Linux中的一款软件,Linux是基于命令行使用的OS,要在X-Window与文本模式进行切换,可按:

[Ctrl] + [Alt] + [F1] ~ [F6] :文本接口登陆 tty1 ~ tty6 终端机;

[Ctrl] + [Alt] + [F7] :X-Window。

(5)在终端界面登录linux

Linux登录模式有两种:一种是纯文本接口(run level3,可使用tty1~6终端界面)的登录环境,另一种是图形接口(run level5,可使用tty1~7终端界面)的登录环境。

Linux提供了7个等级的run level,最常用的就是3、5这两者,默认启动run level5,如果想默认启动run level3可修改/etc/inittab文件。(如果进入了文本模式想启动X-Window,可使用startx命令)

CentOS release 5.3 (Final) 
Kernel 2.6.18-128.el5 on an i686 ##这两行信息来自/etc/issue
localhost login: root
Password: 
[root@localhost ~]$ _ 

2)在命令行模式下执行命令

(1)开始执行命令

(2)基础命令的操作

(#1)基础命令:ls显示当前目录文件列表、date显示日期、cal显示日历、bc计算机

文本模式下与我们交互的程序称为Shell,一般命令格式:

[root@localhost ~]$ command [-options] parameter1 parameter2

试一下第一个命令,输入ls按Enter,就看到了当前目录下的所有文件,如果在末尾加上-al,就会看到输出包括了相关属性&隐藏目录。

Notice:Linux是区分大小写的,date可以输出日期,而Date则会输出错误提示。

(#2)乱码处理

Linux支持多国语言,因此显示中文时如果出现了乱码,可以用以下命令解决:

1.显示当前语言
[root@localhost ~]$ echo $LANG 
zh_CH.UTF-8 
# 上面的意思是说,目前的语系(LANG)为zh_CH.UTF-8,亦即中文简体 
 
2. 修改语言成为英文
[root@localhost ~]$ LANG=en_US 
# 注意到上面的命令中没有空格符,且英文语系为en_US才对喔! 
[root@localhost ~]$ echo $LANG 
en_US 
# 再次确认一下,结果出现,确实是en_US这个英文!

(#3)Linux一共有多少命令

可以通过连按两次Tab查看。以CentOS5.8为基准,已有2911个命令,要背下来谈何容易,因此,还是以理解为基础,用到去查为好。当然一些常用命令必须事先掌握。

命令行下一些基本快捷键(类似Vi):

鼠标框选后按中建 复制
长按ESC松开再按“。” 复制上句命令参数
Ctrl+A 至行首
Ctrl+E 至行末
Ctrl+左右键头 以单词为单位移动光标
Ctrl+U 从光标删至行首
Ctrl+K 从光标删至行末
touch xx 创建名为xx的文本文件
^xx^yy 重新执行上句命令并将参数xx换成yy

(3)重要的热键[Tab], [ctrl]-c,[ctrl]-d

基础热键:Tab命令&文件补全、Ctrl+c中断目前程序、Ctrl-d相当于exit

(4)错误信息的查看

[root@localhost ~]$ DATE 
-bash: DATE: command not found 

bash是shell的名称,Linux的默认壳程序就是bash,后面代表DATE:命令找不到。

对于有一些英语基础的人来说,查看错误信息并非难事,就算遇到读不懂的错误信息也可以借由百度。

3)Linux 系统的在线求助man page 与info page

(1)man page

man命令可以查询其它命令的帮助文档(man page),试着输入man date看看效果,空格键=下翻、q键=退出查看。

帮助文档(man page)第一行可以看到Date(1),括号内1的意思如下,可通过man 7 man查看更详细的说明。

代号 代表内容
1* 使用者在shell环境中可以操作的命令或可运行文件
2 系统核心可呼叫的函数与工具等
3 一些常用的函数(function)与函式库(library),大部分为C的函式库(libc)
4 装置文件的说明,通常在/dev下的文件
5* 配置文件或者是某些文件的格式
6 游戏(games)
7 惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明
8* 系统管理员可用的管理命令
9 跟kernel有关的文件

Notice:其中1、5、8比较重要,必须记下。

通过whatis xxx查看需要命令的介绍,然后通过man 1 xxx查看内容,数字1表示命令所在章节,对应上表代号。

man page结构说明:

代号 内容说明
NAME 简短的命令、数据名称说明
SYNOPSIS 简短的命令下达语法(syntax)简介
DESCRIPTION 较为完整的说明,这部分最好仔细看看!
OPTIONS 针对 SYNOPSIS 部分中,有列举的所有可用的选项说明
COMMANDS 当这个程序(软件)在运行的时候,可以在此程序(软件)中下达的命令
FILES 这个程序或数据所使用或参考或连结到的某些文件
SEE ALSO 可以参考的,跟这个命令或数据有相关的其他说明!
EXAMPLE 一些可以参考的范例
BUGS 是否有相关的臭虫!

man page常用键整理:

/ 当你按下『/』之后,光标就会移动到屏幕的最下面一行, 并等待你输入搜寻的字符串
按键 进行工作
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[Home] 去到第一页
[End] 去到最后一页
/string 向『下』搜寻 string 这个字符串,如果要搜寻 root 的话,就输入 /root
?string 向『上』搜寻 string 这个字符串
n, N 利用 / 或 ? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) ,可以利用 N 来进行『反向』搜寻。举例来说,我以 /root搜寻 root字符串, 那么可以 n 继续往下查询,用 N 往上查询。若以 ?root向上查询 root 字符串, 那我可以用 n 继续『向上』查询,用 N 反向查询。
q 结束这次的 man page

Notice:根据命令查找某些特定的命令或者是修改某些特定的配置文件,man -f date来实现查找。(等价于whatis)

Notice:找出系统的说明文件中,只要有man这个关键词就将该说明列出来,man -k man。(等价于apropos)

Notice:whatis&apropos这两个命令的使用必须建立在创建whatis数据库(以root身份输入makewhatis)。

(2)info page

info是man的网页版,以网络状模式显示帮助文档(info page)。

按键 进行工作
空格键 向下翻一页
[Page Down] 向下翻一页
[Page Up] 向上翻一页
[tab] 在 node 之间移动,有 node 的地方,通常会以 * 显示。
[Enter] 当光标在 node 上面时,按下 Enter 可以进入该 node 。
b 移动光标到该 info 画面当中的第一个 node 处
e 移动光标到该 info 画面当中的最后一个 node 处
n 前往下一个 node 处
p 前往上一个 node 处
u 向上移动一层
s(/) 在 info page 当中进行搜寻
h 显示求助菜单
? 命令一览表
q 结束这次的 info page

(3)其他有用的文件(documents)

man page(man文件位于/usr/share/man中)。

info page(info文件位于/usr/share/info/中)。

/usr/share/doc中的帮助文档。

不同的distribution的帮助文档的目录有些差异,可以通过修改/etc/man.config改善这个问题。

4)超简单文本编辑器:nano(20130118)

文本模式下,如果想查看&编辑某个文件,可以通过nano filename启动这个最简单的文本编辑器(类似Windows的记事本)。

5)正确的关机方法

『who』查看目前登陆的用户,『 netstat -a 』查看网络的联机状态,『 ps -aux 』查看进程运行状态。

(1)数据同步写入磁盘:sync

『sync』将内存中的驻留数据同步到硬盘。

(2)惯用的关机命令:shutdown

(3)重启、关机:reboot,halt,poweroff

『shutdown』『halt』『poweroff』『reboot』,自行通过man查看。

sync;sync;sync;reboot;#进行3次数据同步,然后重启

(4)切换执行等级:init

通过『init』可以进行不同运行等级的切换,run level 0:关机,run level 3:纯文本模式,run level 5:图形接口模式,run level 6:重新启动。

(5)关机命令总结:

init 0
poweroff
shutdown -h now

6)开机过程的问题排解

(1)文件系统错误的问题

启动故障(因为断电或不正常关机所导致的文件系统发生错误、硬盘使用率过高或主机所在环境不良也是一个可能的原因):

方案:根目录无损坏,可通过提示进入系统,如果根目录损毁,通过LiveCD启动系统(或单人维护模式),进入系统后,在文本模式下通过『fsck /dev/sdxN』进行修复。

(2)忘记root密码

方案:先将系统重新启动,在读秒的时候按下任意键,按下『e』进入grub的编辑模式,将光标移动到kernel那一行,再按一次『 e 』进入kernel该行的编辑画面,最后方输入 single,按下『 Enter 』确定之后,按下 b 就可以启动进入单人维护模式。(单人维护模式无需输入密码,且直接是root权限)

 

3、权限&目录管理(20130123)

1)用户与用户组

2)Linux 文件权限概念

(1)文件属性

drwx------   3    root   root     4096   Sep  5 10:37 .gconf      <=范例说明处
drwx------   2    root   root     4096   Sep  5 14:09 .gconfd
-rw-r--r--   1    root   root    42304   Sep  4 18:26 install.log <=范例说明处
-rw-r--r--   1    root   root     5661   Sep  4 18:25 install.log.syslog
[    1   ][  2 ][   3  ][  4 ][    5   ][     6      ][       7        ]
[  权限  ][连结][拥有者][群组][文件容量][  修改日期  ][     文檔名      ]
权限说明:d | rwx | r-x | --x                   1 |   2   |  3  |  4
第1部分
[ d ] 目录,例如上边名为『.gconf』的那一行
[ - ] 文件,例如上边名为『install.log』那一行
[ l ] 连结档(link file),类似快捷方式
[ b ] 设备文件:可供储存的接口设备(可随机存取装置)
[ c ] 设备文件:串行端口设备,例如键盘、鼠标(一次性读取装置)
第2、3、4部分(r-读、w-写、x-执行)
第2部分 文件拥有者的权限,例如:rwx = 读写执行
第3部分 同群组的权限,例如:r-x = 读执行
第4部分 其他非本群组的权限,例如:--x = 执行

Notic:如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。因此,要开放目录给某个群组,最少要给予r、x权限。

(2)如何改变文件属性与权限

(#1)chgrp改变文件所属群组

[root@www ~]# chgrp [-R] dirname/filename ...
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件、目录
     都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
范例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r--  1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 发生错误讯息啰~找不到这个群组名~

(#2)chown改变文件拥有者

[root@www ~]# chown [-R] 账号名称 文件或目录
[root@www ~]# chown [-R] 账号名称:组名 文件或目录
选项与参数:
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都变更

范例:将install.log的拥有者改为bin这个账号:
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

范例:将install.log的拥有者与群组改回为root:
[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

(#3)chmod改变权限 

方式一(直观的字符):

chmod u g o a +(加入) -(除去) =(设定) r w x 文件或目录名
[root@www ~]# ls -al .bashrc
-rwxr-xr-x  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod  a+w  .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc

方式二(抽象的数字):

r:4、w:2、x:1

[-rwxrwx---]

owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others= --- = 0+0+0 = 0

[root@www ~]# ls -al .bashrc
-rw-r--r--  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx  1 root root 395 Jul  4 11:45 .bashrc
[root@www ~]# chmod -R 777 test  ##-R用递归改变文件夹本身和文件夹内其它文件的权限

用mkdir(建立目录)&touch(建立空文件)命令创建一个新文件,尝试一下以上命令。file命令可查看文件类型。

(3)目录与文件的权限意义

(4)Linux 文件种类与扩展名

3)Linux 目录配置

(1)Linux 目录配置标准:FHS

(2)目录树(directory tree)

(3)绝对路径与相对路径

(4)CentOS 的查看

查看当前系统信息命令:cat /etc/redhat-release、lsb_release -a、uname -a

4、文件&目录管理(20130128)

1)目录&路径:

(1)相对路径&绝对路径

(2)目录的相关操作

切换目录:cd,change directory,cd [相对路径or绝对路径]。cd ~,其中“~”代表一个变量,是当前用户的家目录。cd -,其中“-”代表上一次所在目录。

(3)关于执行文件路径的操作:$PATH

用vim xx.sh命令在/root下写一个只有一条#!/bin/bash(换行)date命令的脚本,然后在命令行输入xx.sh,会提示command not found,这是因为命令执行时linux会依次寻找PATH中设置的目录,在PATH中没有/root。

查看环境变量:echo $PATH,然后使用PATH=".../root"将root目录加入环境变量中,再执行xx.sh就会成功显示日期了。

2)文件&目录管理

(1)查看文件与目录:ls

ls -s(查看大小)-sh(以适合人类的方式显示大小)-shd /(不加d表示查看文件夹下属文件的信息,加d表示查看文件夹本身的信息)、du -sh(查看文件夹+里面文件的大小)、ls -R /(R代表递归,会显示根目录下所有文件)、ls -l --time=ctime xx.sh(ctime=create创建时间、atime=access访问时间)

(2)复制、删除与移动:cp、rm、mv,创建&删除文件夹:mkdir、rmdir

cp [source] [destination],cp /etc/service .(“.”代表当前目录,把service拷贝到当前目录)、cp /etc/service /opt/aa(service&aa都不是文件夹,把service拷贝到opt目录下,并重命名aa替换原来的aa)、cp -rf /etc/ /opt(r递归、f强制,强制把etc目录下的所有文件拷贝到opt目录下)、cp -p /etc/service .(p连同源文件属性一同拷贝)、cp -a /etc/ .(a=rfp)。

rm -rf etc/(强制删除etc下所有文件)、rm -rf /etc/(etc前面多一个“/”表示把etc目录删除)。

mv [source] [destination],mv /etc/service /etc/service2(service重命名为service2)、mv /etc/service /opt(service剪切到opt目录下)。

mkdir -p dd/dd1/dd2(创建dd2,如果父文件夹dd1不存在就一起创建,依次类推)、tree以树状结构查看当前目录。

rmdir删除文件夹,但只能删除空目录。删除非空目录还是要用rm -rf(这个命令没有删除不了的东西)、rmdir -p dd/dd1/(删除dd1,如果父目录dd成为空目录就一并删除)。

(3)取得路径的文件名与目录名称

ls /boot/grub/grub.conf显示绝对路径/boot/grub/grub.conf、basename /boot/grub/grub.conf仅显示文件名grub.conf、dirname仅显示路径/boot/grub。

3)文件内容查阅

(1)直接查看文件内容

cat /etc/service(查看service内容,一次显示完)、cat -n /etc/hosts(n同时显示行号)、cat -A /etc/hosts(A用“^I”替代tab打出来的空格)、tac /etc/hosts(倒过来显示内容)、nl /etc/hosts(等同cat -n)、nl -b a /etc/hosts(空行也显示行号)。

(2)可翻页查看

more /root/install.log(分屏显示,但只能向前翻,Enter翻行,Blank翻页)、less /root/install.log(分屏显示,可输入关键字查找位置,n向下查找,N向上查找)、head -n 3 /root/install.log(查看前3行,不写默认前10行,-n可省略直接写数字)、tail(与head类似,查看尾10行)、tail -f install.log(实时查看install变化,可用于查看日志文件)、tailf(等同于tail -f)。

(3)数据选取

(4)非纯文本文件:od

od -t c /bin/ls(以16进制显示该二进制文件)、strings /bin/ls(将二进制文件转换为字符形式显示)。

(5)修改文件时间或创建新文件:touch

touch xx(创建文件xx)、touch hosts(hosts文件已存在,则改变其创建时间为现在)、touch -t 201212210101 xx(改变文件创建时间)。

4)文件&目录的默认权限与隐藏权限

(1)文件默认权限:umask

umask是权限过滤符,eg:umask=022=----w--w-,创建文件时,文件夹默认777=rwxrwxrwx,过滤后rwxr-xr-x,文件默认666=rw-rw-rw-,过滤后rw-r--r--,可以看出并不是单纯的加减运算,而是换算为权限标识符后再进行排除。

(2)文件隐藏属性:chattr、lsattr

lsattr查看文件隐藏属性。

[root@www ~]# chattr [+-=][ASacdistu] 文件或目录名称
选项与参数:
+   :添加某一个特殊参数,其他原本存在参数则不动。
-   :移除某一个特殊参数,其他原本存在参数则不动。
=   :配置一定,且仅有后面接的参数

A  :当配置了 A 这个属性时,若你有存取此文件(或目录)时,他的存取时间 atime
     将不会被修改,可避免I/O较慢的机器过度的存取磁碟。这对速度较慢的计算机有帮助
S  :一般文件是非同步写入磁碟的(原理请参考第五章sync的说明),如果加上 S 这个
     属性时,当你进行任何文件的修改,该更动会『同步』写入磁碟中。
*a  :当配置 a 之后,这个文件将只能添加数据,而不能删除也不能修改数据,只有root 
     才能配置这个属性。 
c  :这个属性配置之后,将会自动的将此文件『压缩』,在读取的时候将会自动解压缩,
     但是在储存的时候,将会先进行压缩后再储存(看来对於大文件似乎蛮有用的!)
d  :当 dump 程序被运行的时候,配置 d 属性将可使该文件(或目录)不会被 dump 备份
*i  :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、配置连结也无法
     写入或新增数据!』对於系统安全性有相当大的助益!只有 root 能配置此属性
s  :当文件配置了 s 属性时,如果这个文件被删除,他将会被完全的移除出这个硬盘
     空间,所以如果误删了,完全无法救回来了喔!
u  :与 s 相反的,当使用 u 来配置文件时,如果该文件被删除了,则数据内容其实还
     存在磁碟中,可以使用来救援该文件喔!
注意:属性配置常见的是 a 与 i 的配置值,而且很多配置值必须要身为 root 才能配置

范例:请尝试到/tmp底下创建文件,并加入 i 的参数,尝试删除看看。
[root@www ~]# cd /tmp
[root@www tmp]# touch attrtest     <==创建一个空文件
[root@www tmp]# chattr +i attrtest <==给予 i 的属性
[root@www tmp]# rm attrtest        <==尝试删除看看
rm: remove write-protected regular empty file `attrtest'? y
rm: cannot remove `attrtest': Operation not permitted  <==操作不许可
# 看到了吗?呼呼!连 root 也没有办法将这个文件删除呢!赶紧解除配置!

范例:请将该文件的 i 属性取消!
[root@www tmp]# chattr -i attrtest

(3)文件特殊权限:SUID、SGID、SBIT

SUID,仅能用在binary program,不能用于shell script,eg:/etc/shadow(存放用户密码)仅root具有可读写权限,passwd(-rws(=SUID)r-xr-x)具有SUID,因此,普通用户可借由passwd对shadow进行写操作,但直接cat shadow是无效的。

SGID是SUID的群组版,它们都有效于binary program(SGID也对目录有效),当被标识为SGID时,非该群组用户执行该binary program,(只要binary program允许)也能对仅该群组用户具有操作权限的文件进行读写操作。

[root@www ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x 1 root slocate   23856 Mar 15  2007 /usr/bin/locate
-rw-r----- 1 root slocate 3175776 Sep 28 04:02 /var/lib/mlocate/mlocate.db

SBIT,对某一目录具有写权限,则能对目录下文件进行删除修改,SBIT限制了对某一目录具有写权限时,仅能对用户自己创建的文件进行删除修改。

chmod可对文件进行特殊权限赋值,chmod 7777,后面3个7不解释了,第一个7代表(SUID-4,SGID-2,SBIT-1)。

(4)查看文件类型:file

5)命令&文件的查询

(1)脚本文件名的查询

http://vbird.dic.ksu.edu.tw/linux_basic/0220filemanager_5.php

(2)文件名的查找

6)权限与命令间的关系(极重要)

5、Linux磁盘&文件系统管理

1)认识EXT2 文件系统

(1)硬盘组成与分区的复习

(2)文件系统特性

(3)Linux 的EXT2 文件系统(inode)

(4)与目录树的关系

(5)EXT2/EXT3 文件的访问与日志文件系统的功能

(6)挂载点(mount point)的意义

(7)其他Linux 支持的文件系统与VFS

2)文件系统的简单操作

(1)磁盘与目录的容量:df, du

(2)连接文件:ln

3)磁盘的分区、格式化、检验与挂载

(1)磁盘分区:fdisk

(2)磁盘格式化

(3)磁盘检验:fsck,badblocks

(4)磁盘挂载与卸载

(5)磁盘参数修改

4)设置开机挂载

(1)开机挂载/etc/fstab 及/etc/mtab

(2)特殊设备loop 挂载(镜像文件不刻录就挂载使用)

5)内存交换空间(swap)的构建

(1)使用物理分区构建swap

(2)使用文件构建swap

(3)swap 使用上的限制

6)文件系统的特殊查看与操作

(1)boot sector 与superblock 的关系

(2)磁盘空间的浪费问题

(3)利用GNU 的parted 进行分区行为

 

一、Linux基础(20130111)

1、Linux简介

Linux是UNIX的一种克隆系统。于1991年10月5日第一次对外公布。借助Internet网络上的爱好者力量逐渐发展。

详细介绍:http://zh.wikipedia.org/wiki/Linux

2、Linux的版本号

可分两类:Kernel(指的是在Linux领导下的开发小组开发出来的系统内核版本号)、Distribution(是由组织或公司开发的以Kernel为基础的作业系统)。

Kernel版本号格式:major(主版本号,结构性变化).minor(次版本号,新增功能,奇数-测试版,偶数-生产版).patch(对minor的修订次数或补丁包)-build(编译或构建的次数,即优化).desc(描述当前版本的特殊信息,有随意性)

desc举例:rc(release candidate)、smp(Symmetric MultiProcessing)、pp(pre-patch)、EL(Enterprise Linux)、fc(Fedora Core)、mm(测试新技术、功能的版本)

3、Linux Distribution的主要版本(所有版本查看网站:www.distrowatch.com)

Red Hat Linux:http://zh.wikipedia.org/wiki/Red_Hat 商业版:Red Hat Enterprise Lnux 社区版:Fedora Core 克隆版:CentOS

Mandriva Linux:http://zh.wikipedia.org/wiki/Mandriva_Linux

Debian Linux:http://zh.wikipedia.org/wiki/Debian_Linux

Ubuntu Linux:http://zh.wikipedia.org/wiki/Ubuntu_Linux

Slackware Linux:http://zh.wikipedia.org/wiki/Slackware_Linux

Suse Linux:http://zh.wikipedia.org/wiki/SUSE_Linux

Gentoo Linux:http://zh.wikipedia.org/wiki/Gentoo_Linux

Xandros Linux:http://zh.wikipedia.org/wiki/Xandros

红旗Linux:http://zh.wikipedia.org/wiki/%E7%B4%85%E6%97%97Linux

CentOS:http://zh.wikipedia.org/wiki/Centos(学习建议使用CentOS)

4、Linux优势

开放性(遵循OSI)、多用户、多任务、图形集成界面、支持广泛的网络协议、支持多种应用程序及开发工具、具有内核编程接口、可移植性、标准兼容性、安全性

二、Linux的文件系统

Linux应用程序、库文件、系统文件和用户文件都驻留在文件系统上,因此了解文件系统是全面掌握Linux的基础。在Linux中,所有内容被表示为文件,组织文件的各种方法便被称为不同的文件系统。Linux支持多文件系统,使之能够与不同的操作环境实现资源共享,这也是Linux作为网络OS的明显优势。

1、什么是文件系统

文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于存在着多种类型的文件形式,Linux使用分层的体系结构实现这一接口,以隔开接口层、文件系统和底层驱动。

  用户接口   用户空间
  GUN C库  
  系统接口   内核空间
节点缓存 VFS 目录缓存
  个体文件系统  
  缓存区缓存  
  设备驱动  

用户空间包含一些应用程序(例如,文件系统的使用者)和GNU C库(gclib),他们为温ianxitong调用(打开、读取、写和关闭)提供用户接口。系统调用接口的作用就像是交换机,它将系统调用从用户控件发送到内核空间中适的当端点。

VFS是底层文件系统的主要接口。这个组件导出一组接口,然后将他们抽象到各个文件系统,各个文件系统的行为可能差异很大。有两个针对文件系统对象的缓存(inode&dentry)。他们缓存最近使用过的文件系统对象。每个个体文件系统实现(比如ext2、JFS等)导出一组通用接口,供VFS使用。缓冲区缓存会缓存文件系统和相关块设备之间的请求,减少访问物理设备的次数,加快访问速度。以最近使用(LRU)列表的形式管理缓冲区缓存。注意,可以使用sync命令将缓冲区缓存中的请求发送到存储媒体(迫使所有未写的数据发送到设备驱动程序,进而发送到存储设备)。

相关术语:

挂载(mount):将一个文件系统和一个存储设备关联起来的过程。

块设备:以块(比如磁盘扇区)为单位收发数据的设备,它们支持缓冲和随机访问(不必顺序读取)。

2、Linux文件系统结构(20130113)

Linux的文件系统采用阶层式树状目录结构,最上层是“/”,然后在下边创建其他目录。(Linux允许开发者修改OS,为了避免造成目录混乱的局面,而规定了一套规范,Filesystem Hierarchy Standard,FHS,www.pathname.com/fhs/)

接口设备文件,如hda。

/ Linux系统根目录,也是出于最高一级的目录。
/bin Binary的缩写,基础(最小)系统所需要的命令均存放于此,此文件夹中存放的都是可执行命令,和/usr/bin类似。
/boot 包含wmlinuz,initrd.img等启动文件,一般情况下,GRUB或LILO系统引导管理器也位于这个目录。
/dev 所有硬件设备都在此目录下
/etc 系统配置文件的所在地,服务器配置文件也在此,比如账户密码的配置文件。
/home 一般用户的主目录,如FTP目录等。
/lib 库文件存放目录,包括执行/bin和/sbin目录的二进制文件时所需要的共享函数库。
/mnt 各项装置的文件系统的加载点,例如:/mnt/cdrom是光驱的加载点。
/opt 表示可选择的意思,有些软件包(比如自定义软件包)会安装在这里。
/proc OS运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。
/root 管理员的主目录
/sbin 大多数涉及系统管理命令的存放地,也是超级用户root的可执行命令的存放地。与/usr/sbin、/usr/X11R6/sbin或/usr/local/sbin相似。
/tmp Temporary,存放暂存盘的目录。
/usr 系统存放程序的目录,比如命令、帮助文件等。当安装一个Linux Distribution官方提供的软件包时,多是安装于此。
/var 这个目录的内容是经常变动的,可理解为vary的缩写,/var/log存放系统日志,/var/www是定义Apache服务器站点存放目录,/var/lib存放一些比如MySQL的库文件。

比较重要的子目录:/etc、/usr、/var、/proc(时间充裕可额外了解)。

3、Linux文件系统的组成

在Linux系统内部,一个文件系统是由逻辑块的序列组成的,每块为512个字节。

引导块(存在于开头的扇区,用于读入并启动OS) 超级块(记录文件系统的当前状态) 索引节点区(Linux系统中每个文件和目录都占据一个索引节点) 数据区(文件数据&用于文件管理的数据)

4、文件类型

5种基本的文件类型:

1)普通文件(又分text file&binary file)

一般的文档和程序都属于此类,包括:图片、影像、声音等。

2)目录文件

设计目录文件的主要目的是用于管理&组织系统中的大量文件。Linux把目录看成是文件,称为目录文件。目录是由OS用于形成文件系统树状结构的一个节点单位。目录文件里包含普通文件和下一级的目录,并且包含指向下属文件和子目录的指针。

C语言中,经常使用指针编程,同样,Linux也是通过对地址的指针寻址来实现其对目录和文件的管理。当用mv命令对存在于当前目录中的一个文件重新命名时,所做的事只是改变该文件在目录文件中的说明。如果把一个文件从一个目录移动到另一个目录中,所做的事只是改变文件在目录文件中的指针地址。实际上Linux通过读取索引节点表来检测这种行为,而文件只是被赋予了一个新的索引节点而已。同样,当用rm命令删除文件时,Hnux标记该索引节点时自由的,并把它放回可供使用的空闲索引节点表中。在此,还将简单介绍子目录与父目录的关系:如果一个目录是包含在另一个目录下的,则这个目录就是它上一级目录的子目录,对应地,上一级目录就是这个目录的父目录。

3)链接文件

Hard Link是通过索引节点来进行的链接。在Linux的文件系统中,保存在磁盘分区中的文件,不管是什么类型,都给它分配一个编号,称为inode index。在Linux中,多个文件名指向同一个inode index是存在的。这种链接一般就是Hard Link。其作用那个是允许一个文件拥有堕恶有效路径名,这样用户就可以建立Hard Link到重要文件,以防止“误删”。只有当最后一个链接被删除后,文件的数据块及目录的链接才会被释放。Hard Link可实现文件共享。

Symbilc Link又称软链接,是特殊文件的一种。

4)设备文件

Linux把每一个I/O设备看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。从用户角度,对I/O设备的使用和一般文件的使用一样,不必了解I/O设备的细节。设备文件可以细化为块设备文件(存取以字符块为单位)和字符设备文件(以单个字符为单位)。

5)管道文件

源自UNIX,管道是通过通常的IO接口存取的字节流。管道文件是一种特殊文件,主要用于不同进程间的信息传递。通常管道建立在调整缓存中。

5、文件系统的特性

Linux文件系统的特性决定文件的属性,比如我们通过chattr+i来避免某个文件被改动,通过chattr+i来改其为只读文件,在ext2&ext3下是可以的,但在ReiserFS下不起任何作用。不同的文件系统有不同的特性,这种特性往往决定着文件系统文件和目录的属性。每个文件系统都有一系列的工具,包括创建、修复、备份等。

6、Linux主流文件格式

文件系统指文件存在的物理空间。在Linux中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux的重要特征之一(Virtual File System)就是支持多种文件系统。

1)ext

ext是第一个专门开发的Linux文件系统类型,由于其在稳定性、速度和兼容性上存在许多缺陷,现在很少使用。

2)ext2

ext2是为解决ext缺陷而设计的可扩展的、高性能的文件系统,在速度和CPU利用率上较为突出,是GNU/Linux系统中标准的文件系统。ext2支持256字节的长文件名,其单一文件大小和文件系统本身的容量上限与文件系统本身的簇大小有关。在常见的Intel x86兼容处理器的系统中,簇最大为4KB,单一文件大小上限为2048GB,而文件系统的容量上限为6384GB。缺陷:设计者主要考虑性能方面的问题,而在写入文件内容的同时,并没有写入文件的meta-data(和文件有关的信息,例如权限、所有者及创建和访问时间),等到系统空闲时才进行此操作。换句话说,如果在写入内容后,系统断电,meta-data没有写入,就可能造成文件系统处于不一致的状态。因此,尽管文件系统的容量上限是6384GB,但实际上能用的文件系统容量最大也只有2048GB。

(补充知识:日志式文件系统起源于Oracle、Sybase等大型DB。数据库操作往往是由多个相关的、相互依赖的子操作组成的,任何一个子操作的失败都意味着整个操作的无效性,对DB数据的任何修改都要恢复到操作以前的状态。Linux日志式文件系统就是由此发展而来的。它通过增加一个叫做日志的、新的数据结构来解决这个“fsck”问题。这个日志是位于磁盘上的结构。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,所以日志文件具有可伸缩性和健壮性。在分区中保存日志记录文件的好处是:文件系统写操作首先是对记录文件进行操作,若整个些操作由于某种原因(断电等)而中断,则在下次系统启动时就会读日志记录文件的内容,恢复到没有完成的写操作,这个过程一般只需要两三分钟。)

3)ext3

ext3是由开放资源社区开发的日志文件系统,在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性,日志式文件系统的优越性在于由于文件系统都有快取层参与运作,不使用时必须将文件系统卸下,以便将快取层的资料写回磁盘中。因此,每当系统要关机时,必须将其所有的文件系统全部卸下后才能关机。然而,这个过程是相当耗时的,由于ext3基于ext2的代码,所以它的磁盘格式和ext2的相同,这意味着一个干净卸载的ext3文件系统可以作为ext2文件系统毫无问题地重新挂载。缺陷:没有现代文件系统所具有的、能提高文件数据处理速度和解压的高性能。

4)JFS

JFS是一种提供日志的字节级文件系统。该文件系统主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计、开发的。JFS是为面向事务的高性能系统而开发的。在IBM的AIX系统上,JFS已经过较长时间的测试,结果表明它是可靠、快速和容易使用的。JFS也是一个有大量用户安装使用的企业级文件系统,与非日志文件系统相比,它突出的优点是快速重启能力,JFS能在几秒或几分钟内就把文件系统恢复到一致状态。它还可以用于想得到高性能和可靠性的客户机配置,因为在系统崩溃时JFS能提供快速文件系统重启时间,所以它是Intelnet文件服务器的关键技术。非日志式文件系统可能要花几小时or几天进行恢复。缺陷:性能上会有一定损失,系统资源占用的比例也偏高,因为当它保存一个日志时,系统需要写许多数据。

5)ReiserFS

ReiserFS的开发者相信最好的文件系统是能够有助于创建独立的共享环境或命名空间的文件系统,应用程序可以在其中更直接、有效和有力地相互作用。FeiserFS使用了特殊的、优化的平衡树(每个文件系统一个)来组织所有的文件系统数据,这为其自身提供了非常不错的性能改进,也能够减轻文件系统设计上的人为约束。另一个使用平衡树的好处就是,ReiserFS能够像其他大多数的下一代文件系统一样,根据需要动态地分配索引节。传统UNIX文件系统是按磁盘块来进行空间分配的,对于目录和文件等的查找使用了简单的线性查找,但随着磁盘容量的增大和应用需要的增加,存储效率、速度和功能上显得落后。缺陷:ReiserFS版本升级需要格式化磁盘,且安全性和稳定性与ext3相比有一定的差距。如果创建一个超过768字符的文件目录,并使用ls或其他echo命令,可能导致系统挂起。

6)XFS

XFS是一种非常优秀的日志文件系统,作为一个64位文件系统,支持大数量的文件(9000*1GB),可在大型2D和3D数据方面提供显著性能。XFS有能力预测其他文件系统薄弱环节,同时可在不妨碍性能的情况下增强可靠性和快速的事故恢复。XFS被设计成可升级的,以面对大多数的存储容量和I/O存储需求。XFS有能力动态地位文件分配索引空间,使系统形成高效支持大数量文件的能力。XFS可以很好地满足I/O请求的大小和并发I/O请求的数量。XFS可作为root文件系统,并被LILO支持,也可以在NFS服务器上使用,并支持RAID和LVM。由于XFS比较复杂,实施起来有一些难度,所以目前主要应用于Linux企业应用的高端。

7)其他文件系统

Minix、Xia、ISO 9660、NFS、SysV、UMSDOS、MSDOS、VFAT、HPFT、SMB、NCPFS、NTFS。

7、查看文件相关命令

1)ls

-a 列出目录下的所有文件,包括以“.”开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就像在C中一样)的形式列出。
-c 输出文件的i节点的修改时间,并以此排序。

2)cat

3)rm

4)less

5)cp

6)mv

7)grep

8)head

9)tail

10)sort

11)uniq

12)diff

13)diffstat

14)file

15)echo

16)date

17)script

18)apropos

19)locate

20)rmdir

21)basename

22)chattr

23)cksum

24)cmp

25)split

26)dirname

27)find

28)findfs

29)ln

30)lndir

31)lsattr

32)od

33)paste

34)stat

35)tee

36)tmpwatch

37)touch

38)tree

39)umask

40)chmod

41)chgrp

42)chown

三、Linux磁盘管理及其相关命令(20130115)

1、硬盘相关的概念

1)简介

Hard Disk使用磁介质来存储数据,所以又称“磁盘”。由于它的盘基由硬金属制成,与尼龙软基的软盘相对,所以叫Hard Disk。1956年9月,IBM的一个工程小组展示了第一台磁盘存储系统IBM 350 RAMAC。1973年,IBM又发明了Winchester硬盘,其特点是工作时磁头悬浮在高速转动的盘片上方,而不与盘片直接接触,这便是现代Hard Disk的原型。

2)组成

一般来说,无论哪种Hard Disk,都是由盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等部件组成的。所有盘片都固定在一个旋转轴上这个轴即盘片主轴。而所有盘片之间是绝对平行的。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离比头发丝的直径还小。所有的磁头连在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向动作,而盘片以每分钟数千转到上万转的速度在高速旋转,这样磁头就能对盘片上的指定位置进行数据的读/写操作。

3)外部结构

目前市场上常见的Hard Disk没有元器件的一面贴有产品标签,俗称正面。标签上面标有生产厂家、转速、容量、工作电压等信息。另一面从外观上看,具有金属外壳,裸露着控制芯片、电阻等电子元件,这样裸露的原因是有利于散热。

(1)接口包含电源接口和数据接口(数据接口根据连接方式不同分IDE、SCSI、SATA)。

(2)控制电路板大多采用贴片式元件焊接,包括主轴调速电路、磁头驱动与伺服定位电路、读/写电路、控制与接口电路等。在电路板上还有一块高校的单片机ROM,其固化的软件可进行硬盘的初始化、加电、启动主轴电机、加电初始寻道、定位及故障检测等。在电路板上还安装有容量不等的高速缓存芯片。

(3)固定盖板标有产品的型号、产地、设置数据等,和底板结合成一个密封的整体,保证硬盘盘片和机构的稳定运行。固定盖板和盘体侧面还设有安装孔,以方便安装。

4)内部结构

主要由固定面板、控制电路板、盘头组建、接口及附件等几大部分组成。盘头组建(Hard Disk Assembly,HAD)是构成硬盘的核心,封装在硬盘的净化腔内,包括浮动磁头组件、磁头驱动机构、盘片及主轴驱动机构、前置读/写控制电路等。

(1)浮动磁头组件

浮动磁头组件由I/O磁头、传动杆和传动轴三部分组成。磁头是硬盘技术中最重要和最关键的一环,实际上是集成工艺制成的多个磁头的组合,它采用了非接触式结构,加电后在高速旋转的磁盘表面飞行,飞高间隙只有0.1~0.3um,可以获得极高的数据传输率。现在转速为5400r/min的硬盘飞高间隙低于0.3um,以利于读取较大的高信噪比信号,提供数据传输存储的可靠性。

(2)磁头驱动机构

磁头驱动机构由音圈电机和磁头驱动小车组成。新型大容量硬盘还具有高效的防震动机构。高精度的轻型磁头驱动机构能够对磁头进行正确的驱动和定位,并在很短的时间内精确定位系统指令指定的磁道,保证数据读写的可靠性。磁头机构的电机有步进电机、力矩电机和音圈电机三种,前两种应用在低容量磁盘中,现已被淘汰,大容量磁盘多采用音圈电机驱动。音圈是中间插有与磁头相连的磁棒的线圈,当电流通过线圈时,磁棒会发生位移,进而驱动装载磁头的小车,并根据控制器在盘面上磁头位置的信息编码来得到磁头移动的距离,达到准确定位的目的。音圈电机是密封型的控制系统,能够自动调整,速度比早期的驱动电机快,而且安全系数高。

(3)盘片和主轴组件

盘片是硬盘存储数据的载体,现在的盘片大都采用金属薄膜磁盘,与软盘的不连续颗粒载体相比,这种金属薄膜具有更高的记忆密度,同时还具有高剩磁和高矫顽力的特点。主轴组件包括主轴部件(如轴瓦)和驱动电机等。随着磁盘容量的扩大,主轴电机的速度也不断提升,导致了传统滚珠轴承电机磨损加剧、温度升高、噪声增大的弊病,对速度的提高带来了负面影响,因而生产厂商开始采用精密机械工业的液态轴承电机技术。液态轴承电机使用黏膜液态轴承,以油膜代替滚珠可以避免金属面的直接摩擦,使噪声和温度减小到最低。而油膜具有有效吸收震动的能力,可以提高主轴的抗震能力。从理论上讲,液态轴承电机无磨损,寿命无限长,是目前超高速硬盘的发展趋势。

(4)前置控制电路

前置控制电路用于控制磁头感应的信号、主轴电机调速、磁头驱动和伺服定位等。由于磁头读取的信号微弱,将放大电路密封在腔体内可减少外来信号的干扰,提高操作指令的准确性。

2、硬盘的性能指标

1)转速

是一分钟内的旋转圈数,主流的IDE硬盘又5400r/min和7200r/min两种,不过低端市场5400r/min的硬盘仍以其高性价比占主要位置。现在10000r/min的硬盘市场上也有了。

2)平均寻道时间

是磁头移动到数据所在磁道时所用的时间,单位为ms。现在的硬盘完成数据搜索的时间只需要11ms,所以一般应该选择平均寻道时间低于9ms的产品。

3)反应时间

是完成第一次转轮旋转的时间,它是反映非曲直硬盘转速最直接的一个性能指标。5400r/ms的硬盘拥有5.55ms的反应时间,7200r/ms则是4.17ms。

<

标签: 贴片电阻b7

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台