GNU是“GNU’s Not Unix”的递归缩写。Stallman宣布GNU应当发音为Guh-NOO,与canoe发音相同,以避免与gnu(非洲牛羚,发音与new相同)这个单词混淆。 UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件。 为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。这个就是被称为“反版权”(或称Copyleft)的概念。 1985年Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被Red Hat兼并的Cygnus Solutions。 到了1990年,GNU计划已经开发出的软件包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC,以及大部分UNIX系统的程序库和工具。唯一依然没有完成的重要组件就是操作系统的内核(称为HURD)。 1991年Linus Torvalds编写出了与UNIX兼容的Linux操作系统内核并在GPL条款下发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称Linux。(尽管如此GNU计划自己的内核Hurd依然在开发中,目前已经发布Beta版本。) 许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到Windows和Mac OS上
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统
Ubuntu(又称乌班图)是一个以桌面应用为主的开源GNU/Linux操作系统,Ubuntu 是基于Debian GNU/Linux,支持x86、amd64(即x64)、ARM和ppc架构,由全球化的专业开发团队(Canonical Ltd)打造的。 ##新的改变
Kernel 操作系统内核 操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。
Shell就是一个命令型解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
RPM = Red Hat Package Manager 使用具有相同名称的包的Linux发行版的默认包管理器。它最初由Red Hat开发,最终在许多Linux发行版中得到广泛认可。YUM代表Yellowdog Updater Modified,是使用RPM包格式的Linux发行版的版本。这两个只适用于基于RPM的发行版,不适用于那些使用像Ubuntu这样的Debian软件包的人
#ls -m -a 列出目录下的一切文件,包含以 . 最初的隐含文件。//常用 -m 横向输出文件名,并以“,”作分格符。 -c 输出文件的 i 节点的修正时刻,并以此排序。 -R 列出一切子目录下的文件。 -l 列出文件的具体信息。 -s 在每个文件名后输出该文件的巨细。 -k 以 k 字节的方式表明文件的巨细。 -i 输出文件的 i 节点的索引信息。
export命令
$df -a, --all include dummy file systems -B, --block-size=SIZE use SIZE-byte blocks –direct show statistics for a file instead of mount point –total produce a grand total -h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)(最常用) -H, --si likewise, but use powers of 1000 not 1024 -i, --inodes list inode information instead of block usage -k like --block-size=1K -l, --local limit listing to local file systems –no-sync do not invoke sync before getting usage info (default) -P, --portability use the POSIX output format –sync invoke sync before getting usage info -t, --type=TYPE limit listing to file systems of type TYPE -T, --print-type print file system type -x, --exclude-type=TYPE limit listing to file systems not of type TYPE
不同的shell具备不同的功能,shell决定了Linux中默认的shell是/bin/bash,流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。
大多数Linux系统默认使用的shell,bash shell是Bourne shell 的一个免费版本,它是最早的Unix shell,bash还有一个特点,可以通过help命令 来查看帮助。包含的功能几乎可以涵盖shell所具有的功能,所以一般的shell脚本都会指定它为执行路径。
C shell 使用的是“类C”语法,csh是具有C语言风格的一种shell,其内部命令有52个,较为庞大。目前使用的并不多, 已经被/bin/tcsh所取代。
Korn shell 的语法与Bourne shell相同,同时具备了C shell的易用特点。许多安装脚本都使用ksh,ksh 有42条内部命令,与bash相比有一定的限制性。
tcsh是csh的增强版,与C shell完全兼容。
是一个快捷方式,已经被/bin/bash所取代。 nologin 指用户不能登录
目前Linux里最庞大的一种shell:zsh。它有84个内部命令,使用起来也比较复杂。一般情况下,不会使用该shell。
用traceroute命令可以知道信息从你的计算机到互联网另一端的主机是走的什么路径
Linux中有一个更好的网络连通性判断工具,它可以结合ping nslookup tracert 来判断网络的相关特性,这个命令就是mtr
telnet命令用于登录远程主机,对远程主机进行管理 //格式: telnet ip prot
ext3,ext2,ext4,xfs linux和其他心痛一样由核心(kernel),shell(命令解释器),应用程序组成
uptime命令主要用于获取主机运行时间和查询linux系统负载等信息 查看系统整体状态:top htop跟top一样,也是打开一个实时的监控界面 free查看磁盘使用情况
Windows类,NetWare类,Unix系统,Linux
ping ifconfig route netstat
vi/vim touch nano
查看文件内容的命令: cat 由第一行开始显示内容,并将所有内容输出 tac 从最后一行倒序显示内容,并将所有内容输出 more 根据窗口大小,一页一页的现实文件内容 less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符 head 只显示头几行 tail 只显示最后几行 nl 类似于cat -n,显示时输出行号 tailf 类似于tail -f