Linux学习随笔--再次接触

       近来开始学习linux,虽说以前学习过在自己电脑上装了一个linux,但是那时候没机会用,也就吧学校那该死的上网客户端搞定了,也就勉勉强强会装软件的级别。再说久了没用,命令什么的全望完了。最近又打算重新学习linux,作为一个未来的程序员,对底层的了解是很有必要的,恩恩,so,开始学吧。

       昨天勉勉强强算是接触了linux了,觉得linux远没有以前觉得的那么简单(主要因为以前根本就没有机会深入接触)。昨天了解了一下linux内核和各个发行版(比如涉及到图像界面的关系),原来linux的图形是靠内核上层的X Window服务器处理的,也印证了以前linux不需要图形的印象。

     既然是Linux那就一定离不开招牌的命令行,不懂命令行算不得会Linux,Linux命令行可以用很简单的命令完成很多复杂的工作。例如:ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tep/out.mpg 就能录制一段视频,当然这是看到的,我自己也不懂,如果我懂标题就该是“Linux深度学习”了,这个只是做一个说明。下面还是简单说一下命令行吧,常用的有几类

1、目录和文件处理型的,like:midir建立目录, ls陈列文件, cd进入目录, pwd显示当前工作目录,cp拷贝,mv移动, rm删除,都比较常用的一类

2、文本处理类型的,like:cat连接文件到标准输出;More查看文件内容,满一页暂停,空格继续; less,和more类似,但是可以指定到鼠标;head跳转到头部;tail尾部;Echo显示一行文本;

3、系统管理,like:ps进程查看;kill杀死进程或工作;jobs查看后台正在执行的命令的序号(这个我也不是很明白,什么叫命令的序号,背后肯定是一套机制);bg指定号码的命令放到后台运行;fg指定号码进程放到前台运行;

4、文件系统,like:du查看目录或文件所占空间;df检查文件系统的磁盘空间占用情况。

好吧简单命令介绍到这,我很多还基本没用到过,还得多接触。

     后来还看到用户的身份问题:额,这个我觉得简单理解下就对了,如果绕进去反而很麻烦,因为用户身份这个我们根本就不需要用到很多(在我理解里除了服务器级别的用户需要分的很细致,其他的情况一般只有权限问题,因为一个电脑上的系统不会给很多人用吧)。在Linux中,第一用户等级就是root,只有一个,后来的就是非root用户,每个用户都有一个属于自己的文件目录,存放用户的数据。每个用户对应着不同的管理组,没个组的职责也不相同,一个用户可以对应多个管理组。然后就是sudo命名,暂时取得root权限,这个东东真不错,但是应该记着root权限不能乱用,要不然出现问题就有的忙了。

     然后说说文件,以前我还真没留意文件这个东东,但是不得不说文件这个东西真的很重要,在Linux中有一个原则—— 一切皆文件在linux中每一个设备对应的都是一些文件。就算是进程间以及设备相互通信也是通过不同进程的所属文件通信,文件系统与进程和用户息息相关


Linux学习随笔--再次接触_第1张图片

linux文件有相应的用户权限,除了公共空间的文件能够自由读写,其他地方的文件都得取得W和R权限才能进行写读操作。


      在这里顺便再说说我刚刚学到的驱动方面的知识,在linux驱动中有三类不同的设备:字符设备,块设备,和网络设备。这个分类是按照linux不同设备的不同特性来区分的,字符设备例如鼠标键盘之类的;块设备则是对应的存储介质,硬盘U盘啥的;网络设备大家都懂,就是对应wifi蓝牙等网络通信设备。

字符设备和块设备通信都是依赖我们上面所说的文件,而网络设备则是唯一没有体现linux一切皆文件原则的设备,网络设备通信则是通过socket进行数据收发。但是这里有一点得注意一下,socket通信是通过网络通信,而在机器设备内,不同网络设备间的通信则还是通过文件。

      在这里还得说一下驱动和设备的关系,在电脑中硬件设备和驱动属于不同的地区(逻辑上和硬件上),而驱动和硬件则是通过总线相连。总线负责驱动和设备的相互匹配,如果查上设备或者写入驱动,总线就负责找到和设备对应的驱动(总线匹配驱动和硬件的方式很多,例如说名字匹配啥的,我也不了解很多)。

   在说说驱动编写的原则:主机驱动与client分离,驱动与设备分离。

你可能感兴趣的:(Linux,linux,驱动开发)