Linux同Windows一样,也是一个操作系统。不同的是,Windows是微软公司的,是需要花钱的,虽然国内用的基本都是盗版系统,但人家确实是需要花钱的!Linux是一套免费开源的类Unix操作系统。免费,代表Linux的使用不需要给作者交任何费用;开源,代表全世界的所有人,都可以看到Linux操作系统的源码。
Linux源码地址:https://github.com/torvalds/linux
Linux的作者,就是鼎鼎大名的Linus Benedict Torvalds,而他在开发Linux操作系统时,为了方便代码版本的管理,一不小心,写了个工具,就是著名的Git工具!Linux的图标,是个瘦瘦的企鹅,以前有人说腾讯以“借鉴”闻名,终于也有人“借鉴”腾讯的肥企鹅图标了,额,对于这种说法的话,我一般情况下都懒得去反驳!
Linux是一个操作系统的内核,不少公司使用Linux操作系统的内核,开发出了自己的Linux发行版系统,这就是我们经常安装使用的Linux操作系统,包括Ubuntu、CentOs、RedHat、Apache、Debian、红旗Linux等等等等,不同的发行版由于其拥有的服务或者工具不一样,所以适用的场合也就不一样了。
GUI就是图形化用户界面,比如我们使用的Windows,点点图标,就可以完成一系列操作,优点就是简单,门槛低,直观,人机交互好!
cmdline就是命令行界面,比如windows里边也有命令行,就是黑不溜秋的界面,不能使用鼠标,只能使用键盘,优点就是装逼!
linux里,主要使用的就是这个cmdline终端进行各种操作的,为什么不使用图形化界面,非要使用这种装逼界面呢?而且这装逼界面也不好用啊,哪有图形化界面使用方便呢!
其实是因为windows面向的是普通用户,上至八十老太,下至三岁小孩,良好的人机交互界面,就有利于用户的使用。而Linux主要用于服务器,或者程序开发等,说白了,就是面向的是专业人士,对于专业人士来说,如果连命令都记不住,还谈什么专业呢!
其实,由于Linux多用于服务器,而服务器最大的特点,就是常年开机,还要求稳定,而且服务器一般都是对应多个运维人员在维护的,而运维人员也不会天天对服务器进行操作,所以图形化界面,既不利于系统的稳定,还有点鸡肋,而且使用图形化界面,还影响运维人员的装逼,所以,在Linux操作系统里,大家更多的是,使用命令行界面。想想一下,黑不溜秋的界面,巴拉巴拉输入一堆奇怪的字母,然后屏幕黑的绿的红的字体不断闪过,是不是装逼~其实可能就只是跳转了一下文件,查看了一下文件夹里的内容!
前面讲了半天装逼的意义,接下来,就开始讲如何快速达到装逼!
注:文中所有命令操作中,方括号([ ])中的内容为需要根据自己实际情况修改的参数,例如文件名,或文件夹名字等。
单独直接输入ls命令,就会打印出当前所在文件夹下的文件夹以及文件,但不包括隐藏文件。
参数:
-a:打印所有的文件夹下的文件,包括隐藏文件
-l:把文件的信息以列表形式详细的打印出来
这里,就涉及到了一个概念,隐藏文件(夹),不论在Linux还是windows中,都存在隐藏文件(夹),在Linux中,文件名第一个字符是.(点)的,就是隐藏文件,如文件:.bashrc就是一个隐藏文件。使用ls是打印不出这个文件的,必须执行ls -a才能显示出隐藏文件。
在这里,再提一下Linux中特殊的文件夹:
.:这个文件夹名字只有一个点(.)的文件夹,在每个文件夹下必有,这个文件夹,就代表着当前的文件夹。
..:这个文件夹名字是两个点(..)的文件夹,在每个文件夹下也都有,这个文件夹,就代表着当前文件夹的上一级文件夹。
~:代表当前用户的家目录,root用户的家目录为/root,用户xx的家目录为/home/xx/。
-:代表着执行cd命令前,所在的文件夹。
/:代表根目录文件夹,即所有文件夹最原始的地方,类似于windows中的盘符。
在使用ls -l查看文件夹时,会发现,文件夹前边的信息中,有类似下面的这种信息:
drwxr-x-w-
这里就涉及到了文件的信息,先把上边的一串,分成四部分:第一部分为第一个字符d,第二部分为接下来的三个字符rwx,第三部分为接下来的三个字符r-x,第四部分为最后的三个字符-w-。
首先第一部分的d表示的是文件的类型,Llinux中一共七种文件,而且Linux讲究,万物皆文件:
d:文件夹
-:普通文件
l:链接文件
c:字符设备文件
b:块设备文件
s:套接字文件
p:管道文件
接下来第二部分,r代表可读,w代表可写,x代表可执行,相应位上如果是-,则代表不具备相应的权限。
第三部分和第四部分的字符的解析也通第二部分一样。不同的是,第二部分代表当前文件属主的权限,就是当前文件是属于谁的,谁就是属主,用u表示,也就是单词user的首字母;第三部分代表当前文件属主所在组其他成员的权限,也就是一个组可以包括多个成员,除了属主,其他组成员的权限,用g表示,也就是group;最后一部分是剩下的其他用户的权限,用o表示,也就是others的首字母。
cd命令后面跟上要跳转到的目的地址,就可以进行目录的跳转。
这里就涉及到了路径的概念,文件的表示就是文件路径名pathname,而pathname = path + name,即路径名就需要一个是路径,一个是文件名。而表示方法,就分为两种:绝对路径和相对路径。
绝对路径:即从根目录出发,一层一层的表示,直到目的文件,如:/mnt/hgfs/winshare_16/a.txt
相对路径:即从当前所在的文件夹触发,寻找目的文件,这里就可以运用上边的点点(..)文件夹,或者家目录(~)等,灵活组合,例如假如当前正在hgfs文件夹下,我要寻找上面的例子中的文件,那我使用相对路径就是:winshare_16/a.txt。注意,此处最前边没有/,因为只要最前边存在/就代表使用的是绝对路径。
在用上边的命令中,有时候会出现,我不知道我当前在哪个文件夹下呀,那么就可以使用pwd来打印当前所在的文件夹路径,打印出的路径是从根目录开始绝对路径。
新建一个空文件:touch [filename]
新建一个文件夹:mkdir [directoryname]
移动文件或文件夹:mv [srefilename] [desdirname]
复制文件:cp [srefilename] [desfilename]
注意:使用此命令复制文件夹时,需要加参数-r;加参数-f,则表示强制执行。而这两个参数,同样适用于下面的几个命令。
复制文件夹:cp -rf [sredirname] [desdirname]
删除文件或文件夹:rm [filename]
注意:需要删除文件夹时,同样需要加-r参数。而这里有个有意思的东西就是,江湖流传甚久的一个杀招,堪称Linux界的七伤拳!一练七伤,七者皆伤:sudo rm -rf /*
这个命令一旦在公司的服务器上执行成功,天地都会为之变色,而我们执行完这个需要做的,就是赶紧收拾东西跑路!
打印文件中的内容:cat [filename]
Linux的链接文件,分为软链接和硬链接。
软链接文件:类似于windows中的快捷方式,即链接的源文件被删除之后,则此链接文件也不能使用了。
硬链接文件:文件通过源文件,直接链接到物理设备中,即使源文件删除之后,此链接文件仍然可以正常使用,因为它是直接指向物理设备中内容的。
软链接:ln -s [srcfilename] [decfilename]
硬链接:ln [srcfilename] [decfilename]
增加一个用户:useradd [username]
删除一个用户:userdel [username]
为用户设置密码:passwd [username]
切换用户:su [username]
注意:切换到root用户时,可以只输入su,即可。
当root用户切换别的用户时,可以直接切换,不需要输密码,因为root是所有用户的老大,它最牛逼,牛逼是真的可以为所欲为。而其他用户切换到别的用户时,就需要输入密码,因为大家都是普通用户,大家一视同仁,没有钥匙谁也进不了别人的家。
增加一个组:groupadd [groupname]
修改权限:chmod
举个栗子,假如一个文件的权限为:drw-r-x-wx
给文件属主加可执行权限:chmod u+x [filename]
给文件属主所在的组加可写权限:chmod g+w [filename]
给其他用户加可读权限:chmod o+r [filename]
或者可以使用该命令:chmod 777 [filename]
此命令即把rwx,有权限代表1,无权限代表0,将此改成2进制,则,rwx就是二进制的111,即十进制的7,rw-就是二进制的110,十进制的6,-w-就是二进制的010,十进制的2,以此类推。
修改文件属主:chown [filename] [username]
修改组:chgrp [filename] [groupname]
压缩文件为bz2类型:tar -cjvf [file.tar.bz2] [file/]
解压bz2的压缩包:tar -jxvf [file.tar.bz2]
压缩文件为gz类型:tar -czvf [file.tar.gz] [file/]
解压gz的压缩包:tar -zxvf [file.tar.gz]
最后,学习完毕了,想关机,突然发现,鼠标不能用,找不到关机键,这可咋整啊?同样,使用命令!
关机:shutdown -h now
重启:reboot