18893110463的gravatar头像
188931104632018-04-20 11:23:19
linux命令入门教程

不管是学习编程还是运维咱们都需要会一些基础的Linux指令,最近本人在学习Linux,精心的整理了一下,分享给大家,请勿喷。

 我使用的是ubuntu系统,这个系统还是很不错的。我是在电脑安装VM虚拟机,然后在安装Ubuntu。没有这些东东的老铁给我私信 看到我分享给你们。

1.首先看目录

第一个概念是家目录,比如book用户的家目录是/home/book

这是前面讲解过的Ubuntu结构,当你在Ubuntu下面新建一个book用户后,它会在/home目录下新建一个book目录。

/home/book目录来存放book用户自己的一些文件。

同理,你在Ubuntu下面新建guest用户的话,它也会在/home下面guest这个目录。/home/guest来存放guest用户,它自己的一些文件。

如图所示:(此图是我在学习资料中摘抄的)linux命令入门教程

其目录结构为:

linux命令入门教程

2.基础命令:

Ubuntu下,我们通过文件搜索器,输入terminal,即可找到终端,或者使用快捷键:Ctrl + Alt + T也可打开终端。Linux命令是每一个Linux学习者必须掌握的基础知识,入门阶段掌握常用的一些命令即可。 
演示中使用的命令:

    pwd     //显示当前所在的目录

    ls      //显示当前目录下的文件

    cd      //切换路径

    cd ..  //返回上一级路径

    mkdir   //新建目录

    rmdir   //删除目录

    touch   //新建文件

    cp      //复制文件

    rm      //删除文件

    cat     //将文件内容显示到终端中

    clear   //清除屏幕的显示内容

3.linux命令独家记忆法(从别人那里学的)

最简单的是pwd这个命令,我参考了国内很多讲解Linux命令的视频,其实很多老师讲解这个命令的时候,都讲解得不是很完善,他们只是告诉你怎么用,但是他没告诉你怎么记,它的来源是什么。

我这里讲解一下它的来源,它是print workingdirectory,这三个单词的首写字母的组合。这三个单词的中文意思就是打印当前工作路径。我相信你只要掌握这三个单词的含义,你就能清楚的记住pwd这个命令,这样的话,你就知根知底了。

在前面讲过,Linux命令格式是由命令、选项、参数。这三个部分来构成的。在日常工作和学习中,只需要掌握命令部分为pwd就可以了,至于其它的选项、参数可以不用掌握。

 pwd          //打印当前所在的路径

接着是cd命令,cd命令来源是change directory这两单词的首写字母组合。这意思是切换路径。一般情况下,cd命令都不需要加参数,只需要加上,需要切换的目标目录就行了。

 

注意事项

1.切换的路径必须保证存在,可以使用命令来查看某一个路径下的所有内容。

2.一定要记得多使用tab键,让终端为你自动补全。

你切换的路径必须保证存在,如果路径都不存在,肯定切换不了。这相当于什么呢。 
你们班上有30个学生,学号是1-30号,老师叫了31号,肯定没人应答嘛。

因此,建议切换路径前,使用命令来先查看下有没有这个路径,命令,后面会讲。

tab键可以减少我们的输入,提高效率,我见过很多初学者,每次输入的时候都输入完整的文件名或者路径名,效率很低下。所以,记得多使用tab键。

 cd//切换路径

在切换路径时一开始,每次都需要输入很多,是不是有时可以简化输入呢?答案是可以的。一般简化输入有这三种情况:

cd  ~//切换到家目录

cd  ..//切换到上一级目录

cd  -//切换到上一次所在目录

第二个概念是当前路径和上一级路径

cd       //切换路径

cd ~    //切换到当前用户的家目录

cd .    //切换到当前路径,很少使用

cd ..  //切换到上一路径

cd ../..   //切换到上上路径(linux中的分隔符是“/”)

cd -     //切换到上一路径

第三个概念是绝对路径和相对路径 
绝对路径:从根目录一级级找下去,需要写完整路径名

相对路径:参照当前所在目录进行查找

举例:

1)当前路径为/bin,然后./pwd就是执行了/bin/pwd

2)当前路径为/home/book/100ask,然后cd ../Videos/就到达/home/book/Videoscd ../..就到达/home

