前言:linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。
首先介绍一个名词"控制台(console)",它就是我们通常见到的使用字符操作界面的人机接口,例如dos。我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。我们现在要了解的是基于Linux操作系统的基本控制台命令。有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。在这之前,我们先了解一些命令所代表的意思: ( ~) 代表自己的家(宿主) ( / ) 代表根目录 Tab 可以自动补齐 Ctrl+U 清空至行尾首 Ctrl+K 清空至行尾 Ctrl+L 清屏 Ctrl+C 取消本次命令编辑 root 当前登录系统用户为root @ 分隔符 localhost 主机名,默认为localhost / 当前坐在目标位置 在根目录 $ 普通用户 (#) 特权用户
一、查看及文件目录的命令:pwd、cd、ls、du 二、创建目录和文件:mkdir、touch、ln 三、复制、删除、移动目录和文件:cp、rm、mv 四、查找目录和文件:which、find
下面我们一一介绍
工作目录是用户操作文件或其他子目录的默认位置起点。使用pwd命令可以不添加任何选项或参数。例如,root用户在/root目录中执行pwd命令时输出信息为“/root”,则表示当前的工作目录位于/root。
通常使用时需要切换到目标位置(文件夹)作为参数。若不指定目标位置,默认将切换到当前用户的宿主目录(家目录),宿主目录是linux用户登录到系统后默认的工作目录。例如,一下操作将会把工作目录更改为/boot/grub2,并执行命令确认当前所处位置。 在使用cd命令的同时,还可以跟一些特殊字符来达到相关目的: cd - 返回上一操作 cd ~ 返回家目录 cd / 返回根目录 cd . 到达本目录 cd … 到达上一目录
包括子目录和文件的相关属性信息等。使用的参数可以是目录名,也可以是文件名,允许在同一条命令中同时使用的多个参数。执行不带任何选项、参数的ls命令,可显示当前目录中包含的子目录、文件列表信息(不包括隐藏目录、文件)。 例如,在boot目录中输入ls,可以查看该目录中的内容。 ls命令还可以跟一些特殊字符来达到所需目的: ls -l 查看文件的详细信息 ls -a 查看隐藏文件 ls -A 查看隐藏文件,除了. … ls -d 显示本目录的信息 ls -h 友好形式显示带有单位的信息 ls -R 递归显示(如果有子目录,则会把子目录中的文件一次展现) 除此之外ls会显示不同颜色,下面是这些颜色的含义: 黑色——目录 绿色——可执行文件 红色——压缩文件 浅蓝色——连接文件 粉红色——图片文件 黄色——设备文件 灰色——其他文件 可以切换到/dev目录下用ls查看一下,会看到一部分为设备文件。
使用目录或文件的名称作为参数。 du命令后面经常会使用到三个特殊字符: -a 统计磁盘空间占用时包含所有的文件,而不仅仅只统计目录 -h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 -s 只统计所占空间总的大小,而不是统计每个子目录、文件的大小 也可以将特殊字符融合使用,例如:du -sh/var/loh 统计etc目录下passwd文件的总共占用的空间大小。 du -ah /boot/ 分别统计多个文件所占用的空间大小。
使用要创建的目录位置作为参数(可以有多个)。 例如,执行“mkdir csdn”命令将在当前目录下创建名为csdn的子目录。 如果需要一次性创建嵌套的多层目录,必须结合“-p”选项,否则只能在已经存在的目录中创建一层子目录。例如,以下操作将创建一个目录/csdn,并在/csdn目录下创建子目录chanze,再在/csdn/chanze目录下创建子目录xiao。
touch命令本来用于更新文件的时间标记,但在实际使用中经常用于创建新的创新文件。使用文件名作为参数,可以同时创建多个文件。当目标文件已存在时,将更新该文件的时间标记,否则将创建指定名称的空文件。例如,以下操作将在 /csdn/chanze/xiao目录中创建两个空文件,文件名分别为JiChuMingLing.txt、HaiZeiWang.movie。
ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。 当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。 这里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又 软链接和硬链接两种,软链接就是ln –s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。 如果你用ls察看一个目录时,发现有的文件后面有一个@的符号,那就是一个用ln命令生成的文件,用ls –l命令去察看,就可以看到显示的link的路径了。 -s 是代号(symbolic)的意思。 -f : 链结时先将与 dist 同档名的档案删除 -d : 允许系统管理者硬链结自己的目录 -i : 在删除与 dist 同档名的档案时先进行询问 -n : 在进行软连结时,将 dist 视为一般的档案 -s : 进行软链结(symbolic link) -v : 在连结之前显示其档名 -b : 将在链结时会被覆写或删除的档案进行备份 -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾 -V METHOD : 指定备份的方式
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
-a:此参数的效果和同时指定"-dpR"参数相同; -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -R/r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立符号连接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。 例如:将目录 /csdn/chanze/xiao下的所有文件一起复制到目录 /mnt中。 将目录 /mnt/xiao里的HaiZeiWang.rmvb文件复制到 /csdn/chanze 并改名为LuFei.rmvb
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文件。如果仅按Enter键或其他字符,文件不会被删除。 -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; –preserve-root:不对根目录进行递归操作; -v:显示指令的详细执行过程。 例如,删除目录 /csdn下所有文件和子目录。
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:
如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。 注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
–backup=<备份模式>:若需覆盖文件,则覆盖前先行备份; -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 –strip-trailing-slashes:删除源文件中的斜杠“/”; -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; –target-directory=<目录>:指定源文件要移动到目标目录; -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 例如:将目录 /mnt/xiao 下的JiChuMingLing_ln.txt文件改名为JiChuMingLing_csdn.txt。 将目录 /mnt/xiao 下的JiChuMingLing_csdn.txt移动到目录 /csdn中。
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名; -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径; -w:指定输出时栏位的宽度; -V:显示版本信息。 例如:找到名为ls的、位于/usr/bin/ls的命令程序文件。
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。 find命令后面可跟的选项有很多,这里不做过多的介绍。让我们直接做个实例: 列出目录 /mnt下的所有文件和文件夹 在目录 /mnt下查找以.txt结尾的文件名 结尾:这次我们就暂时介绍这十二个linux基础命令,后面将继续更新。
