气象家园投稿第二篇:基本操作与常用命令
上一期跟大家谈了谈我对 Linux 的一些个人感受,也讲了 Fedora 23 的安装过程,那么接下来就是关于“如何用好 Linux”的内容了。本期我将以“让初学者快速上手”为主要目标,介绍 Linux 下的基本操作与常用命令,分享一些我使用时的小经验,希望大家喜欢 :P
快速上手
下面的内容均在 Fedora 20 下进行示范,可能有的小伙伴已经安装了其他 Linux 发行版(如 Ubuntu、CentOS 等),但那并不会造成太大影响。
启动 Fedora 20 以后,进行用户登陆,之后弹出来一个桌面,看起来和 Windows 差不多嘛!正如上期所言,许多 Linux 发行版都具有图形界面,如果你想切换成字符界面,可以通过组合键 Ctrl+Alt+F2~F6
来实现。你可以直接就用字符界面来进行后面的操作,但若想使用图形界面(或许是因为你想一边放音乐一边练习命令),就需要把桌面提供的终端调出来,即在程序列表里面找类似 Terminal
的程序。当然我建议你上网搜一下,你所用系统里调出终端的快捷键是什么?如果你和我一样使用了 Fedora(桌面为 GNOME),那么需要自行设置快捷键 Settings → Keyboard → Shortcuts → Custom Shortcuts → '+'
,如下图:
其中 Name 随意填写,Command 栏写上 /usr/bin/gnome-terminal
。确定以后可以点击图中 Terminal
蓝色长条的右端,即可设置快捷键,我这里是 Super+T
,Super 即 Windows 键。不管你是用的是字符界面,还是桌面下的终端,接下来就开始进行一些简单的操作吧!
进入终端(或字符界面)以后,会出现类似下面的命令提示行,意思是用户 N 在计算机 Dell 上登录了,当前路径是~1
[N@Dell ~]$
以前 Windows 下从“我的电脑”(即文件浏览器)中查看文件,新建文件夹,复制、移动文件等,现在均以在终端敲命令的方式实现,我们先看下面这一系列操作1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19[N@Dell ~]$ pwd
/home/N
[N@Dell ~]$ ls
Data Documents intel Music Public Templates
Desktop Downloads Model Pictures Temp Videos
[N@Dell ~]$ cd Temp
[N@Dell Temp]$ ls
fhello_world_mpi hello sin solve_equation test1.c
fhello_world_mpi.f90 hello.f90 sin.c test1
[N@Dell Temp]$ cp hello hello2
[N@Dell Temp]$ mkdir new
[N@Dell Temp]$ mv hello2 new/
[N@Dell Temp]$ new/hello2
Hello world!
[N@Dell Temp]$ rm new/hello2
rm: remove regular file ‘new/hello2’? y
[N@Dell Temp]$ rmdir new/
[N@Dell Temp]$ cd ..
[N@Dell ~]$
pwd
是查看当前的目录位置,为 /home/N
;ls
为显示当前目录下的内容,可以看到有 Data、Documents......
,它们可能是文件夹、各类文件、可执行程序等等;cd
为切换目录,这里进入 Temp
目录,并 ls
显示了 Temp
目录下的内容;cp
为复制文件,把 hello
这个文件复制成 hello2
;mkdir
为建立新目录,mv
为移动文件,我把复制得到的 hello2
移动到新建的 new
目录下了;new/hello2
的意思是执行 hello2
,这说明 hello2
是个可执行文件,即 Windows 下的 .exe
文件,看,它在屏幕上给你打了个招呼呢!最后我用 rm
、和 rmdir
分别删除了 hello2
文件和 new
文件夹,并回到上一级目录(cd ..
)。
对于上述执行的这些命令,我有几点要说明一下:
绝对路径和相对路径(可能会有人不太清楚):绝对路径即完整的路径,如
pwd
后得到的/home/N
;相对路径即相对于当前目录位置的路径,例如当你要进入/home/N/Temp
,但你现在位置为/home
时,就可以输入cd N/Temp
。顺便提一下几个特殊路径,~
为用户家目录(如对于用户 N,~
相当于/home/N
),.
(点)为当前目录,..
(两个点)为上一级目录,-
为上一次路径。大家可以用cd ~
,cd .
,cd ..
,cd -
试试效果。1
2
3
4
5
6
7[N@Dell ~]$ pwd
/home/N
[N@Dell ~]$ cd /home/N/Temp/solve_equation/method1/
[N@Dell method1]$ cd -
/home/N
[N@Dell ~]$ cd ..
[N@Dell home]$所谓命令,其实也就是程序而已,当你输
ls
的时候,实际上你就是运行了/usr/bin/ls
这个程序。之前我们也在/home/N/Temp
下输入new/hello2
来运行hello2
这个程序,在我看来,ls
和hello2
本质上没多大区别,只是一个是系统自带的程序,一个是我写的程序。由于hello2
被我删了,我们就运行下hello
吧。以绝对路径的形式。1
2
3
4
5[N@Dell ~]$ /usr/bin/ls
Data Documents intel Music Public Templates
Desktop Downloads Model Pictures Temp Videos
[N@Dell ~]$ /home/N/Temp/hello
Hello world!不过如果这样输入呢?
1
2
3
4
5[N@Dell ~]$ ls
Data Documents intel Music Public Templates
Desktop Downloads Model Pictures Temp Videos
[N@Dell ~]$ hello
bash: hello: command not found...当你输入
ls
时,系统明白你要运行/usr/bin/ls
,但输入hello
时系统就晕了,因为你没有事先告诉它你的hello
在哪。实际上你只需要在某个文件(.bashrc
)里写上hello
的绝对路径,系统就会由那个文件获取hello
的路径。这样就可以通过直接敲入hello
来执行而无需敲完整路径了!关于那个文件的事情我们以后再详细聊~
你也可以用相对路径的行式来运行hello
,首先cd /home/N/Temp/
,再敲入./hello
,注意这和直接敲hello
是不同的,之前说过.
(点)是代表当前目录,./hello
相当于给出了相对路径,与cd /home/N/Temp/
组合起来,系统就知道你的hello
文件的位置然后正常运行了。
这儿有个叫which
的命令需要提一下,它可以查看某命令的文件路径在哪。1
2[N@Dell ~]$ which mv
/usr/bin/mv若你没有将
hello
的绝对路径写到.bashrc
文件里,那么which hello
的结果就是“找不着”哦!1
2[N@Dell ~]$ which hello
/usr/bin/which: no hello in ...(这里省略了若干路径)不管是所谓的命令,还是你自己写的程序,实际上我们运行它们都是类似这样的形式
1
[N@Dell ~]$ command [-option] para1 para2 …
command
可以是ls
、/home/N/Temp/hello
等等;-option
为选项,通常以-
或--
(横杠或双横杠)开头;para1
、para2
等即参数。如ls -l ..
会显示上一级目录的详细(因为有-l
选项)内容;如cp -r dir1 dir2
,加上-r
使你可以复制文件夹。实际上,对于每个命令,都有一堆可选择的选项,而又有这么多的命令,怎么可能都记得住嘛!别急,绝大多数命令都有--help
选项,加上这个选项就可以迅速浏览某命令的各选项简述。若要获得某个命令的详细描述,则可以使用man
和info
这两个命令:1
2
3[N@Dell ~]$ ls --help
[N@Dell ~]$ man cp
[N@Dell ~]$ info mkdir我觉得吧,了解了之前的那些简单操作后,大家应该先学好
man
命令,这样以后遇到新命令,就直接man
一下,就什么都知道了哦!另外,你可以先man
一下man
,里面会有对man
的详细说明的,然后百度一下就会了!1
[N@Dell ~]$ man man
有时候我们需要反复执行同一条命令,当这条命令超级长的时候,我想你肯定不耐烦一遍遍输入吧,因此我们要了解下如何查看历史操作。一般在命令行直接用
↑
,↓
方向键就行了,不过这里再介绍下其他方式:1
2[N@Dell ~]$ history
[N@Dell ~]$ !1000history
会列出你之前执行的命令,!1000
则执行history
中编号为1000的那条命令。另外,在命令行按下组合键Ctrl+r
后再输入你的命令,也能快速搜索历史操作并执行。
还有自动补全功能,tab
与tabtab
(按两次),也能让你少敲不少字符。(ps:有些系统并不是用tab
来进行补全哟~)
对了,如果执行某个命令时半天没有回应,你可以试试按下组合键Ctrl+C
来终止命令。比如你用du
时:1
[N@Dell ~]$ du –sh /
其他常用的命令
用户权限:chown
、chgrp
、chmod
、passwd
、su
压缩、解压及打包:gzip
、bzip2
、tar
查看文件内容:cat
、more
、less
、head
、tail
搜索:which
、find
、grep
、locate
网络:ping
、ifconfig
…
系统资源信息:df
、du
、top
、free
…
文件:ln
、touch
、diff
、stat
日期:date
、cal
……
我简单列了一些命令供大家查询练习,但 Linux 的神奇与强大,需要大家自己去摸索研究~
还有大家平时就用普通用户帐号(如我的 N 帐号)吧,管理系统时才需要使用 root 帐号。
心得(不如说是感慨吧)
- 作为非计算机专业的我们,其实并不需要“按部就班”地学习 Linux,或者说不需要抱着本书从头看到尾,而是在了解基本知识后就可以边学习边使用它做些工作了。这样不用浪费太多时间,最重要的是使用它会让你更快地熟悉了解它。
- 由于我们是“跳着”学的,肯定会经常遇到不懂的问题需要上网搜索,这时对信息的检索能力就十分重要了,才可以迅速找到解决方法啊!相互交流,多多讨教也是一种有效的方式!
- 从计算机的角度出发进行思考。我时常会琢磨,Linux 作为一类优秀的系统,有哪些能力是理所当然会具备的呢?或者对于 Windows 下许多功能,它又将如何实现呢?比如 Linux 应该能对各用户合理分配资源吧,那需要做些什么呢?再想想 Linux 下怎么查看一个文件夹含有的所有文件数呢?就这样自己思考问题,然后去搜索答案,那么许多问题在出现之前就已经被解决了,相比临时遇到问题再搜索的方式,要节省时间得多。此外,这样也让你思维更活跃,说不定遇到问题时自己突然就知道如何解决了,嗯。
结语
因为我想让第一次使用 Linux 的人能够快速熟悉,许多操作说明难免有些繁琐、啰嗦,之后肯定会以更加简明的形式描述的。最后,如果有问题的话,可以去气象家园给我留言哈!