绝对路径是从根目录开始; 
相对路径一般以...来构成;

4.ls命令

ls命令的来源是英文单词list。学过数据结构的同学知道,list表示链表,不过在这里,list是个动词,表示列举、列出。ls的功能是列出目录内容。

ls    //列出目录内容

 

前面我们刚刚讲过cd命令,cd命令是切换路径。 
一般的话,都是用cd切换路径,然后再使用ls来查看目录内容。

在前面讲过,Linux的命令组成是:

 命令  [选项][参数]

其中选项,参数可有可无。

举例:

1) ls

ls  //则显示当前所在目录的内容

2)ls 目录名

ls /home //则指定显示/home的内容

ls ~     //则指定显示/home/book的内容

 

3)ls 选项 或 ls 选项 目录名 

常用的选项:

-l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小);

-a(all的缩写),显示了隐藏文件;

-h(human-able的缩写),将文件大小以K(KB)M(MB)G(GB)来表示;

ls -lh的详细的信息含义:

 

linux命令入门教程

5.目录操作mkdir和rmdir独家记忆方法

下面我们讲解mkdir这个命令。mkdir来源于make directory

目录的操作

·        mkdir:创建目录

举例:

1)mkdir目录名

mkdir dir0  //创建了dir目录

2)mkdir -p       父目录/子目录

mkdir -p  dir1/dir2//连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。-p(parents的缩写)

·        rmdir:删除目录 
举例:

1) rmdir目录名

rmdir dir0//删除dir0这个没有内容的空目录

注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)

2rm -f目录名

rm -f dir0//删除dir0这个目录

注意:可以删除非空目录

6.文件操作touch_mv_cp_rm

 

文件的操作

·        touch :用来新建文件

举例:

1) touch文件名

touch file1      //在当前目录新建名为file1的文件

 

注意:

1)同一目录无法创建同名的文件

 

2)linux的文件名是区分大小写的,如file1File1是不同文件。这一点跟windows不同。

·        mv(move的缩写) :用来修改文件(目录)名、移动路径

举例:

1mv旧文件名 新文件名 修改文件名

mv file1 filea  //将当前目录的文件file1改名为filea

2mv旧目录名 新目录名 修改目录名

 

mv file1 filea  //将当前目录的文件file1改名为filea

2mv旧目录名 新目录名 修改目录名

mv dir1 dira  //将当前目录下的目录dir1改为dira        

3mv文件名目录名 移动路径

mv filea dira //将当前目录下filea移动到dira子目录

mv filea  ~   //将当前目录下filea移动家目录

mv ~/filea  ..//将家目录下的fila移动到上一个路径

 

 cp(copy的缩写) : 用来复制文件(目录)

1cp源文件名  目标文件名

cp File1  file2//将当前目录下的文件File1拷贝成file2

2cp源文件名  目标目录名

cp file2 dira///将当前目录下的文件file2拷贝到dira子目录

2cp源目录名  目标目录名

cp -r dira dirb//复制dira目录下的所有内容到dirb,其中,-r参数时递归复制

cp -i file2 dira//如果dira目录下面有同名的file2,加入-i参数就会要求你确认是否覆盖同名的文件

注意:cp的常用参数有:-i,-r,-f,-d等,在后面讲解了linux权限之后,我们会加深cp命令的讲解。

 

   rm(remove的缩写) :删除文件(目录
常用命令格式:

rm   [选项]   [文件名 | 目录名]

常用选项
-i(interactive(交互)的缩写), 删除文件(目录)之前,要求你确认是否同意删除 
-r(recursive(递归)的缩写), 递归删除指定目录下的子目录和文件 
-f(force(强制)的缩写), 强制删除

举例:linux命令入门教程

注意:

1)删除文件(目录)前,确定该文件(目录)是否可以被删除。

2rm的常用参数有:-i,-r,-f等,在后面讲解了linux权限之后,我们会加深rm这个命令的讲解

7.文件查看和编辑cat_gedit

 

文件的查看和编辑:

1)cat用来查看文件内容

常用命令格式:

cat  文件名

举例:

cat file1     将file1的内容打印到标准输出中(默认标准标准输出指向终端)

cat file1 file2  将file1和file2的内容串联并依次全部打印到标准输出中

