操作系统的基本概念:windows Linux andriod ios symbian unix/linux(其实C语言就是为了写Linux而产生的)
win:傻瓜式,好学习,工资低
Linux:操作麻烦,学习难,免费,开源,性能好,可移植性好
Andriod:移到操作系统,基于Linux
ios:很优秀,创造性,走钢丝
嵌入式操作系统:Linux+winCE
当前:消费电子Andriod,工业Linux
多机开发:双系统与虚拟机
开发嵌入式系统需要Linux系统,但是win下有很多好用的软件,比如notepad sourceInsight
所以也需要win,在即需要win又需要Linux的时候可以
1)使用双系统 不方便,使用不需要频繁切换操作系统的情况
2)使用虚拟机 方便,损失性能
3)两台电脑 不方便
现实中:1 个人开发者 虚拟机
2 公司 服务器+客户端
搭建开发环境:
虚拟机软件+Linux系统
虚拟机软件:就是一个单纯的在win中运行的软件,现在主要就是vmware和vitualBox,
它运行后模拟出来一个电脑,可以在其中安装任何系统
虚拟机上网:
网络连接3种模式
1)桥接模式(bridge)
菜单->设置->网络->桥接模式
菜单->编辑->虚拟网络编辑器->桥接到(wireless无线网卡 realleak..有线网卡)要根据实体机来选择
设置dhcp并重启网卡(同下vi编辑的内容,要保证inet是dhcp) /etc/init.d/networking restart
2)NAT模式:菜单->设置->网络->NAT模式
vi /etc/network/interface
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
然后重启网卡 /etc/init.d/networking restart
可以通过ping命令测试网络是否通了
3)host only独立主机,不能实现虚拟机上网,仅主机可以上网
nat连接比较简单,但是虚拟机和主机不在同一网段,虚拟机相当于真机的一个软件,不能做嵌入式开发
bridge连接稍复杂,但是虚拟机和本机在统一网段,相当于是这个网络里的另一台主机,可以做嵌入式开发
隐藏与非隐藏文件:
win下的文件隐藏与不隐藏是通过设置文件属性来实现的,右键->属性->设置隐藏属性
在win中显示隐藏属性的文件或者文件夹:工具->文件夹选项->查看->显示所有
Linux下,以.开头的文件是隐藏文件,跟文件属性无关
要查看隐藏文件,使用ls -a
Linux中一些符号的含义:
. 代表当前目录
.. 代表上级目录
- 代表前一个目录,你进入当前目录的目录
/ 代表根目录
~ 代表用户的家目录,普通用户的在/home/uname下 root用户的在 /root下
$ 普通用户的命令提示符
# root用户的命令提示符
* 万能通配符
文件类型的标记:(ls -l 显示的详细信息解析:)
-rw-r--r-- 2 nj staff 10B 2 4 19:20 a.txt
第一个字段共10个字符 第一个表示文件类型,后边9个表示文件权限
文件类型 -表示普通文件,包括二进制文件和文本文件
d表示目录文件
l表示符号链接文件 ln -s创建的文件 ln创建的硬连接文件是-普通文件
s表示一个socket文件
p表示管道文件
1 相对路径和绝对路径
路径:用来标识资源在文件系统中的存储位置
全路径:/user/uname/www/test.php (pathname)
路径:/user/uname/www (path)
文件名:test.php (filename)
绝对路径:从绝对路径开始的,/user/uname/www/test.php
相对路径:从当前位置开始的路径,比如当前在 /user/uname/www/test2.php 那test.php 就是在./test.php
win下的绝对路径是从盘符开始的,Linux下的绝对路径是从根 / 开始的
2 常用命令:
ls(list,显示文件列表)
ls -a 显示所有文件,包括隐藏文件
ls -l 显示文件详细信息
ls -lah 显示所有文件,及详细信息,用比较合适的单位
cd (change directory):切换所在目录
. 代表当前目录 ..代表上级目录
pwd:打印当前所在路径
mkdir:创建一个空的文件夹
mkdir -p:创建多级文件夹
mv:移到文件,可以同时重命名
mv srcpathname dstpathname
cp复制文件
cp srcpathname dstpathname
cp -r 复制文件夹
cp -f 强制复制
ln (link):建立一个软连接
win下的快捷方式,两个都占有硬盘空间,是两个独立空间
Linux中有2种连接方式,一种叫软连接(符号连接),效果等同于win下的快捷方式,但不是一回事儿
建立软连接:ln -s src dst 建立出来的文件属性是l ,比如 ln -s a.txt b.txt
lrwxr-xr-x 1 nj staff 13B 2 4 19:13 a.txt -> b.txt
一种叫硬链接,硬链接的源文件被删除,不会影响目标文件,但不同于copy,copy是两个独立的文件
硬链接是同一个文件,修改就会改变所有的基于同一个文件的连接
创建 ln a.txt b.txt
文件权限:
剩下的9个可以分成3组
前3个表示文件的所有者对文件的权限
中间3个表示所有者所在组的文件权限
最后3个表示其它用户对于该文件的权限
r(read)可读
w(write)可写
x(execute)可执行
eg:rwx表示可读可写可执行 r-x表示可读可执行不可写
rm(remove去除,删除):用来删除文件或者文件夹
rm 文件 :删除文件
rm -r 文件夹 :删除文件夹
rm -rf 文件/文件夹 :强制删除文件或文件夹(与不加-f的返回值不同,加上-f文件不存在会返回成功,不加会返回失败)
cat:直接在命令行显示文件内容,也可以向文件输入内容
cat a.txt > b.txt 直接覆盖
cat a.txt >> b.txt 追加
rmdir:删除一个空的文件夹
man 1 ls : man 1 表示查看命令的使用
man 2 .. : man 2 表示查看Linux的api
man 3 .. : man 3 表示查询的是C的函数
不记得1 2 3表示什么时,直接man ...也可以
find:查找文件所在地方
1)什么时候用?知道要查找的文件名,不记得文件路径时
2)怎么使用?find /etc -name test
3)完全不知道在哪个目录时,把目录指定为根 find / -name test
grep 查找文件内容
grep char -nr dir 在dir中递归查找char字符,并显示出该字符出现的行号
which和whereis
which查找应用程序,只显示二进制文件
whereis显示二进制文件的路径 源码或man手册的位置
sudo:暂时获得root用户的权限,不用进行用户的切换
文件的打包与压缩:
tar -cxvf dir.tar.gz dir/ 将dir目录打包成dir.tar.gz
tar -cjvf dir.tar.bz2 dir/ 将目录打包成dir.tar.bz2
tar -zxvf dir.tar.gz 将压缩包解压
tar -jxvf dir.tar.bz2 将压缩包解压
格式化文件系统
mkfs /dev/hd1
mkfs -t vfat -F /dev/hd1 创建一个FAT32文件系统
网络配置命令
ifconfig eth0 192.168.1.13 设置ip地址
ifconfig eth0 up 启用网卡
ifconfig eth0 down 禁用网卡
ifup eth0 启用网卡
ifdown eth0 禁用网卡
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 同时设置ip和子网掩码
mount/umount实现文件的挂载
eg:mount -t nfs -o nolock 192.168.15.130:/home/nj/www /mnt
将服务器目录/home/nj/www挂载到本地 /mnt
umount /mnt 卸载挂载目录
df:显示磁盘空间信息 df -h
du:显示文件及其大小
搭建tftp和nfs服务器,用到的时候再具体查,用的不多
sed | awk
实现正则匹配+替换
vi和vim的关系:
编辑器?就以一个用来编辑文件的软件,win下自带的是notepad,常用的有notepad++,sublime...
Linux下自带的是vi,常用的vim,gedit等
vim就是vi的升级版,推荐使用vim
3 vi的两种工作模式:
1)命令行模式:输入相应的命令去做对应的事 :wq退出 :q!不保存退出 :w保存不退出 :q退出
2)输入模式:就是正常的编辑文件,输入模式按esc键回到命令模式,命令模式按v切换到视图模式
3)视图模式:方便多行操作
4 vi的高级使用
查找: /var (command模式)
快速切换行: :line (command模式)
设置显示行: :set nu (command模式)
不显示行: :set nonu (command模式)
行删除: dd (command模式)
行复制和粘贴: yy p(多行复制和粘贴 visual模式)
4 Linux的系统版本:
Linux本身指的是操作系统的核心部分,也就是Linux内核
ubutun centos等Linux的发行版指的Linux内核+特定的软件
5 GUI(图形用户界面)和cmdline(命令行)
GUI:graphics user interface 图形用户界面
cmdline:command line命令行
人机交互:人和计算机进行交互
win和Linux都会同时有GUI和命令行,但win下常用GUI,Linux下常用命令行
用户管理
useradd test 添加用户test
userdel test 删除用户test
passwd test 修改passwd的秘密
可以使用su 用户名 切换不同用户
uname查找系统信息
uname -a显示所有信息
chmod 修改文件权限
chown 修改文件所有者
chgrp 修改文件所属组
eg:在原来权限的基础上修改,即增加或减少某权限
chmod u+x 文件名 给属主用户增加可执行权限
chmod u-x 文件名 减掉可执行权限
apt-get Ubuntu中在线安装或者卸载软件的工具
apt-get install 软件名 安装软件
linux 发行版本比较多,软件在个版本中兼容性不是特别好
使用apt-get解决了不兼容问题,它是实时连接到ubutun服务器去下载软件
开关机
shutdown -h now 立即关机
init 0 关机
shutdown -r now 立即重启
reboot 重启