linux--基本指令

来源:互联网 发布:vendor.bundle.js 位置 编辑:程序博客网 时间:2024/06/01 10:08
  • 一个0基础的初入门者整理----linux基本命令
(字体中间带横线的,是表示修改,刚开始自己错了,然后发现后进行了修改)
目录:
1.man
2shutdown
3ls
4mkdir
5cd
6touch
7echo
8cat
9cp
10mv
11rm
12find
13wc
14grep
15rmdir
16tree
17pwd
18more,less
19head,tail
1.查看手册(寻求帮助):man+具体的命令
man命令是linux的帮助指令,可以查看帮助,配置文件等内容。
egg:
查看sleep命令的含义及用法,命令如下:
  
其中,cvlab是我在安装系统的时候设置的用户名,cvlab-family是我的计算机名。如果在装系统的时候,不进行设置,那么默认的值应该是root@localhost,其中同样,root是用户名,localhost是主机名。
linux是区分大小写的,但是在查看手册的时候,对大小写要求不严格。

2.立刻关机:Shutdown -h now //其中h为halt,也可以使用halt。
  //立即关机:Shutdown -p now(以下相同),也可以使用poweroff
  如果不知道Shutdown什么含义,怎么用,可以用上述知识点1进行查看帮助文档。
  Shutdown -h 20.25 //会在20.25关机
  Shutdown -h +10 //会在十分钟后关机
  Shutdown -r now //系统立马重启,r为reboot,也可以使用reboot。
  Shutdown -r +10 //系统会在10分钟后重启
  
3.ls 查看系统目录结构,如果是用用户登陆的,就显示home里面的路径

和home里面的文件进行对比:

可以发现:有些文件夹是隐藏的,在指令中用不同的颜色标注出来,如上上图中所示。
注:如果想查看具体打某个文件的详细信息,可以查询ls的用法,如下:

会出现以下效果:

可以用鼠标往下滚动查看更多命令。其中, ls -l 为列出详细的文件信息

ls -a列出当前目录下所有的文件和目录,和上述一样,包括隐藏的:

4.创建目录:mkdir
我在做的时候,先是直接输入了mkdir,然后报错了,提示我用mkdir --help,于是我输入了mkdir --help,便出现了mkdir的用法。如图:

根据提示,可以知道mkdir的用法是mkdir 文件名,创建一个文件目录:
此时在home中已经出现了以zy命名打文件夹:

mkdir -p为创建一个目录,如果没有父目录,则创建父目录。
如下图,创建了一个hz目录,目录中包含子目录,此时,home中会出现hz:




  

如果父目录已经存在,则会把子目录直接加进去。如:



如果父目录,子目录均存在,则会提示,文件已经存在。如:


5.切换目录:cd
看到这个指令后,我都习惯直接输入cd,然后查询手册,接着再进行相应的操作。过程如下:
结果都失败了,然后只有百度了。cd是常用的命令,时刻几乎都在想着用这个命令,其命令的格式为:cd [dirName] (cd与后面的内容之间有个空格)
其功能是将当前目录切换至dirname,例如:

 其中,cd 是进入主目录,cd ~也是进入主目录,cd - 返回进入此目录之前所在的目录;cd ..返回上级目录;cd ../..返回上两级目录;

6.创建空文件:touch
当看到这个创建空文件时,就想知道它和mkdir的区别,于是就get了如下内容:
1)touch能够新建文件,mkdir用来新建文件夹,rm用来删除文件;linux新建文件的方式很多,如:使用vi新建文件,使用cp命令拷贝一个文件,常用的为touch
2)语法:touch [options]filename
我在操作的时候,显示权限不够,于是我查了一下修改权限的方法,其实原因是,只有管理员才能修改权限,所以指令前要加sudo如下:


(这个时候我还没有用sudo)
然后我到home中的hz文件夹中的zy 文件夹中

然后右击鼠标,选择打开终端,然后输入指令,表示在这个文件夹下创建文件,如下:

然后在home /hz/zh中就有了一个以zhaoyu命名的文件了,但是如果仔细的观察该文件,会发现此文件的右下角有个眼睛,表示只读不能写,我们可以用ls -al 查询文件的详细信息,如下:


