Q:最近Linux好像挺火的,那么Linux是什么鬼?
A:
Linux是一种操作系统,其功能和Windows、Mac差不多。不过Linux以前没有图形界面,所有操作在一个终端/命令行/纯文本界面完成,有点像类似N年前的DOS系统。所以Linux没有Windows广为人知,但在服务器领域Linux占据大半的江山,也就是说大部分服务器电脑用的操作系统都是Linux而不是Windows什么的。最近Linux也有了带图形界面的发行版本,比如Ubuntu,加上Linux其他优势(小巧、稳定、高效开发等)所以也就开始多人用起来了。
要知道Linux比其它操作系统更加凸显内核与外壳(kernel与shell)的概念。kernel是只一个操作系统的核心部分,负责管理系统自言、调度任务、管理文件等功能。外壳则是用户与内核交流的界面,相当于一个翻译器,把用户的操作翻译给内核。因为Linux是一款开源软件,即所有人都可以获取其源代码,并做自己的修改,所以有各种版本的kernel,有更多版本的shell。一般来说kernel不会轻易变动,但是shell则有很多种,不同的shell与kernel搭配起来组成了各种Linux的发行版本,如我们熟悉的Redhat、Ubuntu、SUSE等。
Q:什么?Linux的所有操作可以在一个纯文本界面完成?那我怎么进入某个目录、查看文件、怎么创建删除、怎么复制粘贴?
A:
Redhat、CentOS等发行版本是纯字符界面的,Ubuntu则是带图形界面的。在Ubuntu的各种操作和在Windows、Mac类似,但也可以调出字符界面终端,展现我们的逼格。最快捷的方式是快捷键组合:
【Ctrl】+【Alt】+【T】
如此我们打开了我们所说的命令行/终端/字符界面。我们可以抛弃鼠标,在命令行完成所有操作。
在了解一些具体的命令,比如进入目录、查看文件、创建删除前,最好先了解命令行的命令格式——
命令 【选项】 【参数】
这就是一条命令的的基本格式,即命令名+空格+选项+空格+参数。比如一下的命令——
cd /root/home/user #进入/home/user这个路径(文件夹)
cd .. #返回上一级目录,如果党建是/home/user,那就进入/home
cd ~ #进入家目录,即/home/user这一个目录
ls #显示当前目录下有哪些文件和目录
ls -l #显示当前目录下所有文件和目录以及它们的权限、大小等信息
ls -lh directory1 #显示当前目录下diretory1这个目录里的目录、文件以及详细信息
这些都是常用的命令。第1到3条命令中的cd命令就是change directory的意思,也就是改变当前目录。【..】和【~】是特殊参数,前者代表上一级目录,后者代表家目录,也就是/home/user。第4到6条命令中的ls命令是list directory的意思,即列出目录的内容。【-l】和【-lh】都是选项,不同的选项会显示命令不同的功能。
要进入某个目录,用【cd】命令,要查看文件,用【ls】命令。
如果是创建目录,则使用【mkdir】make directory。删除目录,则是【rmdir】remove empty directory(只能删除空目录)。常用语法如下——
mkdir directory1 #在当前目录下创建一个叫directory1的目录
rmdir directory1 #删除当前目录下一个叫directory1的空目录
Linux有各种类型的文件,不同类型文件有不同的命令来创建,但删除各种文件,都可以用一个命令【rm】remove搞定——
rm filename #删除一个名为filename的文件
rm -r directory1 #删除一个名为directory1的目录,无论是否为空目录
在命令行中,复制和粘贴是同时完成的,用到的命令是【cp】copy——
cp /home/old/file /home/new #把/home/old目录下的文件file复制到/home/new目录
cp -r /home/old/directory /home/new #把/home/old下的目录directory复制到/home/new目录
与复制粘贴相关的还要剪切粘贴,也是一句搞定的命令【mv】move——
mv /home/old/file /home/new #把/home/old目录下的文件file移动到/home/new目录
mv /home/old/directory /home/new #把/home/old下的目录directory移动到/home/new目录
要注意的事,【mv】也是一个重命名的命令——
mv oldname newname #把名为oldname的文件/目录改名为newname
总结来说,进入目录用到【cd】,查看文件用【ls】,创建删除目录用【mkdir】和【rmdir】(只能删除空目录),删除文件用【rm】(加选项-r能删目录),复制粘贴用【cp】,剪切粘贴用【mv】,而【mv】也能用来重命名。各种命令加上其配套的选项可以实现更多功能。
Q:这么多命令,每一条命令还配套这么多选项,怎么记啊?
A:
Linux能识别的命令大概有3000+条,估计没几个人能完全记得下。常用的命令也有200+条,这个多用多练的话,还是能记住的。我们要做的是记住常用的命令和配套的选项。一些生僻的,或者说偶然间大脑短路忘了某个命令,可以上网查找嘛。
什么?没网?那可以在命令行使用Linux自带的帮助工具【man】manual命令——
man command_name #显示名为command_name的命令的用法
【man】这个命令可以查到绝大多数命令的用法,而那少数找不到的命令是shell专属的,要用【help】命令来查看,语法和【man】一样。不过都是帮助文档是英文写的。。。好好练一下英语吧。
2016-10-1
2016-10-2