1.ubuntu下格式化U盘
1)首先查看U盘的设备名,此时必须保证U盘已经跟电脑连接,可用下面的命令
sudo fdisk -l
可看出U盘对应的设备为 /dev/sdb1
2)格式化之前一定要umount设备
umount /media/???
3)格式化
sudo mkfs -V -t vfat /dev/sdb1
注:vfat格式的文件系统,最大可存储的文件大小为4G
2.如何在linux中为特定的一个文件,添加自己的编译选项?
可以在Makefile中
CFLAGS_xxxxx.o += -fPIC
3.查看文件的系统信息 stat命令
如 stat filename(dirname....)
find .-type l #查找当前目录下类型为l的文件 l为符号连接
忽略大小写的查找选项是 -i
4.etc/rc.local 里可以写一些启动就执行的程序(进程)
5.安装ubuntu
硬盘一般分为IDE硬盘、SCSI硬盘和SATA硬盘。在Linux中,IDE接口的设备被称为hd,SCSI和SATA接口的设备则被称为sd(本书中如果不作特殊说明,默认将使用SCSI或SATA接口的硬盘)。第1块硬盘被称作sda,第2块被称作sdb……依此类推。Linux规定,一块硬盘上只能存在4个主分区,分别被命名为sda1、sda2、sda3和sda4。逻辑分区则从5开始标识,每多一个逻辑分区,就在末尾的分区号上加1。逻辑分区没有个数限制。
一般来说,每个系统都需要一个主分区来引导。这个分区中存放着引导整个系统所必需的程序和参数。在Windows环境中常说的C盘就是一个主分区,它是硬盘的第一个分区,在Linux下被称为sda1。其后的D、E、F等属于逻辑分区,对应于Linux下的sda5、sda6、sda7……。操作系统主体可以安装在主分区,也可以安装在逻辑分区,但引导程序必须安装在主分区内。
对于Linux系统而言,必须有根分区(root)和交换分区(swap)两个分区。根分区被用来存放系统所必须的文件,被挂载到根目录(/)下;而交换分区则相当于Windows中"虚拟内存"的概念,从某种程度上讲是对物理内存的一种补充,使操作系统在必要的时候可以把硬盘的这个分区当作低速RAM来使用,不用挂载点!本例中还为/home目录单独划分了一个分区,这个目录主要用来存放登录用户的配置和私人文件。
6.重新安装grub
成功地从光盘启动后,就已经做好了修复Grub的准备。现在就开始着手重装这个引导程序,在Linux命令行下依次输入下面这些命令。
grub
find /boot/grub/stage1
root (hdx,y)
setup (hd0)
quit
grub:启动光盘上的Grub程序。如果读者正在使用Ubuntu的话,那么应该使用sudo grub以root身份运行
find /boot/grub/stage1:查找硬盘上的Linux系统将/boot目录存放在哪个硬盘分区中。Grub在安装的时候需要读取这个目录中的相关配置文件
root (hdx,y):指示Linux内核文件所在的硬盘分区(也就是/boot目录所在的分区),将这里的(hdx,y)替换为上一行中查找到的那个分区。注意这个括号中不能存在空格
setup (hd0):在第一块硬盘上安装引导程序Grub
quit:退出Grub程序
提示:Grub对磁盘分区的表示方式和Linux有所不同。Grub并不区分IDE、SCSI抑或是SATA硬盘,所有的硬盘都被表示为"(hd#)"的形式,其中"#"是从0开始编号的。例如(hd0)表示第1块硬盘,(hd1)表示第2块硬盘……依此类推。对于任意一块硬盘(hd#),(hd#,0)、(hd#,1)、(hd#,2)、(hd#,3)依次表示它的4个主分区,而随后的(hd#,4)……则是逻辑分区。例如图2.24中的(hd0,1)表示第1块硬盘的第2个主分区。
7.CFLAGS是环境变量,所以,可以直接在shell定义出这个环境变量,也可以在makefile文件里定义,更可以在命令行中提供。
可以利用命令行进行环境变量的输入,也可以在文件内直接指定环境变量。如果这个CFLAGS的内容在命令行与makefile中并不相同时,以哪个方式输入的为主呢?环境变量取用的规则是这样的:
1. make命令行后面加上的环境变量优先。
2. makefile里指定的环境变量第二。
3. shell原有的环境变量第三。
$@:表示当前的目标(target),因此Makefile中可以这样写 main:main.o
gcc -o $@ main.c
8.git工具基本操作:
git init ;创建git管理,此时会增加一个.git目录
git add *.c ;将*.c文件加入咱存区
git commit -m ‘注释' ;提交到git库里
git commit -a -m '' ;-a选项代替git add
git rm ;删除某个文件
git rm -f ;修改未提交,但放在暂存区的文件
git rm \*~ ;删除当前目录及子目录下的所有~结尾的文件,若没有\ 则不递归删除
git log -p -2 ;-2 表示最近两次提交的, -p 指每次提交内容的差异
git reset HEAD ;取消已经放入暂存区的内容
git checkout 取消文件的修改
/work/froyo/.repo/project.list 所有的git分支
git branch -av ;查看所有分支
git branch -b 分支名 ;创建分支
git checkout -b 分支名 ;创建并转向分支
git fetch nov ;看是否有不同,如果有不同,则需要合并
git rebase nov/froyo-base ;合并分支名字
git checkout nov/master
git checkout 分支名 ;转向当地分支
git push nov HEAD:refs/for/master ;提交到master分支上
9.删掉旧的内核
sudo apt-get remove linux-image-2.6.31-22-generic linux-image-2.6.32-24-generic
sudo update-grub //如果还不行的话,查看是否update的menu.lst,如果是,那可能是首选项是grub.cfg,那么执行下面的命令,重启即可
sudo grub-mkconfig -o /boot/grub/grub.cfg
10. 切换到终端,/etc/init.d/gdm restart
启动一个root的图形化窗口,命令为 $sudo nautilus . ,这样能够删除一些乱符号的文件名字
11. Makefile
如果不用Makefile做文件名,比如用m.linux,也可以用make命令编译,可以这样使用,make -f(--file) m.linux
Makefile中引用其他的makefile, 用include , 其中filename可以有很多文件组成,比如有a.mk b.mk c.makefile d.org, 可以这样,include *.mk c.makefiel d.org, 也可以使用变量的形式代替
在命令前加"-",可以忽略错误继续执行,比如 -rm , -include
VPATH:如果没有设置,则make的时候之后在当前目录搜索所需文件,如果设置了,则会在当前和所设置的文件中进行顺序搜索,当前目录永远是第一搜索目录,比如VPATH=src:eet,目录之间用冒号“:”隔开
vpath 命令有三种格式:
3) vpath 清除所有已经设置了的搜索目录
伪目标: .PHONY来显示的指明一个伪目标, 比如 .PHONY:clean
12.UnicodeEncodeError: 'ascii' codec can't encode characters in position 269-270: ordinal not in range(128)