自学Linux已经两个星期了(不算之前的水课),之前也学过一些Linux,但不像现在这种学习状态。这几天除了上课,我的首要任务就是学习Linux! 在这两个星期的学习中,通过看马哥教育的视频和鸟哥的私房菜,大致学到了这些东西: 1.计算机的基础知识 2.操作系统的相关知识 3.Linux命令行的常用命令 4.Linux用户的认识


一、计算机的基础知识

  • 计算机的体系结构:运算器,控制器,存储器,输入输出
  • 机算计上电后如何识别硬件部分?上电自检
  • 前端总线:南桥北桥 固态硬盘 机械硬盘
  • 什么事CPU的主频,什么是缓存
  • 内核kernel,操作系统,API,shell之间的关系
  • 内核功能:进程管理,内存管理,文件系统,网络功能,硬件驱动,安全机制
  • 批处理系统是什么? jobs1$$$$$$$jobs2$$$$$$$$单进程
  • GUI和CLI:图形交互界面和命令行交互界面

二、Linux操作系统相关知识

  • GUN,GPL

  • 操作系统的发展历史

  • Linux的最新内核版本 www.kernel.org

  • Linux的发行厂商release:Debian,RedHat,Ubuntu,CentOS,Fedora,Mandriva

  • 开放源代码:自由获取,自由修改,自由学习

  • 了解GPL, BSD, Apache三个开源协定(版权描述)的大体联系及区别

  • 发行版:Fedora, RedHat(CentOS), SUSE, Debian(Ubuntu, Mint), Gentoo, LFS(Linux From Scratch)

    Linux的基本原则: 1、由目的单一的小程序组成;组合小程序完成复杂任务; 2、一切皆文件; 3、尽量避免捕获用户接口; 4、配置文件保存为纯文本格式;

Linux文件系统 文件系统层级标准FHS(Filesystem Hierarchy Standard):Linux标准委员会规定了根文件目录标准 /boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader) /dev: 设备文件 设备文件: 块设备:随机访问,数据块 字符设备:线性访问,按字符为单位 设备号:主设备号(major)和次设备号(minor) /etc:配置文件 /home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME /root:管理员的家目录; /lib:库文件 静态库, .a 动态库, .dll, .so (shared object) /lib/modules:内核模块文件 /media:挂载点目录,移动设备 /mnt:挂载点目录,额外的临时文件系统 /opt:可选目录,第三方程序的安装目录 /proc:伪文件系统,内核映射文件 /sys:伪文件系统,跟硬件设备相关的属性映射文件 /tmp:临时文件, /var/tmp /var:可变化的文件 /bin: 可执行文件, 用户命令 /sbin:管理命令

/usr:shared, read-only /usr/bin /usr/sbin /usr/lib

/usr/local: /usr/local/bin /usr/local/sbin /usr/local/lib

命名规则: 1、长度不能超过255个字符; 2、不能使用/当文件名 3、严格区分大小写


三、Linux基础命令(重点) 命令类型: 内置命令(shell内置),内部,内建 外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

命令行展开{ }

1.man命令: Linux的命令手册:manual man COMMAND

NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照

翻屏: 向后翻一屏:SPACE 向前翻一屏:b 向后翻一行:ENTER 向前翻一行:k

查找: /KEYWORD: 向后 n: 下一个 N:前一个 ?KEYWORD:向前 n: 下一个 N:前一个

退出:q

获得命令的使用帮助:
内部命令:
	help COMMAND
外部命令:
	COMMAND --help

2.ls命令: list 列表 目录

-l:长格式
	文件类型:
		-:普通文件 (f)
		d: 目录文件
		b: 块设备文件 (block)
		c: 字符设备文件 (character)
		l: 符号链接文件(symbolic link file)
		p: 命令管道文件(pipe)
		s: 套接字文件(socket)
		文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
		文件硬链接的次数
		文件的属主(owner)
		文件的属组(group)
		文件大小(size),单位是字节
		时间戳(timestamp):最近一次被修改的时间
		访问:access
		修改:modify,文件内容发生了改变
		改变:change,metadata,元数据
-h:做单位转换
-a: 显示以.开头的隐藏文件
	. 表示当前目录
	.. 表示父目录
-A
-d: 显示目录自身属性
-i: index node, inode
-r: 逆序显示
-R: 递归(recursive)显示

3.cd命令:change directory 家目录,主目录, home directory cd ~USERNAME: 进入指定用户的家目录 cd -:在当前目录和前一次所在的目录之间来回切换 cd:回到家目录

4.type命令: 查看命令属于哪种类型 内置命令还是外部命令

5.date命令:时间管理 hwclock命令 cal命令: calendar

6.whatis命令: 查看命令手册的章节

分章节:
1:用户命令(/bin, /usr/bin, /usr/local/bin)
2:系统调用
3:库用户
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项(Miscellaneous)
8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)

7.info命令:在线文档

8.file命令:查看文件类型

9.mkdir命令:创建空目录

10.rmdir命令:删除空目录

11.touch命令:修改文件时间或创建新文件 touch后面直接接文件,该文件的三个时间都会被更新为目前时间,如果文件不存在,则主动创建一个新的文件。

文件的三个时间参数:
	modification time(mtime):该文件的内容数据更改时更新的时间
	status time(ctime):文件的状态改变时更新的时间,像是权限与属性被更改了
	access time:该文件被访问时更新的时间
-a:仅修改访问时间
-c:仅修改文件时间(ctime)
-m:仅修改mtime
-t:后面可接欲修改时间而不用目前的时间格式为YYMMDDhhmm

12.stat命令:

13.tree命令:查看目录树

14.nano命令:超简单文本编辑器

15.rm命令:移除文件或目录 -i:互动模式,在删除时询问用户是否操作 -f:强制(force) -r:递归删除

16.cp命令:复制文件或目录 cp 源文件(source) 目标文件(destination) cp除了单纯的复制之外,还可以创建连接文件(即快捷方式) -r:递归持续复制,用于目录的复制行为 -i:若目标文件(destination)已存在,在覆盖时会询问操作的进行 -f:为强制(force)的意思 -p:连同文件的属性一起复制,而非使用默认属性(备份常用) -a:归档复制,常用于备份

17.mv命令:移动文件与目录,或更名

18.install命令:复制文件和指定属性 -d:后面只有一个文件,创建目录 -m:复制后制定权限

19.cat命令:concatenate cat:由第一行开始显示文件内容 tac:由最后一行开始显示文件内容

20.more:一页一页的显示文件内容 21.less:和more类似,但它比more更好的是可以往前翻页

22.head:只看头几行 23.tail:只看后几行

文本处理:
cut、join、sed、awk
database:数据库

关系型数据库:
表:二维表

文本文件:
Tom:23:male:2013/05/06

cut:
	-d: 指定字段分隔符,默认是空格
	-f: 指定要显示的字段
		-f 1,3
		-f 1-3

文本排序:sort
	-n:数值排序
	-r: 降序
	-t: 字段分隔符
	-k: 以哪个字段为关键字进行排序
	-u: 排序后相同的行只显示一次
	-f: 排序时忽略字符大小写

uniq: 
	-c: 显示文件中行重复的次数
	-d: 只显示重复的行

文本统计:wc (word count)
	-l 
	-w
	-c
	-L

字符处理命令:tr —— 转换或删除字符
tr [OPTION]... SET1 [SET2]
	-d: 删除出现在字符集中的所有字符
tr ab AB