![6e68b8a3ef70a69f3b1edd4147efb20b.png](https://i-blog.csdnimg.cn/blog_migrate/33a5624ca6123f2de0cd58f4f81e95c6.jpeg)
大家好,我是兔子。
是一个嵌入式软硬件工程师。
正在从单片机开发转岗Linux开发。
这次教大家一些基本的shell指令。先在虚拟机上演示,后续会在开发板上会用到。
1.pwd (获取当前目录)
如果不知道自己现在在哪个目录里,输入pwd指令并回车。可以知道当前所在的目录路径。
![7d9b44483107d152bf5e5f704e2b1393.png](https://i-blog.csdnimg.cn/blog_migrate/0233acdb7580491f3c6896042c97411d.jpeg)
可以看出,我当前在/home/book目录下。
2.ls (查询当前目录下有哪些文件及文件夹)
如果想查看当前所在的目录下,有哪些内容。可以输入ls查询。
![e93119ec8dbd4fd85ac90c8d73789433.png](https://i-blog.csdnimg.cn/blog_migrate/b7e3b3b1bda957c200689f44cb357ce5.jpeg)
通过pwd指令,现在可以知道我在/home/book目录下。
该目录下有很多文件,通过ls命令可以知道。
比如Desktop,Downloads,linux-2.6.25.3等。
其中,蓝色的字表示的是文件夹。白色的字表示的是文件。
如果想获取更详细的信息,比如获取文件大小,生成日期等。
输入ls -l即可。
![57c67f54a893da28737837b5b5562d26.png](https://i-blog.csdnimg.cn/blog_migrate/2be65e5f8d4e15593efa62c0961d0277.jpeg)
注意,实际上ls –l没有将隐藏文件列出。
如果想将隐藏文件也列出,可以使用ls –al命令。
3.cd (进入目录)
如果我们想进入其中某个目录怎么办,可以用cd命令。
![87bca330b2be6bf92e6b932bf3dae501.png](https://i-blog.csdnimg.cn/blog_migrate/d67fc595938d128ca045d1784ae92e36.jpeg)
可以看到,我先ls查询有哪些文件夹,然后使用cd指令进入XW_Linux文件夹下。
之后再使用pwd命令,确认我已经进入该目录。
现在我已经在/home/book/XW_Linux目录下了,我后悔了。
我想返回到上一个目录,怎么办?
可以使用cd ..(cd和两个点之间有个空格)
![244ba3b60ddf4f82be887d49b52f5a22.png](https://i-blog.csdnimg.cn/blog_migrate/cb5da418604237e6375074a08ba3fb8d.jpeg)
文件或文件夹名可以输入一半,按电脑的tab键,会自动补齐。
4.vi (使用vi编辑器,打开或新建文件)
我想新建一个.c的文件,并写一个hello world的程序。
可以使用vi编辑器新建。
输入指令 vi hello.c
如果当前文件夹下没有hello.c的文件,就表示新建一个名叫hello.c的文件。
如果有hello.c的文件,表示用vi编辑器打开该文件。
![6cb55f3928b73d69d2f59285562bf23a.png](https://i-blog.csdnimg.cn/blog_migrate/d6b27204d9bd830d71a0dfb598f0e5f8.jpeg)
可以看到,我用ls命令查询了。当前文件夹下只有一个叫ZLG的文件夹。
我使用vi hello.c命令,新建一个叫hello.c的文件。
![fe177ee8743152984b85f01bfb18a2d0.png](https://i-blog.csdnimg.cn/blog_migrate/9cd745c9dae51ec13a4e425952fe5954.jpeg)
可以看到我们进入了一个文本编辑的界面。
左边的1表示行号,是我配置了才显示的。没配置不会显示。
5.vi编辑器输入hello world的程序
在该编辑器界面,输入i。表示进入编辑界面。
然后就可以输入程序了。
![b50f9450b61f8a83c8aaca0692e59953.png](https://i-blog.csdnimg.cn/blog_migrate/f7001c8f266a203e941c2cbb26becec4.jpeg)
左下脚显示INSERT,表示进入编辑模式。
然后输入hello world的程序
![04a00ca7236b5d727b826f4e93128f4a.png](https://i-blog.csdnimg.cn/blog_migrate/645598110f441135f568887c4b98c94f.jpeg)
程序写好了,如何保存呢?
首先先退出编辑模式,按下电脑esc键即可。可以发现左下角的INSTER消失。
![1f0b28cd03bd56060582ae1a737154c0.png](https://i-blog.csdnimg.cn/blog_migrate/8434eb6cfa5746d6d77c174d23fb4293.jpeg)
然后输入:wq后回车。
:表示输入指令,w表示写数据,q表示退出。
组合起来,就是将数据写入到hello.c文件里,然后退出vi编辑器界面。
![59a8acdc0c37a68ef54e51ee7bed74c6.png](https://i-blog.csdnimg.cn/blog_migrate/749144d1b7bf0deba11bb82c69bf7a71.jpeg)
这时候,在查询一下,发现文件夹下已经有hello.c文件生成。
![2ff6e534e9620a877b1c5a58f265609c.png](https://i-blog.csdnimg.cn/blog_migrate/febe2f5ba2c4edac259845e4dc36dff4.jpeg)
6.gcc (使用gcc编译工具编译程序)
由于是编译的PC端文件,我们直接用gcc编译器即可。(后面编译嵌入式Linux程序,则需要用到另一个编译器,即交叉编译器)。
输入指令gcc –o hello hello.c
表示使用编译器gcc ,通过hello.c文件生成编译后的文件,文件名为hello
![ca4919fdcc9b58d58a86d2459aca2b3c.png](https://i-blog.csdnimg.cn/blog_migrate/0a7fbbb7fdee44ddacff88046b4b83e1.jpeg)
可以看到,生成了一个名字为绿色的文件,绿色表示可执行文件。
这样,表示我们的hello world文件已经编译好了。达到可运行的状态。
7.运行程序
输入./hello即可。
![59894aef42602b445db742f4df029b32.png](https://i-blog.csdnimg.cn/blog_migrate/92dde1ebe54bc60621bd7d463865a0f5.jpeg)
可以看到hello world已经打印出来了。和后面的用户名同一行。
这是因为程序里,printf打印完我没有换行。导致和账号名显示在同一行了。
可以自行在程序的printf里添加/n换行。