嵌入式学习之路(二)——Unix命令的学习(1)

2024-05-09 21:48
文章标签 unix 学习 嵌入式 命令

本文主要是介绍嵌入式学习之路(二)——Unix命令的学习(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嵌入式学习之路(二)——Unix命令的学习(1)
笔者学习嵌入式是从学习C语言开始的,而我学C语言的系统平台是ubuntu,所以就先学习如何使用Unix命令,利用shell来交互,vi来编写程序,gcc来编译。
那么什么是shell呢?这里先声明一下,笔者所写的全是自己的理解,绝非专业的,大家看看我的文笔就知道我肯定不是专业的,所以大神,轻拍,欢迎指正。
1.shell:笔者就理解说得简单一点,打开ubuntu系统,我们打开终端,就是shell,shell也经过了很多年的发展,我们可以通过我们的终端来查看我们的shell
输入: ps+回车 ,一般的话,我们会看到  
xxb@xxb-virtual-machine:~$ ps
  PID TTY          TIME CMD
 2537 pts/1    00:00:00 bash
 2676 pts/1    00:00:00 ps
xxb@xxb-virtual-machine:~$ 
bash 和 ps ,ps命令是用来查看进程的命令,我们可以看到ps的ID号是2676,而另外一个bash是什么呢,他就是传说中的shell ,其实还有很多shell,大家有兴趣,可以自己去查看啦,百度一下,你就知道,这里就不多说了。多说一点就unix命令后面都是加[选项]和[参数]的,比如说我们输入 ps -aux 就是ps的扩展,可以显示出该系统所有的进程。其他的选项和参数笔者也是刚学,没怎么研究过呢,大家自己去探索吧
2.linux操作系统是一个多用户的操作系统,每个用户都有自己的一个账号,计算机通过账号来区分不同的用户,同样现在我们可以在终端上输入一个命令,输入:whoami
xxb@xxb-virtual-machine:~$ whoami
xxb
xxb@xxb-virtual-machine:~$ 
输入完成后就出现了xxb这个就是你现在所用的账户名称啦,还有一个超级用户叫做root,可以使用su root来实现转换,当然要输入密码,超级用户拥有最高权限,所以一定要安全。我们输入 su root :
xxb@xxb-virtual-machine:~$ su root
密码: 
root@xxb-virtual-machine:/home/xxb# 
root@xxb-virtual-machine:/home/xxb# whoami
root
root@xxb-virtual-machine:/home/xxb#
我们再用whoami查看就发现现在用户已经变成root了,是不是很神奇呢。
su 也是一个命令 ,可以赋予超级用户的权限,笔者用得也不是很多,就不多说,初学者只要先会切换root用户就行了
3.当你打了很多行命令的时候,是不是发现终端都被占满了,不能清晰地查看终端里的内容了,现在你就可以使用clear命令了,输入 clear 回车,
你就会发现终端已经被清理过了,是不是很开心啊,哈哈,这个clear命令以后会一直和我们打交道的,想忘记都难
4.前面我们只是学会了最基本的用户操作,那我们想写程序,我们应该怎么做呢,是不是要先建一个C源文件呢,而源文件应该建在哪里呢?首先我们应该先了解下linux系统的文件系统,linux操作系统的文件系统采用分组的方式来保存文件,怎么分组呢,其实和windows上差不多,分组就是路径也可以说成目录,文件必须保存在目录下,而linux操作系统中的目录都是由一个目录分出来的,根目录相当于他下面的所有子目录的祖先,想想和人类差不多把,根目录相当于亚当和夏娃,不同的是根目录他是一直和必须存在的。我们用"/"来表示根目录,接下来介绍如何进入目录里去建文件。我们输入 :cd / 回车,我们看看会怎么样
root@xxb-virtual-machine:/home/xxb# cd /
root@xxb-virtual-machine:/# ^C
变成这样了,不知道的人我们还是不知道发生了什么,接下来我们可以输入 pwd
root@xxb-virtual-machine:/# pwd
/
发现他输出了一个/,pwd是打印当前目录,所以刚才我们输入cd / 就是改变目录到 /根目录,结果我们用pwd查看的时候,他果真到了/根目录下
我们接下来可以查看一下当前目录里有什么,我们输入 ls
root@xxb-virtual-machine:/# ls
bin    dev   initrd.img      lib64       mnt   root  selinux  tmp  vmlinuz
boot   etc   initrd.img.old  lost+found  opt   run   srv      usr  vmlinuz.old
cdrom  home  lib             media       proc  sbin  sys      var  xxb_ubuntu
我们发现根目录下有这么多东西啊,有目录,当然也有文件,ls就是用来查看目录里有什么
ls -a :查看所有的文件和目录,包括隐藏文件(.开头的文件)
ls -l  :以列表的方式来查看
ls -al:当然就是以列表的方式来查看所有文件和目录啦,是不是还是挺人性化的啊
5.路径分为绝对路径和相对路径,绝对路径就是一定要从根目录开始的路径,像这样的路径
root@xxb-virtual-machine:/mnt/hgfs/shared_folders/biaoc# pwd
/mnt/hgfs/shared_folders/biaoc
从根目录/开始,第一个/表示根目录,后面的/只是做分隔符的作用。相对路径就是从当前目录开始,到他的上级和下级去,自己好好理解理解。还有个补充就是"~"表示主目录,就是每次进去终端后默认的目录,叫做主目录,
root@xxb-virtual-machine:/mnt/hgfs/shared_folders/biaoc# cd ~
root@xxb-virtual-machine:~# pwd
/root
root@xxb-virtual-machine:~# 
我们可以看到,root就是我们的主目录,还有就是"."表示当前目录,".."表示上一级目录
root@xxb-virtual-machine:~# pwd
/root
root@xxb-virtual-machine:~# cd ..
root@xxb-virtual-machine:/# pwd
/
root@xxb-virtual-machine:/#
我们可以看到,我们从root回到了根目录了,今天就先到这里,后面的慢慢更新啊,都是最基础的,慢慢开始嘛,大家记住学嵌入式要沉得住气,其实做什么都要沉得住气啦,大家晚安!

这篇关于嵌入式学习之路(二)——Unix命令的学习(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974595

相关文章

Linux命令学习之二

每日一结 ​               命令置换:是将一个命令的输出作为另一个命令的参数,命令格式如下: commond1 `command2` 其中,命令command2的输出将作为命令command1的参数,需要注意的是, 命令置换的单引号为ESC键下方的 ` 其意思就是说,先运行单引号内的命令,再将其命令作为

Linux命令学习之一

每日一结                                                                                        注:当用户不确定一个软件包的类型时, 可使用file命令查看文件类型

嵌入式C和汇编混合编程规则——ATPCS规则

ATPCS规则  为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则.ATPCS就是ARM程序和THUMB程序中子程序调用的基本规则。 一.ATPCS概述 ATPCS规定了一些子程序之间调用的基本规则.这些基本规则包括子程序调用过程中寄存器的使用规则,数据栈的使用规则,参数的传递规则.为适应一些特定的需要,对这些基本的调用规则进行一些修改得到几种不

javaweb学习-jstl-c:forEach中 varStatus的属性简介

varStatus是<c:forEach>jstl循环标签的一个属性,varStatus属性。就拿varStatus=“status”来说,事实上定义了一个status名的对象作为varStatus的绑定值。该绑定值也就是status封装了当前遍历的状态,比如,可以从该对象上查看是遍历到了第几个元素:${status.count} 我们常会用c标签来遍历需要的数据,为了方便使用,varSta

java学习—null和isEmpty 区别

String fly1 = new String(); String fly2 = ""; String fly3 = null; 解释如下: 此时fly1是分配了内存空间,但值为空,是绝对的空,是一种有值(值存在为空而已) 此时fly2是分配了内存空间,值为空字符串,是相对的空,是一种有值(值存在为空字串) 此时fly3是未分配内存空间,无值,是一种无值(

javaWeb学习—getRequestURI,getRequestURL等的学习

我使用的是SpringMVC框架,做一个小的例子,说明一下对这个内容的学习和理解! 1:我的项目名称为 dufyun_SpringMVC  2:我测试的地址为 ${pageContext.servletContext.contextPath}/testName 3;后台获取的代码为: @RequestMapping(value="/testName",method=Req

maven学习系列——(五)maven聚合与继承

这一篇学习和整理maven的聚合和继承! 并用具体的项目讲解说明! 参考: http://www.cnblogs.com/xdp-gacl/p/4242221.html

maven学习系列——(四)maven仓库

这一篇学习和整理maven仓库的一些知识点 ! 参考: http://blog.csdn.net/wanghantong/article/details/36427433

maven学习系列——(三)maven项目的创建

这一篇大概会整理和总结到有如下知识点: (1):maven的使用入门一些命令 (2):用命令创建项目 (3):使用IDE集成工具创建项目–Eclipse和idea 3:使用Maven命令和Eclipse的Maven插件,创建Maven项目 (1)maven命令生成项目 新建一个文件目录,dos进入该目录并执行下面命令: mvn archetype:create -DgroupId=c

maven学习系列——(二)maven的安装和一些基本的配置

这一篇主要会总结maven在window上的安装,以及Eclipse安装maven插件。 会整理和贴出具体的安装步骤等! 配置大概会整理一下,方便自己查看和使用! Maven 的使用在Windows上使用比较多,一般的开发都是在Windows上;Linux上的使用相对比较少,不过会总结Windows和Linux系统两种安装方式。 首先会介绍在Windows和Eclipse安装Maven,L