自学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