Linux系统命令行及常用文件管理命令

本文发布时间: 2019-Mar-22
Linux的命令行是很重要的工具,也往往是初学者最大的瓶颈。有朋友用了很长时间的Linux图形界面,基本不使用命令行,所以装的Linux最终成了摆设。这里总结一些命令行下常使用的命令,希望能有用。所谓的命令,其实就是可执行文件(executable file)。它们一般是由C编写的,已经经过编译而生成的可执行的二进制文件(binary file)。这些可执行文件被放在特殊的目录(默认路径)下面,以便操作系统可以自动找到它们,而不用总是输入该文件的绝对路径(absolute path)。比如说ls,我们在命令行中直接输入"ls",操作系统自动会帮我们找到ls (ls绝对路径实际上是在/bin/ls)。随后,这些可执行文件被载入内存,成为一个程序(program),以实现某些操作。我们当然也可以编写自己的程序,然后将编译好的可执行文件放在默认路径下面,成为新的命令。而一个程序,从计算机语言上说,像一个函数,输入某些自变量,得到经过处理后的结果。从生活化的角度上来说,一个程序就像一个咖啡机,放入咖啡豆,根据选择,制作出各式咖啡。我们的命令也是这样。当我们在命令行输入命令的时候,往往由一下方式构成:$ls -l /home整个一行命令由空格分为三个部分(注意, $是自动出现的提示符,有时还会在此之前出现计算机名)。第一个为命令的名字ls,这个命令是列出目录中所有文件,第二个-l是关键字,它告诉ls要列出每个文件的详细信息,第三个/home为参数,表示我所要列出的目录是/home。实际上关键字是一种特殊的参数,大部分情况下用来开关程序的某些特殊功能 (用来选择做出的是拿铁咖啡还是黑咖啡)。而参数是用来传递给程序的一般的变量。ls经过处理之后,将在终端输出/home下面包含的各个文件名 (该文件系统见:http://www.cnblogs.com/vamei/archive/2012/09/09/2676792.html):vamei another关键字和参数可以不止有一个,比如:$ls -l -a /home /bin列出/home和/bin目录下的文件,-a表示列出全部文件(即使是隐藏文件也要列出), -l表示列出每个文件的详细信息。(如果命令没有被放在默认路径中,你也可以输入命令的绝对路径来执行。这与执行一个可执行文件无异)对于大多数的shell来说,都有命令补齐的功能。当你在$的后面输入命令的一部分时,比如rmdir的rmd的时候,按Tab键,Linux会帮你打剩下的字符,补充成为rmdir。不止是命令,如果你输入的是文件名,Linux也可以帮你补齐。比如说, $ls a.txt。当你输入到$ls a.t的时候,按Tab键,Linux会帮你补齐该文件名,成为$ls a.txt。当然,这样做的前提是你输入到rmd的时候,默认路径下能和它相符的命令只有一个rmdir了。如果有多个相符的命令,连按两下Tab,Linux会显示所有的相符的命令。实际上,许多命令的功能都可以通过图形化界面来实现,学习这些命令的意义在哪里呢?首先,Linux的图形化界面并不好,并不是所有的命令都有多应的图形按钮。而且在图形化界面崩溃的情况下,你就要靠在命令行输入命令来恢复计算机了。但除了这些之外,还在于命令本身是一个函数(function)。在计算机中,函数是有特殊功能的程序模块,其目的是重复使用已有代码。当我们想要让计算机做很复杂的事情(比如说: 在晚上12:00下载某个页面的所有链接,然后复制到移动硬盘)的时候,不断地去按各个图形化按钮并不是个很聪明的事情 (1. 要点很多下,2. 必须等到12:00)。我们通常是通过编程来实现这样一些复杂任务(比如shell编程),这时,就可以把命令作为函数,嵌入到我们的程序中 (而不是重新去写这些功能。Linux下的有些命令是经过二三十年才完善的,重新写不是很容易)。下面是一些命令的简介,我会在后面Linux相关的介绍中补充其它:1. 如何了解一个陌生的命令。有一些命令可以用来了解某个命令本身的情况,比如这个命令的绝对路径。$which lswhich 在默认路径中搜索命令,返回该命令的绝对路径。$whereis lswhereis 在相对比较大的范围搜索命令,返回该命令的绝对路径。$man lsman 查询简明的帮助手册。对于大部分的Linux自带的命令来说,当作者编写它的时候,都会带有一个帮助文档,告诉用户怎么使用这个命令。(man可以说是我们了解Linux最好的百科全书,它不但可以告诉你Linux自带的命令的功能,还可以查询Linux的系统文件和系统调用。如果想要深入学习Linux,就必须要懂得如何用man来查询相关文档。)$info lsinfo 查询更详细的帮助信息2. 文件管理相关我们之前从逻辑层面了解了文件的组织方式,(见:http://www.cnblogs.com/vamei/archive/2012/09/09/2676792.html)。有一些命令可以帮助我们"修剪"之前看到的文件树。$touch a.txt如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。(这个命令实际上用得并不广泛,但可以帮我们创建一个空文件来实验下面操作)$ls .是list的简写,列出当前目录下的所有文件名$ls -l a.txt列出文件的详细信息$cp a.txt b.txtcp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到文件b.txt$cp a.txt ..将a.txt复制到父目录的a.txt$mv a.txt c.txtmv是move的简写,用来移动文件。将a.txt移动成为c.txt (相当于重命名rename)$mv c.txt /home/vamei将c.txt移动到/home/vamei目录$rm a.txtrm是remove的缩写,用于删除文件。删除a.txt$rm -r /home/vamei删除从/home/vamei向下的整个子文件系统。-r表示recursive, 是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。(程序员总是对这个命令很感兴趣, $rm -rf / 它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… 一般情况下,应该没有人会用这个命令。)$mkdir /home/vamei/good创建一个新的目录$rmdir /home/vamei/good删除一个空的目录总结:命令的实质是要运行一个程序。which, whereis, man, infotouch, ls, mv, cp, rm, mkdir, rmdir作者:Vamei 出处:http://www.cnblogs.com/vamei


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表