学习笔记 — 嵌入式基础预科(一) — 零基础学linux

根据自己意向,这个假期在学嵌入式的知识,网课:朱友鹏物联网大讲堂;本篇是零基础学linux的学习笔记:

一、操作系统的基本概念

主流的操作系统:windowsandroidiOSsymbianlinux/unix

  1. Windows与Linux对比
系统 特性
Windows 傻瓜式、好学习
Linux 操作麻烦,学习较难,但免费的、开源,性能、可移植性好
  1. 合适开发方式
    多机开发——虚拟机:开发嵌入式程序,需要linux环境。但是Windows中有许多很好用的软件,如notepad++、SourceInsight,故也需要。
    主流的虚拟机软件有VMWareVirtualBox
  2. 隐藏文件与非隐藏文件
    Windows:文件隐藏与不隐藏通过设置文件属性实现的,可以点击文件,右键属性,选择勾选隐藏选项来设置文件为隐藏文件。
    在Windows中查看隐藏文件方法:菜单栏 工具->文件夹选项->查看->显示所有文件和文件夹
    Linux中:linux中隐藏文件特点是文件名以.开头,跟文件属性无关。
    在linux中查看隐藏文件方法:ls -a命令
  3. 相对路径与绝对路径
    路径:用来标识一个文件在操作系统的文件系统中存储位置。
    绝对路径:从绝对位置开始。譬如Windows中从某一个盘符开始(C:\),linux中从根目录开始。
    相对路径:从当前所在的位置开始。

二、linux基础知识与技能

  1. GUI(图形用户界面)和cmdline(命令行)
名称 全称 意思
GUI grahics user interface 图形用户界面
cmdline command line 命令行
在linux中我们常用命令行,在Windows中常用GUI。
  1. linux常用命令
命令 作用
ls 把当前文件夹下所有文件显示出来
ls -a 显示所有文件,包括隐藏文件
ls -l 以详细信息显示
ls -al(-la)(-l -a)(-a -l) \
命令 作用
cd 用来切换目录

..代表上一层目录,.代表当前目录

命令 作用
pwd 打印出当前的绝对路径
命令 作用
mkdir 创建空文件夹
mkdir -p 级联创建文件夹
命令 作用
mv 在目录间移动文件,重命名文件

mv 源文件pathname 目的文件pathname

命令 作用
touch 创建空文件

touch pathname

命令 作用
cp 复制文件
cp -r 用来复制文件夹
cp -f 强制复制
命令 作用
rm 删除文件
rm -r 删除文件夹

rm 文件pathname; rm -r 文件夹pathname

命令 作用
cat 直接在命令行下显示文件内容
命令 作用
rmdir 删除文件夹
命令 作用
ln 硬连接
ln -s 软连接

软连接(符号连接),等同于windows中快捷方式 模式:ln -s 源文件名 符号连接文件名
硬连接效果类似于硬盘上的一个文件,在文件系统上,看来有好多个文件。每次删除一个文件时,只要他还有其他的硬连接存在,这个文件就不会被真正删除。只有等所有的连接文件都删除掉了,这个文件才会被真正从硬盘上删除。

命令 作用
man 查询man手册,获得帮助信息
man 1 表示查询的是linux命令
man 2 表示查询的是linux api
man 3 表示查询的是C库函数
命令 作用
apt-get 在ubuntu中用来在线安装、卸载软件的程序
  1. linux命令行中一些符号的含义
符号 含义
. 代表当前目录
.. 代表上一层目录,当前目录的父目录
- 代表前一个目录,刚才从哪个目录cd过来
~ 代表当前用户的宿主目录
/ 代表根目录
$ 普通用户的命令行提示符
# root用户的命令行提示符
* 万能匹配符
  1. 扩展知识
    ls -l显示的详细信息中:
    -rw-r–r--
    drwxr-xr-x
    一共10个字符,第一个字符表示文件类型,后面9个字符表示文件权限。
    前三个表示此文件的属主(属主u)对文件的权限;
    中间三个表示此文件属主所在的组(属主所在的组g)对文件的权限;
    最后三个表示其他用户(其他用户o)对文件的权限。
    文件权限
    r代表可读
    w代表可写
    x代表可执行
    文件类型
    - 表示普通文件。普通文件指文本文件和二进制文件。
    d表示文件夹,d是directory的缩写。
    l表示符号连接文件,后面会用->打印出它指向的文件。
    s 表示socket文件。
    p 表示管道文件 pipe。
    权限还可以用数字来表示
    r 可读 4
    w 可写 2
    x 可执行 1
    - 无权限 0
    权限管理
    chmod (change mode)修改文件权限,比较常用,要记得
    chown (change owner,修改属主)
    chgrp (change group,修改文件的组)
    第一种修改权限的方法
    要把权限改成 rwxr–r-- 则对应的编码值为744
    修改命令为:chmod 744 文件名
    第二种修改权限的方法
    在原来的权限基础上进行修改,即增加或减少某权限。
    要属主增加可执行权限 chmod u+x/1 文件名
    其他用户增加可写权限 chmod o+w/2 文件名
    属主所在组用户去掉可执行权限 chmod g-x/1 文件名
  2. 使用技巧
    1、使用shell的Tab键自动补全
    Tab在linux命令行输入中可以自动完成。在linux命令行中使用Tab键会极大提高输入效率
    2、使用shell的历史记录
    shell会记录用户执行命令的历史记录,而我们一般使用命令都会在短时间内集中反复使用只要按下键盘上下箭头按键,就可翻出刚才用过的命令。
  3. 高级命令