其中,rwx为一组,不可写时w的位置为-,由图克制,2,4,1前面倒数第二列的w均为-,说明不可写,此时需要修改对文件的操作的权限,用chmod +w 文件名,但是不知为什么我没有操作成功,于是就搜到了一个将w改为666就可以了,这是因为这个字符串是用二进制表示的,三位为一组,每组的第二位都置为1就可以保证读了,当然也可以设置为777,如图:

此时,再去home的hz/zh中查看文件的图标,可以发现眼睛没了,然后也可以用指令查看是否可写。如图:

注:此时创建的文件内容为空,即为空文件。

7.创建带有内容的文件:echo
 echo在shell编程中经常使用,在终端下打印变量value时,也经常用到。
echo的功能:在显示器上显示一段文字,一般起到提示的作用,(个人将它理解为就像c中的printf("请输入n个数:")起到的作用一样;)
echo的语法:  echo [-ne][字符串]or echo [--help][version]
注:其输出的字符串之间会以空白字符隔开,并在最后加上换行号。
1).输入一行文本并且显示在标准输出上,如:

2).输出一个声明的变量值,如声明变量x并且进行初始化为5,用法如图:

注:之所以每次都清空终端的内容,是想让过程清晰一点,具体做法是直接在命令行输入clear即可。
3)使用 -e后加\b选项,会删除字符间的所有空格,其中,-e扮演的角色是转义字符反斜线的翻译器。如图:

由上可知,第一个指令我写错了,刚开始我以为原因是\b前面我加了空格(它的功能就是空格,所以我刚开始的想法错误),于是第二个指令我把空格删除后,还是不正确,然后第三个指令,我把-e后面加了空格,发现好像正确了,\b没有了,于是,在指令4中,我又在\b前加了空格,发现真正实现了\b的作用,空格都被删除了。
4)使用-e后加\n,会将其换行。其用法和3)相似, 具体如下图:

5)使用-e后加\t会在空格间加水平制表符。和3)4)用法相似。具体如下图:

6)也可以同事使用\n\t,具体如下图:
(注:在终端执行指令时,可以按上下方向键,找到上一个或指令,在这个基础上修改即可)

7)-e后面加-v垂直制表符,具体效果如下图:

8)-e后面也可以用\n和\v同时使用,如下:

9)-e后面加-r可以输出指定的回车,如下:

注:-r回车后,将前面的字符给覆盖了。
10)-e后加\c,会裁断后面的字符串,也就是\c后面的字符串不会被输出并且不会换行,具体如下图:

8.查看文件内容:cat
cat的功能有:1)一次显示整个文件 cat filename,例如
 
 刚开始,我以为可以打开一个文件夹,然后又直接打开文件,也不对,必须把路径写上,但是写上正确的命令(指令4)发现,没有反应,我以为是我权限不够,于是用sudo,还是不对,才想到上面在创建文件zhaoyu,并且修改了可以写的权限后,没有写入内容,相当于一个空文件,所以我又在文件中写了一句zhaoyu is studying basic linux.就正确显示了,然后又尝试了不用sudo,也可以。
2)从键盘创建一个文件:cat >filename,注:只能创建新文件,不能编辑已有的文件。如:

此时,在hz/zy目录中就出现了zhao的文件。
3)将几个文件合并成一个文件:cat file1 file2 > file,具体如下图:

4)常用的选项
 -A,--show-all
-b,--number-nonblank 对非空的行进行编号
 -n对所有行进行编号如图:

9.拷贝指令:cp
1)cp 源文件/文件路径 目标文件夹
(今天用的终端界面和平时不一样,是连得服务器,先创建了两个文件夹,命名为hanzq,zhaoyu,又在zhaoyu文件夹中创建了zy文件,现在用cp命令将zy文件复制到hanzq这一文件夹中,刚开始我输入cp zhaoyu/zy/hanzq,忘记加空格,所以提示没有目标文件夹,又进行了更正,然后用ls -a命令查看了bianli详细的信息,)

复制成功后,可以用cd指令切换到hanzq下,然后用ls查看是否已经成功复制了zy文件;也可以不切换用ls -a hanzq直接查看,如:

