linux命令入门教程

Posted 程序IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令入门教程相关的知识,希望对你有一定的参考价值。

戳上面的程序IT关注我们哦!


不管是学习编程还是运维咱们都需要会一些基础的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/Videos,cd ../..就到达/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不能删除非空目录(非空目录:该目录下面有子目录或者文件)

2)rm -f目录名

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

注意:可以删除非空目录

6.文件操作touch_mv_cp_rm 

文件的操作

·        touch :用来新建文件

举例:

1) touch文件名

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

注意:

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

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

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

举例:

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

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

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

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

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

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

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

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

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

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

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

1)cp源文件名  目标文件名

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

2)cp源文件名  目标目录名

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

2)cp源目录名  目标目录名

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)删除文件(目录)前,确定该文件(目录)是否可以被删除。

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

7.文件查看和编辑cat_gedit

文件的查看和编辑:

1)cat用来查看文件内容

常用命令格式:

cat  文件名

举例:

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

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

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

类似的查看命令: more、less、head、tail等后面讲解

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编辑某个文件时,该文件的默认环境就是这么设置的。




以上是关于linux命令入门教程的主要内容,如果未能解决你的问题,请参考以下文章

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

linux_docker入门

VIM 代码片段插件 ultisnips 使用教程

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段——cli的终端命令大全