Linux :
1、Linux的发展史 unix---minix---linux
Unix
是Ken Thompson当时是为了让一台空闲的电脑上能够运行“星际旅行”游行,用了1个月的时间 编写出了 Unix操作系统的原型,BCPL语言 为基础,设计出很简单且很接近硬件的 B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。因为B语言的跨平台性较差,为了能够在其他的电脑上也能够运行这个非常棒的Unix操作系统,Dennis Ritchie和Ken Thompson 从B语言的基础上准备研究一个更好的语言,然后他俩在B语言的基础上又研发出了先在大名鼎鼎的C语言,然后用C语言写出了Unix操作系统。
Minix
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
Linux
因为Minix只是教学使用,因此功能并不强,因此Torvalds利用GNU的bash当做开发环境,gcc当做编译工具,编写了Linux内核-v0.02,但是一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,因为Unix是遵循POSIX规范的,因此Torvalds修改了Linux,并遵循POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口规范); 一开始Lin ,后来经过全世界的网友的帮助,最终能够兼容多种硬件;
2、Linux的基本命令操作
查看文件信息:ls
ls -a显示指定目录下所有子目录与文件,包括隐藏文件
ls -l以列表方式显示文件的详细信息
ls -h配合 -l 以人性化的方式显示文件大小
通配符:
*文件代表文件名中所有字符
ls te*查找以te开头的文件
ls *html查找结尾为html的文件
?代表文件名中任意一个字符
ls ?.c只找第一个字符任意,后缀为.c的文件
ls a.?只找只有3个字符,前2字符为a.,最后一个字符任意的文件
[][”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。
[abc]匹配a、b、c中的任意一个
[a-f]匹配从a到f范围内的的任意一个字符
ls [a-f]*找到从a到f范围内的的任意一个字符开头的文件
ls a-f查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用
\如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。
ls \*a查找文件名为*a的文件
输出重定向命令:
>输出重定向会覆盖原来的内容
>>输出重定向则会追加到文件的尾部
分屏显示:more
管道:| 一个命令的输出可以通过管道做为另一个命令的输入 就是一头进一头出
清屏:clear
切换工作目录: cd
cd 切换到当前用户的主目录(/home/用户目录),用户登陆的时候,默认的目录就是用户的主目录。
cd ~切换到当前用户的主目录(/home/用户目录)
cd .切换到当前目录
cd ..切换到上级目录
cd -可进入上次所在的目录
显示当前路径:pwd
创建目录:mkdir
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
绝对路径和相对路径
相对路径 在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
绝对路径 在输入路径时,最前面是 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
创建文件:touch
查看历史命令:history
查看文件内容:cat
编辑文件:gedit
删除目录:rmdir
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
删除文件:rm 使用rm命令要小心,因为文件删除后不能恢复
rm -i以进行交互式方式执行
rm -f强制删除,忽略不存在的文件,无需提示
rm -r递归地删除目录下的内容,删除文件夹时必须加此参数
建立链接文件:ln
ln -s 软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
ln硬链接:硬链接只能链接普通文件,不能链接目录。
查看或者合并文件内容:cat
文本搜索:grep 可以搜索文件内容·
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
grep -v显示不包含匹配文本的所有行(相当于求反)
grep -n显示匹配行及行号
grep -i忽略大小写
^a行首,搜寻以 m 开头的行;grep -n '^a' 1.txt
ke$行尾,搜寻以 ke 结束的行;grep -n 'ke$' 1.txt
[Ss]igna[Ll]匹配 [] 里中一系列字符中的一个;搜寻匹配单词signal、signaL、Signal、SignaL的行;grep -n '[Ss]igna[Ll]' 1.txt
.(点)匹配一个非换行符的字符;匹配 e 和 e 之间有任意一个字符,可以匹配 eee,eae,eve,但是不匹配 ee,eaae;grep -n 'e.e' 1.txt
查找文件:find
find ./ -nametest.sh查找当前目录下所有名为test.sh的文件
find ./ -name '*.sh'查找当前目录下所有后缀为.sh的文件
find ./ -name "[A-Z]*"查找当前目录下所有以大写字母开头的文件
find /tmp -size 2M查找在/tmp 目录下等于2M的文件
find /tmp -size +2M查找在/tmp 目录下大于2M的文件
find /tmp -size -2M查找在/tmp 目录下小于2M的文件
find ./ -size +4k -size -5M查找当前目录下大于4k,小于5M的文件
find ./ -perm 0777查找当前目录下权限为 777 的文件或目录
拷贝文件:cp
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
-f已经存在的目标文件而不提示
-i交互式复制,在覆盖目标文件之前将给出提示要求用户确认
-r若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名。
-v显示拷贝进度
移动文件:mv
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
-f禁止交互式操作,如有覆盖也不会给出提示
-i确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
-v显示移动进度
归档管理:tar
tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
-c生成档案文件,创建打包文件
-v列出归档解档的详细过程,显示进度
-f指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
-t列出档案中包含的文件
-x解开档案文件
归档:tar -cvf test.tar * 归档是没有压缩功能的
解档:tar -xvf test.tar
文件压缩解压:gzip
-d解压
-r压缩所有子目录
压缩用法:tar cvzf 压缩包包名 文件1 文件2 ...
解压用法: tar zxvf 压缩包包名
归档并压缩:tar -zcvf test.tar.gz *
解压缩:tar -zxvf test.tar.gz
解压到指定目录:-C (大写字母“C”)
文件压缩解压:bzip2
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
文件压缩解压:zip、unzip
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件