Linux--慕课学习
刚开始接触Linux,很有幸的在慕课网上看到了Peter老师的Linux入门课程,老师讲课真的式行云流水,深入浅出,循循善诱,层层递进。
老师分享的都是自己多年来总结的经验。看完之后也学到了很多东西。
课程链接:Linux Guide for Developers

下面记录一下,整个学习过程中记录的笔记:
1、在Linux终端下直接输入【wget 网址】就可以直接把网页的HTML内容下载下来。这么强大的吗?
Linux对文件后缀不敏感,一个文件是否能够执行不取决于其扩展名,而是看其是否设定了可执行的权限。前提是文件本身是可执行的,普通文本即使设置了可执行的权限也无法执行。
2、命令还是经常使用,这样才能熟悉。记录只是一个学习的过程。
3、man命令查看命令的文档说明【man sudo】
4、关于通配符,最常用的就是【*】,搭配一些其他的命令可以快速定位一些符合通配表达式的文件名。
5、对于.zip 后缀的文件解压缩就是【unzip】
文件打包成zip就是【zip -r 打包后的文件名 要打包文件的路径】
6、对于 tar.gz 后缀的文件,解压缩命令是【tar zxvf 文件】压缩就是【tar zcvf】
6、对于 tar.bz2 文件,解压缩是【tar jxvf】
7、重定向:把程序的输出保存到指定文件中。
Linux下传统:everything is a file
三个重要的文件:
stdin :键盘输入的输出会被保存到硬盘中,如果程序有输出会输出到 stdout或者stderr。
stdout :文件中的内容不会被保存到硬盘上,而是直接输出到屏幕。
stderr : 也是直接输出到屏幕。
输出重定向符:【>】
特点:每次重定向之前,都会把内容清空。
要想不清空,直接在后面追加就是【>>】
但是重定向输出到文件的时候不用这么麻烦,我们用【cat】命令把两个文件放在一起,然后在一次性重定向到需要的文件即可。
报错信息一般不能重定向。如果非要重定向可以使用【2>】
管道线:把前一个命令的输出直接作为下一个命令的输入。
就像是把数据流用管道接起来一样。用管道符【|】来链接。
这样可以保证每个命令都只完成自己的一点点小任务就可以了。
8、Linux下有趣的命令:
首先可以安装奶牛说【sudo apt-get install cowsay】
然后就可以在终端运行这个命令【cowsay】
然后可以输入想说的话,回车, Ctrl+d 结束输入,有惊喜。 
9、权限(permission)
三个用户:owner group world
三个权限:r(read读) w(write写) e(executing执行)
Linux默认用户所在的主目录有写的权限,其他则没有,但是可以通过【chmod】修改权限,(change file mode)
也可以通过【chown】修改用户和小组的方式来获取权限。
通过【ls -l filename】查看文件的权限内容,也就是【ll】
通过【ls -ld path】查看目录的权限内容

【Ctrl+a】 到行首。
【chmod】修改权限的时候,需要把三个权限化成八进制数据,如666,555.然后写入。
10、进程(process)
当我们每执行一个程序,就相当于在系统下面开始了一个进程。
获取进程号PID (process ID )
【ps】 报告当前进程状况
【ps aux|less】查看所有进程,并分页显示
【ps aux|grep 进程名】可以在所有的进程中查到需要知道的进程的PID
【Ctrl shift c】复制
【kill PID】结束进程号PID的进程
【Ctrl teb】切换应用
【Ctrl z】暂停
【Ctrl c】结束终端中运行的程序
当我们在终端中开启了一个进程的时候,进程就占据了终端的输入状态,导致我们不能进行其他的操作。也就是我们需要把进程切换到后台运行:【程序名 &】这样当返回后台的时候,终端还是可以使用的。或者【Ctrl shift T】打开终端。
Linux是同时在运行着7个工作台,如果当前桌面被一个程序卡死,动不了的话,我们可以切换到第一个工作【Ctrl alt F1】,在这个工作台中杀死那个程序的进程。然后按【Ctrl alt F7】返回Ubuntu界面。
11、搜索(search)
【locate】--regexp 后面可以跟正则表达式。
通过一个文件名在全系统范围内定位一个文件。
【locate】这个比较简单,没有可选参数,直接加上要查询的文件名即可。他是从资料库中查找,所以速度也是比较快,但是因为资料库的信息更新由crond进程控制更新,所以有时候会发生刚刚安装好的软件查询不到的现象。
【updatedb】可以把系统中的信息更新进数据库,但是这个命令式每天执行一次。 可以手动运行一下这个命令【sudo updatedb】
【find】-在目录层结构中搜索文件。
给他一个目录,他就能给你翻个底朝天。如查找所有在最近三天内内容发生变化的文件:【find / -mtime -3】