cat -n file1    显示内容并在内容前显示行号。

类似的查看命令: morelessheadtail等后面讲解

2)gedit图形应用程序的编辑器

这个前面讲过了,就不再重复了

3)vi编辑器

 

vim编辑器的三种模式:一般模式、编辑模式和命令行模式。

 

在一般模式中可以进行删除、复制和粘贴的功能,但是无法编辑文件内容。从一般模式切换到编辑模式可以按下i、I、o、O、a、A、r、R键。按下Esc键可以回到一般模式。在一般模式中输入:、/、?三个中的任意一个可以将光标移到最下面的一行。

 

在这个模式中可以提供查找数据的操作,而读取、保存、大量替换字符、离开vii、显示行号等操作则是在此模式中完成的。需要注意的是,编辑模式与命令行模式之间是不能互相切换的。

 

下面列出平时用的最多的vi命令:

 

移动光标的方法:

  1. [Ctrl]+[f]:屏幕向下移动一页,相当于[PageDown]按键。

  2. [Ctrl]+[b]:屏幕向上移动一页,相当于[PageUp]按键。

  3. 0或功能键[Home]:移动到这一行的最前面字符处。

  4. $或功能键[End]:移动到这一行的最后面字符处。

  5. G:移动到这个文件的最后一行。

  6. gg:移动到这个文件的第一行,相当于1G.

  7. N[Enter]:N为数字,光标向下移动N行。

 

查找和替换:

  1. /word:向下寻找一个名称为word的字符串。

  2. ?word:向上寻找一个名称为word的字符串。

  3. :n1,n2s/word1/word2/g:在第n1行和n2行之间寻找word1这个字符串,并且将其替换为word2.

  4. :1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.

  5. :1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并且将其替换为word2.且在替换前显示提示字符给用户确认是否需要替换。

  6. 删除、复制和粘贴:

  7. x,X:在一行字中,x为向后删除一个字符(相当于[Del]键),X为向前删除一个字符(相当于[Backspace])。

  8. dd:删除光标所在的一整行。

  9. ndd:删除光标所在的向下n行。

  10. yy:复制光标所在的一行。

  11. nyy:复制光标所在的向下n行。

  12. p,P:p为将已复制的内容在光标的下一行粘贴,P则为粘贴在光标的上一行。

  13. u:复原前一个操作。

  14. [Ctrl]+r:重做上一个操作。

  15. .:小数点,重复前一个操作。

一般模式切换到编辑模式:

  1. i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。

  2. a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。

  3. o,O:进入插入模式。o为在下一行插入。O为在上一行插入。

  4. r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

  5. 一般模式切换到命令行:

  6. :w:将编辑的数据写入到硬盘中。

  7. :q:离开vi.后面加!为强制离开。

  8. :wq:保存后离开。:wq!为强制保存后离开。

目前主要的编辑器都有恢复功能,vim也不例外。vim是通过“保存”文件来挽回数据的。

每当我们在用vim编辑时,vim都会自动在被编辑的文件的目录下面再新建一个名为filename.swap的文件。这就是一个暂存文件,我们对文件filename所做的操作都会被记录到这个文件当中。如果系统意外崩溃,导致文件没有正常保存,那么这个暂存文件就会发挥作用。下面用一个例子来说明(Note:我用的是Ubuntu)

打开终端,输入命令,将etc目录下面的manpath.config复制到tmp目录下面,并且更改当前工作目录为tmp:

cp/etc/manpath.config /tmp
cd/tmp

 

用vim编辑manpath.config文件:vim manpath.config。

 

我们在vim的一般模式下按下Ctrl+z组合键,vim就会被丢到后台执行。回到命令提示符环境后,我们模拟将vim的工作不正常中断。

kill -9 %1;强制杀死制定的进程。

这样导致暂存盘无法通过正常的流程结束,所以暂存文件不会消失,而是继续保留下来。当再次编辑那个文件时(输入命令vim manpath.config),出现(ubuntu 11.10):

linux命令入门教程

