之前一直以为
Linux和Windows差不多,但是学习了Linux基础入门之后才发现两种操作系统之间差距非常大。
Linux只是在硬件之上的内核和系统调用,就连我们在Windows里习以为常的图形界面都是Linux上的软件。在使用Linux的时候,我们都习惯于使用终端和命令行进行操作,而不是像Windows那样的图形界面里的鼠标键盘的共同操作。物理机系统可通过[Ctrl] [Alt] [F1]~[F6]切换6个纯命令行界面的终端,通过[Ctrl] [Alt] [F7]从终端切换回图形界面。而且学习之后我才知道,Linux里面一切皆文件,相对于Windows里的文件后缀名区分文件类型,Linux不通过后缀名区分文件类型,可以通过file命令查看文件类型。
在使用Linux的时候,我们不直接和系统打交道,而是通过Shell(命令解析器)。Shell就像一个壳隐藏了操作系统的底层操作。通俗来讲,Shell就是可以接受用户输入命令的程序。在UNIX/Linux中比较流行的常见的Shell有bash,zsh,ksh,csh等等,Ubuntu终端默认使用的是bash,默认的桌面环境是 GNOME或者Unity(基于 GNOME)。
在Linux系统中有很多十分方便的快捷命令。
Tab:可以用来补全命令、目录、或者命令参数,连续按两次还可显示所有能匹配到的结果; [Ctrl C]:用来终止当前程序并且不退出终端; [Ctrl d]:键盘输入结束或者退出终端; [Ctrl s]:暂定当前程序,暂停后按下任意键恢复运行; [Ctrl z]:将当前程序放到后台运行,恢复到前台命令为fg; [Ctrl a]:将光标移至行头,相当于home,[Ctrl e]相当于[end]; [Ctrl k]:除从光标所在位置到行末; [Alt backspace]:向前除一个单词; [shift pgup]:将终端显示向上滚动,[shift pgdn]向下滚动。在Linux中,通配符主要是“*”和“?”,可用来对字符串进行模糊匹配,终端里的通配符由Shell完成。
Linux中还有一部分特别重要的命令:
man命令:man命令是Linux中一个十分重要的帮助指令,内容包括计算机程序(库和系统的调用),正式的标准和惯例,抽象的概念,通过执行man命令调用手册页。man命令手册比较重要的是前三个:1.一般命令;2.系统调用;3.库函数,涵盖了C标准函数库。man命令如果加上数字参数,可以指定从哪本手册中搜索帮助。
ls命令:用于显示当前目录下的文件,可以通参数[-a]显示隐藏文件(Linux下隐藏文件皆以‘.’开头)。
cd命令:Linux下一切皆文件,因此在终端中[cd]命令就显得尤为重要。这个命令可以通过相对路径进入到你想进去的目录中。
cp命令:用于终端中文件或目录的复制操作。
rm命令:用于终端中文件或目录的除操作。
cat命令:用于正序打印文件内容到终端,与之相反的tac命令倒序打印问价内容到终端。
declare命令:用于声名一个变量,用‘=’号赋值,用echo和$命令读取变量的值。
Shell中运行的大部分命令都将以审理了的子进程的方式运行。
环境变量有3种:1.当前Shell进程私有用户自定义变量,只在当前Shell中有效;2.Shell本身内建的变量;3.从自定义变量导出的环境变量。