2)利用cp也可以将复制多个文件。
先在zhaoyu文件夹中再创建一个文件将其命名为z_y

用ls -a 查看这个文件夹中的所有文件,如下:

然后将这两个文件都copy到hanzq中,具体命令为 cp zhaoyu/zy zhaoyu/z_y hanzq,如图:

3)也可以将文件复制到另一个目录后重命名,例如:

4)复制文件夹:cp -R 源文件夹 目标文件夹,如:

将名为zhaoyu的文件夹复制到一个新的文件夹folder中,查看目录结构,发现有了folder文件夹,再查看该文件夹中的文件,和zhaoyu文件夹中的相同,说明拷贝成功。

10.移动或者重命名指令:mv
移动之后,源文件将被删除,也可以用于移动目录,源和目标不同,成为移动。
如果源位置和目标位置相同,才成为重命名文件或者目录。文件名必须不同。此时源和目标都要带上路径。

注:如果是重命名目录,则目录后要加/

11.删除文件:rm
1)(可以使用-r选项删除目录(会将子目录一并递归删除),若没有使用,则不会删除目录。如果使用rm删除文件,通常仍可以将该文件恢复原状)

2)-i在删除的时候会进行提示,如图:

3)-r将目录及子目录都删除。(先在foldernew中新建一个子目录sub,再删除,如图)

12.在文件系统中搜索某个文件:find
find格式:find path -option [-print] [-exec -ok command ] {} \
其中,-print是将查找到的文件标准输出;
-exec command {} \ 是将查到的文件执行command操作,注意,{}与\之间有空格
-ok和-exec相同,但是每次操作之前会询问用户要不要执行该操作

-name filename //查找名为filename的文件
-perm  //按照执行权限进行查找
-user  username //按用户名进行查找
-size n: [c] //查找长度为n d的文件,带有c时表示文件长度以字节计。
1)按照类型进行查找时用法如下:

其中,f 表示按文件进行查找,zh为路徑。-type表示按照类型进行查找
也可以按照目录进行查找此时将f换为d即可。
2)按照文件名进行查找,如下:

13.统计文本中的行数,字数,字符数:wc
-l:统计文本文件内容的行数
-w统计文本文件内容的字数
-c统计文本文件内容总的字节数
-m统计文件的字符数。不能与-c连用。如果系统不支持,则其效果和-c效果相同。
-L打印最长行的长度。

现在zy文件中用vi指令编辑内容,然后按esc键,选择wq回车保存内容并且退出编辑,用cat查看文件的详细内容。具体如下:

1)相应的wc操作如下:

其中10为行数,8为单词数,49为字节数,zy是文件名。
2)只显示文本的行数,如下:

3)只显示文本的字节数,如图:

4)只显示文本的字数,如图:

5)只显示文本的字符数,如图:

6)显示文本最长行的长度,如图:

此时,查看文本内容,看结果是否正确,如下可知,正确:

7)在输出时,如何不显示文件名,如下图:

14.在文本文件中查找某个字符串:grep
grep ‘test’ d* //显示所有以d开头的文件中包含 test的行。
grep ‘test’ aa bb cc //显示在aa,bb,cc文件中匹配test的行。
grep ‘[a-z]\{5\}’ aa//显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

15.删除空目录:rmdir
1)直接加空目录名,进行删除
2)rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除

16.树形结构显示目录,需要安装tree包:tree
1)先安装tree
2)用tree -a显示目录,如下:


-c在目录清单加色彩,区分各种类型。
-d显示目录名称,而非内容,如下:


17.显示当前目录:pwd
1)用pwd显示默认工作目录的完整路径。如下:

2)查看指定的文件夹,例如:

18.分页显示文本文件内容:more,less
+n      //从笫n行开始显示
-n       //定义屏幕大小为n行
-s       把连续的多个空行显示为一行
-u       把文件内容中的下画线去掉
列一个目录下的文件,由于内容太多,我们应该学会用more来分页显示。这得和管道 | 结合起来 
命令:ls -l  | more -5
19.显示文件头,尾内容:head,tail
head 文件名 //默认显示前十行的内容
head -n 文件名 //显示前n行的内容
tail - n 文件名,
具体如下:



(注:come on上下一行都是空的)