这时,有六个按钮可以使用:

  • O(pen for Read-Only):打开成只读文件。

  • E(dit):用正常方式打开要编辑的文件,并不会载入暂存文件的内容。这很容易出现两个用户相互改变对方的文件的问题。

  • R(ecover):加载暂存文件的内容。

  • D(elete):如果你确定这个暂存文件是没有用的,则可以删除。

  • Q(uit):不进行任何操作,回到命令行。

  • A(bort):忽略这个编辑行为,和Q类似。

需要注意的是:这个暂存文件不会应为你结束vim后自动删除,必须要手动删除。否则每次打开对应的文件时都会出现这样的提示。

vim的功能

【1】块选择:

这个功能可以让我们复制一个矩形区域的内容,十分方便。

  1. v:字符选择,会将光标经过的地方反白选择;

  2. V:行选择;

  3. Ctrl+v:块选择;

  4. y:复制反白的地方;

  5. d:删除反白的地方。

实例如下:

linux命令入门教程

需要注意的是,粘贴时候也是粘贴在一个块的范围内,而不是以行为单位来处理的。

 

【2】多文件编辑

我们在两个或多个文件之间复制粘贴内容时,这个功能会让我们方便很多。

使用命令vim name1 name2 name3...(各个文件名之间用空格隔开)可以同时打开多个文件。

  1. :n:编辑下一个文件;

  2. :N:编辑上一个文件;

  3. :files:列出目前vim打开的所有文件。

 

【3】多窗口功能

可以在一个窗口中打开多个文件。

输入命令:sp{filename}便可以实现这个功能。如果想要在新窗口启动另外一个文件,则加入文件名。如果省略文件名,则打开的是同一个文件。

用一个例子来说明。

vim manpath.config打开一个文件。在一般模式下输入:sp。发现打开的是同一个文件。如果再输入:sp /etc/hosts。则变成:

linux命令入门教程

其他的按键功能:

  1. Ctrl+w+j:先按下Ctrl不放,再按下w后放开所有的按键,再按下j(或向下箭头键),则光标可以移到下方的窗口;

  2. Ctrl+w+k:同上,不过光表移到上面的窗口;

  3. Ctrl+w+q:离开。

 

【4】vim环境设置

需要注意的是,vim会将i我们的以前的行为都记录下来,以方便我们操作。它保存在文件:~/.viminfo中。

vim常用的环境设置参数命令如下:

  1. :set nu  设置行号

  2. :set nonu 取消行号

  3. :set hlsearch 设置高亮度查找

  4. :set nohlsearch 取消高亮度查找

  5. :set backup 自动备份文件

  6. :set ruler 开启右下角状态栏说明

  7. :set showmode 显示左下角的INSERT之类的状态栏

  8. :set backspace={0,1,2} 设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。

  9. :set all 显示目前所有的环境参数值

  10. :set 显示与系统默认值不同的参数值

  11. :syntax on/off 是否开启依据相关程序语法显示不同的颜色

  12. :set bg=dark/light 是否显示不同的颜色色调

但是我们没有必要每次使用vim都要重新设置一次各个参数值。我们可以通过配置文件来直接规定我们习惯的vim操作环境。整体vim的设置值一般是放在/etc/vimrc中的。

 

我们一般不要修改这个文件。我们可以通过修改~/.vimrc这个文件,如果不存在,可以手动创建。然后将我们所希望的设置值写入。例如,我们可以这样写:

vim ~/.vimrc  
set hlsearch(注意:set前面也可以加冒号,结果一样)  
set backspace=2  
set ruler  
set showmode  
set nu  
syntax on

创建并保存这个文件之后,当下次重新以vim编辑某个文件时,该文件的默认环境就是这么设置的。


参考文章:http://blog.csdn.net/xiajun07061225/article/details/7039413


打赏

已有2人打赏

唐宇的gravatar头像sottas的gravatar头像

分享到:

最近浏览
liubic LV1昨天
星星
郭亚鹏 LV1110月9日
月亮月亮星星星星星星
蓝色幻想 LV210月5日
星星星星
叶建宁 LV99月30日
月亮月亮星星
IT粑粑 LV19月14日
星星
solo2018 LV69月12日
月亮星星星星
付修立 LV38月31日
星星星星星星
dreamfitle LV28月24日
星星星星
a992013093 LV158月19日
月亮月亮月亮星星星星星星
admin123456686 LV48月19日
月亮
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友