命令 作用 方式
find 查找一个文件路径 find 路径 -name “文件名”
grep 在一个文本文件中,查找某个词 grep -nr “要查找的符号” 要查找的目录或文件集合
-n表示查找结果中显示行号,-r表示要递归查找
which 查找一个应用程序(二进制文件)在哪里
whereis 查找一个应用程序(二进制文件)在哪里
区别 which只显示二进制文件的路径,whereis显示二进制文件的路径,和其源码或man手册位置
uname 查看系统信息 uname -a
shutdown -h now 立即关机
init 0 关机
shutdown -r now 立即重启
reboot 重启
tree/lstree 显示文件和目录由根目录开始的树形结构
mount 用来挂载磁盘到文件系统中 mount -t nfs -o nolock 192.168.1.141:/root/rootfs /mnt 挂载
umount 用来卸载磁盘到文件系统中 umount /mnt 卸载
df -h 显示已挂载的分区列表
du -h 列出文件或文件夹的大小
useradd 添加用户 useradd username
userdel 删除用户 userdel username
passwd 为用户设置密码 passwd username
adduser 添加用户 adduser username
adduser和useradd的区别:adduser是一个脚本,而useradd是一个二进制应用程序。
tar -czvf 打包成.tar.gz\ tar -czvf dir.tar.gz dir/
tar -cjvf 打包成.tar.bz2 tar -cjvf dir.tar.bz2 dir/
tar -zxvf 解压缩.tar.gz tar -zxvf dir.tar.gz
tar -jxvf 解压缩.tar.bz2 tar -jxvf dir.tar.bz2
mkfs 格式化文件系统 mkfs /dev/hd1
mkfs -t vfat 32 -F 创建一个FAT32文件系统 mkfs -t vfat 32 -F /dev/hd1
ifconfig eth0 设置IP地址 ifconfig eth0 192.168.1.13
ifconfig eth0 up 启动网卡
ifconfig eth0 down 禁用网卡
ifup eth0 启动网卡
ifdown eth0 禁用网卡
ifconfig eth0 . netmask. 同时设置IP和子网掩码 ifconfig eth0 192.168.1.1 netmask 255.255.255.0

三、编辑器vi的使用

Linux中常用编辑器,自带的最古老的vi。比较好用的vim,gedit。
vi和vim的关系:vim是vi的升级版,推荐使用vim。后面提到vi都是指vim。

  1. 基础使用
    使用vi来打开/创建一个文件vi pathname
    命令模式:当vi打开时默认为命令模式,要转入输入模式,需要按a或者i键。在命令模式下,此时键盘上输入的所有东西都被vi当作命令来对待。
    输入模式:输入模式用来向文件输入内容。输入完成后如果要保存,要先退回到命令模式,按ESC键退回到命令模式。
    注:注意看屏幕左下角,当命令模式时无提示信息或者提示文件名等信息,等处于输入模式时,提示 – INSERT –
    命令模式下如何保存:
命令 作用
:wq 保存并且退出
:w 只保存不退出
:q 不保存退出 (只有在没修改时才能使用)
:q! 不保存强制退出
:wq! 保存并强制退出
  1. 高级使用
  • 查找
    在命令模式下,输入/xxx,就可以查找到xxx

  • 快速切换行
    在命令模式下,输入:num,就可以快速切换到num行

  • 设置显示行号
    在命令模式下,输入:set nu,就可以显示行号
    注:设置不显示行号,命令模式输入:set nonu
    设置永久显示行号,需要修改vi的配置文件。打开vi的配置文件~/.vimrc,在其中输入set nu。

  • 行删除
    命令模式下,先将光标移动到要删除的行,然后输入dd
    如果要删除连续多行,譬如要删除连续的3行,使用3dd

  • 行复制粘贴
    复制:命令模式下,n(行数)yy
    粘贴:命令模式下,p
    细节,复制时要把光标放在多行的第一行,粘贴时实际粘贴到当前光标所在行的下一行。

四、linux中权限表示&管理

普通用户权限受到限制,而特权用户就是root用户。
可以使用su 用户名来在不同用户间切换。譬如要从普通用户切换到root,可以su root,然后输入root的密码即可转入root用户。从root要切换到普通用户gec,则su gec即可。

五、虚拟机上网问题

  1. VMware中虚拟机网络的三种设置
    第一种:桥接(bridged)
    第二种:NAT
    第三种:Host only 。该模式下仅主机可以上网,虚拟机不能上网。
  2. NAT方式设置步骤:
    第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式
    第二步: 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
    第三步:执行/etc/init.d/networking restart 重启网卡
  3. 桥接方式
    第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择桥接模式。
    第二步:桥接到可以上网的网卡。在菜单栏 编辑 -> 虚拟网络编辑器,选择桥接到自己Windows中可以上网的网卡上(一般就是Wifi网络或者有线网络)
    第三步:设置dhcp并重启网卡。
    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
    保存退出。然后命令行执行/etc/init.d/networking restart 重启网卡
  4. 总结
    第一,NAT方式设置上网比较简单,但是不能用在嵌入式开发中。
    第二,桥接方式设置上网较繁琐,但是在嵌入式开发中比较有用。

你可能感兴趣的:(linux,嵌入式,vmware)