Linux内核版本:进程调度、内存管理、配置管理虚拟文件系统、提 供网络接口以及支持进程间通信。
Linux发行版 = GNU软件 + Linux内核 + 数据库,包含的大量软件如
GNU(GNU is Not Unix)
1984年由Richard Stallman发起并创建
目标是编写大量兼容于Unix系统的自由软件
GPL(GNU General Public License)
GNU自由软件的通用许可协议
允许用户任意复制、传递、修改及再发布
LGPL(Lesser General Public License)
基于自由软件修改再次发布的软件,仍需遵守GPL
LGPL协议相对于GPL协议较为宽松,允许不公开全部源代码
为基于Linux平台开发商业软件提供了更多空间
Linux特性
1、Linux现在是个人计算机和工作站上的UNIX类操作系统, 它不仅继承了UNIX的特征,而且在许多方面超过了UNIX
2、它能充分发挥硬件功能,它比其他操作系统的运行效率更高
Linux基本思想
终端
文件类型
Linux系统中文件的类型包括:普通文件、目录文件、链接文件、设备文件、管道文件等
Linux文件系统
/boot:跟系统启动相关文件
/dev:设备文件
/etc:配置文件
/home:用户家目录,默认 为/home/USERNAME
/media:挂载点目录,通常用来挂载移动设备(U盘等)
/mnt:挂载点目录,额外临时文件系统(挂载一块硬盘)
/lib:库文件(函数库)可分为两种
静态库(以 .a为后缀)动态库(以 .so .dll为后缀)
动态库与静态库的具体区别
静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,因此体积较大。
动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,因此代码体积较小
/lib64:专用于x86_64系统上的辅助共享库文件存放地址
/opt(可选目录):可选目录,之前是第三软件的安装目录,现在大部分安装的放在/usr/local下面
/proc:内核映射文件 ,都是进程相关信息,系统启动后才生成,系统不启动时该目录为空
/usr:(全局shared read only)通常会被独立分区
/bin:可执行文件,用户命令,系统启动时会使用到的部分命令也会存储在此位置,不能关联至独立分区
/sbin:管理命令,系统启动会使用到其中的部分命令,不能关联至独立分区
/sys:跟硬件设备相关的属性映射文件
/var:可变化的(日志等)
/tmp:临时文件,还有一个/var/tmp
Linux常用命令
ls:显示目录文件
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-h 以方便人识别的方式显示大小,一般配合-l使用
mkdir:创建新目录
mkdir 目录名
-p 递归创建目录
pwd:显示当前目录
rmdir:删除空目录,非空不可以删除
rmdir 目录名
cp:复制文件或目录
cp -rp [原文件或目录] [目标目录]
-r 复制目录
-p 保留文件属性
mv:剪切文件 、改名
mv [原文件或目录] [目标目录]
-f 如果重复则直接覆盖
rm:删除文件或目录
rm -rf [文件或目录]
-r 删除目录,递归删除
-f 强制执行(不进行是否确认)
touch: 修改时间戳,顺便创建空文件
touch [文件名]
cat:显示文件内容
cat [文件名]
-n 显示行号
-E 显示行结束符
file:显示文件类型
file 文件名或者目录
more:分页显示文件内容
more [文件名]
(空格) 翻页
(Enter) 换行
q或Q 退出
b 向上翻页
tail:显示文件后面几行(多用于查看日志文件)
tail [文件名]
-n 指定行数
-f 动态显示文件末尾内容
ln:生成链接文件
ln -s [原文件] [目标文件]
原文件(被链接的文件)
目标文件(新创建的文件夹 )
(刚学第一天,待续)
第二天继续!
常用命令
chmod:改变文件或目录权限
-R 递归修改(可使目录以及目录中的文件同时修改权限)
例如对文件1.txt添加可执行权限
chmod a+x 1.txt
a指对所有用户或组添加权限
g指 对属组的添加权限
u指对属主添加权限
o指对其他非本用户组添加权限
权限还可以用二进制表示
所以授予权限还可以表示为十进制
chmod 777 1.txt (为文件1.txt授予全权限)
chown:改变文件或目录的所有者
chown hpe fengjie(改变文件fengjie的所有者为hpe)
chgrp:改变文件或目录的属组
chgrp lampbrother fengjie (改变文件fengjie的所属组为lampbrother)
文件或目录的属主和属组可以同时修改
例如: chown hpe:lampbrother fengjie(改变文件fengjie的所属组和属主为lampbrother和hpe)
find:文件搜索
搜索文件名为init的文件
find /etc -name ‘init’
搜索大于100MB的文件
find / -size +100M
搜索大于80M小于100M的文件是可以更改条件为+80M -a -size -100(-a为and -o为or)
搜索所有者为user1的文件
find /home -user user1
-group根据所属组查找
搜索五分钟内被修改过属性的文件和目录
find /etc -cmin -5
-amin访问时间 access
-cmin文件属性 change
-mmin文件内容 modify
在/etc下查找inittab文件并显示其详细信息
find /etc -name ‘inittab’ -exec ls -l {} ;
-exec 命令 {} ;对搜索结果执行操作
which:搜索命令所在目录及别名信息
例:which ls
whereis:搜索命令所在目录及帮助文档路径
语法:whereis [命令名称]
范例:whereis ls
locate:在文件资料库中查找文件
语法:locate 文件名
范例:locate inittab
grep:在文件中搜寻字串匹配的行并输出
语法:grep -iv [指定字串] [文件]
-i不区分大小写
-v排除指定字串
范例:grep mysql /root/install.log
man:获得帮助信息
语法:man [命令或配置文件]
范例:man ls 查看ls命令的帮助信息
man services 查看配置文件services的帮助信息
man –f 命令:可以查看该命令所有的帮助文档列表
history:显示命令历史
history -a:把命令追加到~/.bash_history中 history –c :清空历史命令
快捷操作
!#::调用历史中第#条命令
!Str:从后向前找到最近一个Str开头的命令 !!:重复运行上一条命令
wc:统计命令
-c 统计字节数
-l 统计行数
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-L 打印最长行的长度
cut:剪切命令
其语法格式为 cut [-bn] [file] 或cut [-c] [file]或 cut [-df] [file]
使用说明:cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和 字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数 -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除 非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一 个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出; 否则,该字符将被排除。
例
[rocrocket@rocrocket programming]$ who rocrocket :0 2009-01-08 11:07
rocrocket pts/0 2009-01-08 11:23 (:0.0) rocrocket pts/1 2009-01-08 14:15 (:0.0)
如果我们想提取每一行的第3个字节,就这样:
[rocrocket@rocrocket programming]$ who|cut -b 3
c
c
c
若想提取第三第四第八个字节可将3改为3-4,8
如果想提取汉字可使用-c 提取字符,若使用-b 则只会提取字节,出现乱码。
当-b与-n同时使用时才可以对汉字进行提取。
sort:可针对文本文件的内容,以行为单位来排序。
参 数:
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
-u 全局去重
例:
cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第 二列表示水果数量,第三列表示水果价格。那么我想以水果数量来排序 ,也就是以第二列来排序,如何利用sort实现?幸好,sort提供了-t选项 ,后面可以设定间隔符。指定了间隔符之后,就可以用-k来指定列数了
sort -n -k 2 -t ‘:’ facebook.txt
apple:10:2.5
orange:20:3.4
banana:30:5.5
pear:90:2.3
uniq:删除文件中的重复行
(在 发出 uniq 命令之前,请使用 sort 命令使所有重复行相邻。)
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行。
第三天
gzip:压缩文件
语法:gzip [文件]
gzip *:对目录中的文件进行压缩
gunzip:解压缩.gz的压缩文件
语法:gunzip [压缩文件]
范例:gunzip boduo.gz
bzip2:压缩文件
bzip2选项 [-k] [文件]
-k产生压缩文件后保留原文件
范例:bzip2 -k boduo
bunzip2:解压缩
语法: bunzip2选项 [-k] [压缩文件]
-k解压缩后保留原文件
范例:bunzip2 -k boduo.bz2
tar: 打包压缩目录
语法:tar选项[-zcf] [压缩后文件名] [目录]
-c打包
-x解包
-v显示详细信息
-f指定文件名
-z打包同时压缩
压缩后文件格式:.tar.gz
打包并压缩:-zcvf
-jcvf
解压缩:-zxvf
-jxvf
wall:发送广播信息
语法:wall [message]
范例:wall server shutdown after one minitues!
ping:测试网络连通性
ifcconfig:查看和设置网卡信息
语法:ifconfig网卡名称 IP地址
last:列出目前与过去登入系统的用户信息
lastlog:检查某特定用户上次登录的时间
范例:# lastlog
# lastlog -u 502
netstat:显示网络相关信息
-t: TCP协议
-u: UDP协议
-l: 监听
-p: 显示相关链接的程序名
-n: 显示IP地址和端口号,能显示数字的都转换为数字
-a : 显示所有网络连接
setup:配置网络
shutdown:关机重启命令
shutdown [选项] TIME
选项:
-c(cancel):取消前一个关机命令
-h(halt):关机
-r(reboot):重启
TIME:
now:立刻
+m:相对时间表示法,从命令提交开始多少分钟之后,例,+3
hh:mm:绝对时间表示,指明具体时间
其他重启命令
[root@localhost ~]# reboot 立即重启,关闭正在运行的任务
[root@localhost ~]# init 6 等待当前任务执行完毕再重启
重定向
重定向符号
>:输出重定向到一个文件或设备 覆盖原来的文件
>>:追加
<:输入重定向
输入输出标记
标准输入:代码为 0 ;或称为 stdin ;使用的方式为 <
标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>
错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>
标准错误重定向符号
2>: 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件
2>>:追加 2>&1(>&):将一个标准错误输出重定向到标准输出
vi/vim编辑器使用
三种工作模式
一般模式,编辑模式,命令行模式
模式之间的切换
对文件的操作
/word:从上而下在文件中查找字符串“word”
?word:从下而上在文件中查找字符串“word”
n:定位下一个被查找的字符串
N:定位上一个被查找的字符串
退出 ::wq 保存退出 :q! 强制退出
文件内容替换::%s/old/new/gc 在替换命令末尾加入c命令,将对每个替换动作提示 用户进行确认
0:移动到行首
$:移动到行末
G:移至文件的最后行
nG:移至文件第n行
dd:删除光标所在行
ndd:删除包括光标所在行的n 行文本
u:恢复刚才被修改的文本
Y:复制当前行
nY:复制当前行开始的n行
p:将复制的内容粘贴到光标后的一行
P:将复制的内容粘贴到光标前的一行
存盘并退出:ZZ,:wq,:x
:set nu:显示行号
:set nonu:不显示行号
第一章结束!!!!