12、Linux的网络工具
【ssh】远程操作工具,客户端和服务器段都要有软件。
【rsync】数据传输工具,本地和服务器传递数据。
13、Linux安装软件
1、手动安装:
(1)下载压缩包安装解压缩->echo $PATH添加软件到命令行。
(2)自己下载源码,编译然后生成可执行程序。
./configure 、 make 、 sudo make install
缺点:需要手动安装依赖包,而且容易忘记安装都在哪。
2、deb包
程序本身、配置文件、安装位置、依赖关系
安装:sudo dpkg -i 软件名.deb
查询软件
sudo dpkg -l|grep chrome
3、最常apt-get仓库,它的底层就已经包含了dpke
apt-get install 软件,(可以TAB补齐)
sudo apt-get remove 软件
apt-get purge 软件(删除配置文件)
源码包:github、自由软件基金会、git
缺点:软件更新比较慢,
(1)、在终端里 apt-get安装的软件:
apt-cache search package 搜索包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package - - reinstall 重新安装包
sudo apt-get -f install 修复安装"-f = ——fix-missing"
sudo apt-get remove package 删除包
sudo apt-get remove package - - purge 删除包,包括删除配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-get dselect-upgrade 使用 dselect 升级
apt-cache depends package 了解使用依赖
apt-cache rdepends package 是查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
(2)、安装的deb包要用此方法:
安装deb软件包 dpkg -i xxx.deb
删除软件包 dpkg -r xxx.deb
连同配置文件一起删除 dpkg -r --purge xxx.deb
查看软件包信息 dpkg -info xxx.deb
查看文件拷贝详情 dpkg -L xxx.deb
查看系统中已安装软件包信息 dpkg -l
重新配置软件包 dpkg-reconfigure xxx
(3)、升级软件:以升级火狐浏览器为例:
sudo apt-get update
sudo apt-get install Firefox
升级完成后可以检查一下软件的版本:
apt-cache show Firefox
---------------------------------------------------------------------
简单命令的补充
1、【touch 文件名和后缀】新建一个文件
2、【mkdir 文件名】新建一个文件夹
3、【rm 文件名】删除一个文件,注意参数和通配符的使用可以一次性删除。【rm -r filename 】
3、复制命令:【cp】

4、移动文件:【mv】
给目录或者给文件改名,原文件消失。

