1、Linux内核与发行版
Linux本身指的是一个操作系统的内核,而内核是无法直接使用的,只有既包括内核又包括一些有用的应用程序的一个集合体,即Linux的发行版才是我们所需要的;
Linux的发行版:Debian(Debian运行起来极其稳定,适合用于服务器)、Gentoo(包含数量众多的软件包)、Ubuntu(Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统)、红帽企业级Linux(第一款面向商业市场的Linux发行版)……
2、GUI和cmdline
人机交互时,常用GUI或cmdline,Windows、Linux中既有GUI又有cmdline,但Windows中常用GUI,Linux中常用cmdline;
GUI:图形用户界面,(Graphical User Interface,又称图形用户接口),是指采用图形方式显示的计算机操作用户界面;
cmdline:命令行,(command line);
3、隐藏文件与非隐藏文件
Windows:文件隐不隐藏是可以通过设置文件属性来实现的。在Windows中查看隐藏文件方法:菜单栏 工具->文件夹选项->查看->显示所有文件;
Linux:隐藏文件以.开头,与文件属性无关。在linux中查看隐藏文件用ls -a命令;
4、绝对路径与相对路径
路径(pathname):用来标识一个文件在文件系统中存储的位置;
如:C:Windows est.c 全路径 pathname
C:Windows 路径 path
test.c 文件名 name
绝对路径:从某一盘符c:开始(Windows)或根目录/开始的路径;
相对路径:相对于现在位置开始的路径;
如:C:Windows11.c
C:Windows22.c
当前在1.c,要去2.c,使用绝对路径:C:Windows22.c
相对路径:../2/2.c
5、Linux常用命令
(1) ls (list,列表):以列表形式把当前文件夹下的所有文件显示出来;
ls -a 显示所有文件(包括隐藏文件)
ls -l 显示文件的详细信息
可以搭配起来使用:ls -al ls -la ls -a -l ls -l -a
(2) cd (change directory,变更目录):切换目录;
cd .. ..表示上一层目录
cd . .表示当前目录
(3) pwd (print work directory,打印工作目录):打印出当前所在目录的绝对路径;
(4) mkdir (make directory,创建文件夹):创建空文件夹;
mkdir -p 级联创建空文件夹
(5) mv (move,移动):在目录间移动文件,重命名文件;
mv 源文件pathname 目的文件pathname
(6) touch:创建空文件;
touch pathname
(7) cp (copy,复制):复制文件,文件夹;
cp 源文件pathname 目的文件pathname
cp -r 复制文件夹
cp -f 强制复制
实际使用时都是用cp -f来复制文件,用cp -rf来复制文件夹
(8) rm (remove,移除):删除文件,文件夹;
rm 文件pathname
rm -r 文件夹pathname
(9) cat:直接在文件夹下显示文件内容,或向文件输入;
(10) rmdir (remove directory,移除文件夹):删除空文件夹;
rmdir与rm -r的区别:rmdir只能删除空文件夹,而rm -r可以删除空文件夹与非空文件夹
(11) ln (link,链接文件):类似于Windows中的快捷方式(实际上快捷方式和它指向的文件是独立的两个文件,都会占用内存);
Linux中有两种连接文件:软链接(符号链接),类似于Windows中的快捷方式;
创建软链接文件:ln -s 源文件名 符号链接文件名
硬链接,实际上和源文件是一模一样的两个东西,每次删除一个文件时,只要它还有其他的硬链接存在,这个文件就不会被真正的删除,
只有把这个文件连同它的全部硬链接都删除了,这个文件才会被真正从硬盘上删除;
创建硬链接文件:ln 源文件名 链接文件名
(12) man:查询man手册,获得帮助信息(退出man手册,按Q键);
man 1 xxx 1表示查询的是Linux命令
man 2 xxx 2表示查询的是Linux api
man 3 xxx 3表示查询的是C库函数
(13) apt-get:在ubuntu中在线安装、卸载软件的程序;
apt-get install xxx 安装
apt-get remove xxx 卸载
为什么需要在线安装软件?
由于Linux操作系统的发行版,内核版本,定制性等等问题造成了在不同的Linux中软件的不兼容性。要在Linux中安装软件很麻烦,装了软件能不能用不一定。
ubuntu解决了这个问题,ubuntu就适合某个发行版(ubuntu14.04)的所有软件做了一个列表,然后用户通过apt-get install的方式安装软件,就会实时连接到
ubuntu的服务器,服务器会根据你的ubuntu版本,给你下载合适的软件来安装。这样确保了软件的兼容性。
6、ls -l显示的详细信息(-rwxrw-rw-)中:一共10个字符,第一个字符表示文件类型,后面9个表示文件权限;
文件类型:- 表示普通文件,即文本文件(.txt)、二进制文件等
d 表示文件夹
l 表示符号链接文件,后面会用->打印出它所指向的文件
s 表示socket文件
p 表示管道文件
7、vi编辑器:Linux中常用的编辑器,另外还有gedit编辑器等,其vim是vi的升级版,后面提到的vi其实都是vim;
(1) vi的使用:vi pathname
(2) vi的命令模式:当vi打开时默认为命令模式,此时键盘上输入的所有东西都被vi当作命令来对待。
vi的输入模式:输入模式用来向文件输入内容。在命令模式中按A或I键则转入输入模式。进入输入模式后,就可以随意按键盘进行输入了。输入完成后如果要保存,要先退
回到命令模式(因为保存也是一种命令),即在输入模式下按ESC键退回到命令模式。
(3) 保存命令: :wq 保存并退出
:w 保存但不退出
:q 不保存退出
:q! 不保存强制退出
:wq! 保存并强制退出
(4) vi的一些命令(均在命令模式下):
/xxx 查找xxx
:num 快速切换到num行
:set nu 显示行号
:set nonu 不显示行号
注:设置永久显示行号,修改vi的配置文件~/.vimrc,在其中输入set nu即可;
dd 删除光标所在行
4dd 删除连续行
nyy 复制,需把光标放在多行的第一行
p 粘贴到光标所在的下一行
8、Linux中的权限表示与管理:
(1) 普通用户与特权用户:
普通用户:一般情况下我们使用的都是普通用户,每个普通用户只能处理自己的文件,不能访问其他用户的文件,更不能随意处理操作系统的文件;
特权用户:系统的管理员,对系统内所有文件具有操作权限;
Windows/Linux中的普通用户可以有很多个,而特权用户在Windows中是Administrator,在Linux中是root;
在Linux中,普通用户不能cd /root,也不能用apt-get install来装软件,……;
使用su可以在不同用户间来回切换:su 用户名;
使用sudo可以不需切换用户而暂时获取root权限;
(2) Linux中的权限:
ls -l显示的详细信息(-rwxr-xrw-)中:一共10个字符,第一个字符表示文件类型,后面9个表示文件权限;
文件类型:- 表示普通文件,即文本文件(.txt)、二进制文件等
d 表示文件夹
l 表示符号链接文件,后面会用->打印出它所指向的文件
s 表示socket文件
p 表示管道文件
权限表示:r 表示可读,w 表示可写,x 表示可执行
如:rwx 可读,可写,可执行
r-x 可读,不可写,可执行
rw- 可读,可写,不可执行
后9个字符,每3个一组,第1组表示文件属主的权限,第2组表示属主所在的组用户的权限,第3组表示其他用户的权限;
9、虚拟机中的Linux上网:
(1) VMWare中网络有三种设置:NAT、桥接(bridged)、Host only(该模式仅主机可上网,虚拟机上不了网);
(2) NAT方式:设置较简单,但不能用在嵌入式开发中。设置步骤如下:
step1:菜单栏中的虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式;
step2:在命令行中输入vi /etc/network/interfaces,打开该文件,将内容编辑如下:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
关键是dhcp处,最后三行可以不要;
step3:在命令行中执行/etc/init.d/networking restart 来重启网卡即可;
(3) 桥接方式:设置较麻烦(相对而言),但可用于嵌入式开发中。设置步骤如下:
step1:菜单栏中的虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择桥接模式;
step2:在菜单栏中的编辑 -> 虚拟网络编辑器,选择桥接到自己Windows中可以上网的网卡上(一般就是Wifi网络或者有线网络);
step3:在命令行中输入vi /etc/network/interfaces,打开该文件,将内容编辑如下:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
address 192.168.1.141
netmask 255.255.255.0
gateway 192.168.1.1
保存并退出。关键是dhcp处,最后三行可以不要;
step4:在命令行中执行/etc/init.d/networking restart 来重启网卡即可;
10、Linux命令补充:这些命令的掌握与否不影响你的一般操作,因此不必可以去背,除非你是搞Linux运维的,但是如果掌握将有助你熟练操作Linux;
(1) find:在文件系统中查找一个文件,但得知道其文件名;
find 大概路径 -name "文件名"
(2) grep:在文本文件中,查找某个词;
grep -nr "要查找的符号" 要查找的目录或文件集合 -n表示在查找结果中显示行号,-r表示使用递归查找
(3) which与whereis:查找一个应用程序(二进制文件)的位置;
which 文件名 只显示二进制文件的路径
whereis 文件名 显示二进制文件的路径,和其源码或man手册位置
(4) uname:查看系统信息;
uname -a
(5) 开机与关机:
shutdown -h now 立即关机
init 0 关机
shutdown -r now 立即重启
reboot 重启
(6) tree与lstree:显示文件和目录由根目录开始的树形结构;
(7) mount与umount:挂载磁盘到文件系统中;
mount -t nfs -o nolock 192.168.1.141:/root/rootfs /mnt 挂载
umount /mnt 卸载
(8) 磁盘空间相关:
df -h 显示已挂载的分区列表
du -h 以人容易识别的方式列出文件或文件夹的大小
(9) 用户管理:
useradd user1 添加一个名为user1的用户
userdel user2 删除一个名为user2的用户
passwd user3 为名为user3的用户设置密码
adduser user4 添加一个名为user4的用户,同时创建宿主目录,用户shell等
注:adduser是一个脚本,而useradd则是一个二进制应用程序。用adduser创建用户时比较麻烦,但是一次设定完所有的信息;
而用useradd创建用户时较简单,但是需要另外设置宿主目录,密码那些信息。
(10) 权限管理:管理系统中文件的权限;
chmod change mode,修改文件权限(常用)
chown change owner,修改属主
chgrp change group,修改文件的组
权限可以使用数字来表示:r 可读 4
w 可写 2
x 可执行 1
- 无权限 0
如:rwxr-xrw-对应756
第1种修改权限的方法:如把权限改为rwxr-xrw-,则修改命令为:chmod 756 文件名
第2种修改权限的方法:在原来的权限基础上进行修改,即增加或减少某项权限。三个组用户的编码依次为:属主 u 属主所在的组 g 其他用户 o
如 :要属主增加可写权限 chmod u+w 文件名
其他用户减少可读权限 chmod o-r 文件名
(11) 文件打包、压缩与解压缩:
tar -czvf dir.tar.gz dir/ 将dir目录打包成dir.tar.gz
tar -cjvf dir.tar.bz2 dir/ 将dir目录打包成dir.tar.bz2
tar -zxvf dir.tar.gz 解压缩dir.tar.gz
tar -jxvf dir.tar.bz2 解压缩dir.tar.bz2
(12) 网络配置命令
ifconfig eth0 192.168.5.19 设置IP地址
ifconfig eth0 up 启动网卡
ifconfig eth0 down 禁用网卡
ifup eth0 启动网卡
ifdown eth0 禁用网卡
ifconfig eth0 192.168.5.19 netmask 255.255.255.0 同时设置IP和子网掩码
(以上所述内容为学习朱老师的嵌入式课程后复习笔记所得,目的是自己复习巩固知识,同时把自己学到的知识分享出来。能力有限,水平一般,如有错误,欢迎指正,谢谢!)
2017-02-24 22:15:52