最近开始了嵌入式在LINUX下的学习,作为了一个初学者,还是意料之中的遇到了很多问题,针对这些问题我自己在网上找了些资料,并且给出了自己的想法!
怎么在虚拟机上安装LINUX这个还是很简单的,网上找资料也是一大把,我是在VM上装的,感觉过程还是比较容易,只是要等个40分钟左右,这不能算是一个问题。(我用到的LINUX版本是UBUNTU 10.04)
在装好LINUX之后涉及到了一些更新:
【语言文字包的更新】
更新完之后就可以设置为汉字(简),由于我是在UBUNTU安装的时候就选定了为简体中文这里就省了。在system下system manage选择language support 下载更新,等待它下载完毕之后,重新启动UBUNTU之后就是中文的界面了。不过还来我遇到了“无法汉字输入的情况”后来可能是输入法“拼音”图标下选择py(m17n),设置完毕之后,你想输入简体就简体,繁体就繁体,很给力呀!
【Linux指令】
相比于Windows的图形界面,Linux在操作起来还是比较逊色的;不过Linux自有其好处(小巧稳定....)。要想更快捷、更熟练的使用Linux的话,就不得不掌握好更多更多的指令,必须的呀!(当你用一条条应接不暇的指令在"终端"中对文件进行随心所遇的操作时,我只想说:这种感觉真好!)
前几天在taobao上面闲逛,发现了一宝贝--鸟哥的Linux私房菜;好像人气很高呀!是个台湾同胞写的,很详细很用心,是本不错的Linux入门书,可是为什么叫"鸟哥",表示费解!为了明天更美好,我已经开始着手看了...
【重定向、管道】
重定向:
先说说文件描述符,分为三种:标准的输入(像键盘);标准的输出(像显示器);标准错误,不是很懂?(我估计是在程序的测试或运行中出现的已被预料会出现的错误吧~)
系统默认的输入输出都是接到标准的I/O,如果你想要让输入输出到指定的文件当中去的时候--需"重定向"。如果我想把输入输出的信息重定向到文件file1中,在"终端"(应用程序--附件--终端)操作如下:
ls > file1 (回车,下面就省了,每次输入条指令就回车下;不想多写)
或者 ls -li > file1 (-li : )
以上两种在文件重载时,就会将上一次的信息覆盖掉,如果需要每次都保留输入输出的信息的话那就如下写:
ls -li >> file1 这样每次的都可以得到保留。(到底上限是多少我也没做过多的实验,只要文件大小在硬盘的空间大小之内就没有问题吧)
管道:
用于给多个进程之间提供信息传递的通道。(就写这点吧!以后遇到了再补充)
【变量】
变量的定义不想多说。在Linux中取变量时需要加一个 "$" (规定的);(程序写在文件中,操作在"终端"下);小举一例:字符串比较
#!/bin/sh
echo "your name:"
read str
if [ "$str" = "mengzi" ]
then
echo "YES,yuo are mengzi!"
else
echo "NO,who you are ?"
fi
申明:mengzi(猛子是我绰号,很刚猛吧,其实我很善良...heihei)
程序中:$ ( ... )单括号的话表示放的是命令。若是 $ (( ... ))表示取的是变量,主要是设涉及到一些复合运算;小举一例说明下:算术比较,加法
#!/bin/sh
read x
echo $x
x = $(($x + 1))
echo $x
关于单括号表示命令:写个关于函数运用的例子吧
#!/bin/sh
foo()
{
echo "function foo is executing "
}
echo "script starting"
result = $(foo)
echo --------------------------
echo $result
echo "script ended"
在这个例子中可以看到 $(foo)实际上就是条调用foo函数的命令。
【关于空格】
案例:在进行shell程序编译时,搞的我崩溃,有时候就算是按着书上的例子一个字母敲还是编译错误。我表示压力很大呀!
后来才发现是我的编程习惯误导了我,因为无论是在进行赋值还是条件判断时,只要是涉及到 + - * /的地方我都会习惯性的用空格隔开;可是到了shell中可就行不通了,那种莫名其妙的错误促使我思考。而且我也小小的总结了条经验:
在做"条件判断"时,需要加空格:if 空格[空格"$x"空格=空格"mengzi"空格]
在做"赋值"时,不需要加空格:x=0
【如有错别字,纯属正常,见谅!】
By: 猛子 2010.11.
待续.....