5、显示文件内容【cat】【more】【less】
一般大文件使用less,可以分屏显示。
Linux--慕课学习的更多相关文章
- Linux.NET学习手记(7)
前一篇中,我们简单的讲述了下如何在Linux.NET中部署第一个ASP.NET MVC 5.0的程序.而目前微软已经提出OWIN并致力于发展VNext,接下来系列中,我们将会向OWIN方向转战. 早在 ...
- Linux.NET学习手记(8)
上一回合中,我们讲解了Linux.NET面对OWIN需要做出的准备,以及介绍了如何将两个支持OWIN协议的框架:SignalR以及NancyFX以OwinHost的方式部署到Linux.NET当中.这 ...
- 关于《Linux.NET学习手记(8)》的补充说明
早前的一两天<Linux.NET学习手记(8)>发布了,这一篇主要是讲述OWIN框架与OwinHost之间如何根据OWIN协议进行通信构成一套完整的系统.文中我们还直接学习如何直接操作OW ...
- Linux LVM学习总结——扩展卷组VG
Linux服务器由于应用变更或需求的缘故,有可能出现分区空间不足的情况,此时往往需要进行扩容(要增加分区的空间),而采用LVM的好处就是可以在不需停机的情况下可以方便地调整各个分区大小.如下所示,分区 ...
- linux的学习记录随笔
为什么学习linux 因为操作系统是一种介质,你要接触其中的东西,首先必须要有介质,而linux在服务器端是老大哥的地位,所以呢,学习linux吧. 学习的方式 可以看视频 imooc.百度传课.网易 ...
- Linux LVM学习总结——创建卷组VG
在Linux平台如何创建一个卷组(VG)呢?下面简单介绍一下卷组(VG)的创建步骤.本文实验平台为Red Hat Enterprise Linux Server release 6.6 (Santia ...
- 别出心裁的Linux命令学习法
别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关"的工作,以给你方便.效率.安全.操作系统的功能我总结为两点:管家婆和服务生: 管家婆:通过进程.虚 ...
- 别出心裁的Linux系统调用学习法
别出心裁的Linux系统调用学习法 操作系统与系统调用 操作系统(Operating System,简称OS)是计算机中最重要的系统软件,是这样的一组系统程序的集成:这些系统程序在用户对计算机的使用中 ...
- linux 驱动学习笔记01--Linux 内核的编译
由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...
- Linux驱动学习步骤(转载)
1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, ls ...
随机推荐
- 利用Java泛型实现简单的泛型方法
问题:编写一个泛型方法add(),当传入不同数字类型的值时,能够进行加法运算,(如可以传入int.long.float.double类型,但要对传入的值做一定的限定,如必须是数字). 解决:利用泛型编 ...
- Windows下安装TensorFlow
最近学习TensorFlow,当然前提是装好框架,网上教程很多都是虚拟搭建或者是conda,从我的经验来讲,Windows目前只支持Python3.5版本安装,Python官网上有说明: 本人由于常用 ...
- Hibernate 一对一关联映射,mappedBy参数解析
在最近java,SSH框架的学习中遇到了这样的一个问题,在Hibernate的开发中一对一关联映射的单向关联,主表会在次表新增一列次表的主键如下图,但是在双向关联中次表不会在表中创建主表的主键一列,这 ...
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListene解决办法
照着以前写的项目搭一个框架,项目用到的是ssm,spring+spring mvc+mybatis,由Eclipse转战IDEA上,项目的文件夹有一些改变,在之前的小项目中喜欢把lib文件夹放在项目根 ...
- 【Zabbix】在CentOS7上安装Zabbix3.0
Zabbix安装 首先说明一下,本文主要参考了[http://www.linuxidc.com/Linux/2016-11/137030.htm]和[http://www.cnblogs.com/XY ...
- 【最全】经典排序算法(C语言)
算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...
- 三十天学不会TCP,UDP/IP网络编程 -- TCP中的智慧之连续ARQ
突然发现上一篇文章贴图有问题,关键我怎么调也调不好,为了表达歉意,我再贴一篇gitbook上的吧,虽然违背了我自己的隔一篇在这里发一次的潜规则~其余完整版可以去gitbook(https://www. ...
- 透析thinkphp5升级版开发框架tpframe
这里将全面的介绍这个框架给我们开发带来的好处,让你们对它有更深层次的认识,喜欢或不喜欢的,欢迎大家前来留言讨论 一.目录层次结构 现在很多的项目,特别是大一点的项目里面,都会有很多的人参与,要进行程序 ...
- vue/axios请求拦截
import axios from 'axios';import { Message } from 'element-ui';import Cookies from 'js-cookie';impor ...
- JQuery :contains选择器,可做搜索功能,搜索包含关键字的dom
假设有一个加油站列表,找到所有包含某某关键字的加油站. 选择所有包含 "is" 的 <p> 元素: $("p:contains(is)") 搜索功能 ...