[ Linux 长征路第一篇] 基本指令(1)

打印 上一主题 下一主题

主题 572|帖子 572|积分 1716

从今天开始我会持续更新我学习Linux的学习笔记。今天主要学习Linux下基本指令。
目录
1.Linux下基本指令
01.ls 指令
02.pwd命令
03.cd指令
04.touch命令
05.mkdir命令
06.rmdir指令&&rm指令
07.man指令
08.cp指令
09.mv指令
10. cat指令
11.more指令
12.less指令


1.Linux下基本指令

1.为什么要进行指令操作?
因为指令距离OS更近,便于我们更好的掌握OS。
指令操作对于非专业人员来说没有必要学习,对于专业人员可以必要也可以不必要。但是对于我们学习OS原理,编程,指令操作必须需要掌握。
2.图像化界面不香吗?那是先有指令还是现有图形化界面呢?
答案是:先有指令。
我们要进行指令输入需要键盘,进行图形化界面需要鼠标。所有的操作系统,刚开始的时候全部都是支持指令操作的。但是由于指令操作的操作成本高因此在后期慢慢就出现了图形化界面。
01.ls 指令

     语法  :   ls [  选项  ][  目录或文件  ]      功能  :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。         常用选项:         1: -a    列出目录下的所有文件,包括以    .    开头的隐含文件。         2:-d    将目录象文件一样显示,而不是显示其下的文件。 如:   ls –d    指定目录         3:-i    输出文件的    i    节点的索引信息。 如    ls –ai    指定文件         4:-k    以    k    字节的形式表示文件的大小。   ls –alk    指定文件         5:-l    列出文件的详细信息。         6:-n    用数字的    UID,GID    代替名称。 (介绍    UID   ,    GID   )         7:-F    在每个文件名后附上一个字符以说明该文件的类型,   “*”   表示可执行的普通文件;   “/”   表示目录;   “@”   表示符号链接;“|”   表示   FIFOs   ;   “=”   表示套接字   (sockets)   。(目录类型识别)         8:-r    对目录反向排序。         9:-t    以时间排序。         10:-s    在   l   文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)         11:-R    列出所有子目录下的文件。   (   递归   )         12:-1    一行只输出一个文件。        ls  #只显示文件名
   
  1. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  2. tar_package
  3. [root@VM-20-12-centos 22_06_02_lesson4]# mkdir code
  4. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  5. code  tar_package
  6. [root@VM-20-12-centos 22_06_02_lesson4]# touch mytest.c
  7. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  8. code  mytest.c  tar_package
复制代码
    ls -l  #显示文件的更多属性
   
  1. [root@VM-20-12-centos 22_06_02_lesson4]# ls -l
  2. total 8
  3. drwxr-xr-x 2 root root 4096 Jun 15 12:54 code
  4. -rw-r--r-- 1 root root    0 Jun 15 12:54 mytest.c
  5. drwxr-xr-x 3 root root 4096 Jun  2 19:59 tar_package
  6. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码
    ls -a #显示更多的隐藏文件
    Linux中以 . 开头的是隐藏文件
  1. [root@VM-20-12-centos 22_06_02_lesson4]# ls -a
  2. .  ..  code  mytest.c  tar_package
  3. [root@VM-20-12-centos 22_06_02_lesson4]# ls -a -l
  4. total 16
  5. drwxr-xr-x   4 root root 4096 Jun 15 12:54 .
  6. dr-xr-x---. 10 root root 4096 Jun  2 18:37 ..
  7. drwxr-xr-x   2 root root 4096 Jun 15 12:54 code
  8. -rw-r--r--   1 root root    0 Jun 15 12:54 mytest.c
  9. drwxr-xr-x   3 root root 4096 Jun  2 19:59 tar_package
  10. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码
在任意目录下,都会存在两个隐藏文件 其中 一个. (当前路径)  ..(上级路径)
  
  我们在当前路径下怎么返回上级路径呢?我们就可以使用cd ..
  1. [root@VM-20-12-centos 22_06_02_lesson4]# pwd
  2. /root/22_06_02_lesson4
  3. [root@VM-20-12-centos 22_06_02_lesson4]# cd ..
  4. [root@VM-20-12-centos ~]# pwd
  5. /root
复制代码
.(当前路径)有什么用?
  作为一个限定,表示我要执行当前路径下的程序。比如我们写一段C语言程序,要这行这个结果,我们要使用./a.out
  1. [root@VM-20-12-centos 22_06_02_lesson4]# vim mytest.c
  2. [root@VM-20-12-centos 22_06_02_lesson4]# gcc mytest.c
  3. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  4. a.out  code  mytest.c  tar_package
  5. [root@VM-20-12-centos 22_06_02_lesson4]# cat mytest.c
  6. #include <stdio.h>
  7. int main()
  8. {
  9.    printf("Hello Linux\n");
  10.    return 0;
  11. }
  12. [root@VM-20-12-centos 22_06_02_lesson4]# ./a.out
  13. Hello Linux
  14. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码
    总结:ls核心命令就是ls -a和 ls -l 指令
    02.pwd命令

     语法  : pwd      功能  :显示用户当前所在的目录  查看当前所处的路径  
  1. [root@VM-20-12-centos 22_06_02_lesson4]# pwd
  2. /root/22_06_02_lesson4
  3. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码
03.cd指令

      Linux的目录结构本质是一颗多叉树。
   1.每一个子节点,既可以是一个目录(再放目录或者普通作业,递归式的定义),也可以是一个普通文件。
   2.这课多叉树的叶子结点,一定是一个普通文件或者空目录。
          语法   :cd    目录名         功能   :改变工作目录。将当前工作目录改变到指定的目录下。     
  1. cd .. : 返回上级目录
  2. cd /home/litao/linux/ : 绝对路径
  3. cd ../day02/ : 相对路径
  4. cd ~:进入用户家目
  5. cd -:返回最近访问目录
复制代码
 我们一般通过“定位”,通过路径定位的方式找到文件的!那为什么我们都是通过路径方式定位文件的呢?
这是因为任何一个节点可以有很多子节点,但是只能有一个父节点。因此常规的路径定位是具有唯一性的!
绝对路径:常规路径,从跟目录开始直到目的节点的这条路径。
相对路径:相对于我当前所处的路径。
结论:如果是日常使用,我们推荐相对路径(简单);如果是进行添加配置文件之类,推荐绝对路径(不会出错)
  1. [root@VM-20-12-centos 22_06_02_lesson4]# pwd
  2. /root/22_06_02_lesson4
  3. [root@VM-20-12-centos 22_06_02_lesson4]# cd ../[root@VM-20-12-centos ~]# pwd/root[root@VM-20-12-centos ~]# cd ../[root@VM-20-12-centos /]# pwd/
复制代码
  cd ~ :进入用户家目
  1. [root@VM-20-12-centos 22_06_02_lesson4]# cd ~
  2. [root@VM-20-12-centos ~]# pwd
  3. /root
复制代码
   cd -:跳转至我上一次所处的路径
  1. [root@VM-20-12-centos 22_06_02_lesson4]# cd ~
  2. [root@VM-20-12-centos ~]# pwd
  3. /root[root@VM-20-12-centos ~]# cd -/root/22_06_02_lesson4[root@VM-20-12-centos 22_06_02_lesson4]# pwd
  4. /root/22_06_02_lesson4
  5. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码

04.touch命令

     语法  :touch [  选项  ]...   文件  ...      功能  :  touch  命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。      常用选项  :      -a     或  --time=atime  或  --time=access  或  --time=use  只更改存取时间。      -c     或  --no-create    不建立任何文档。      -d    使用指定的日期时间,而非现在的时间。      -f      此参数将忽略不予处理,仅负责解决  BSD  版本  touch  指令的兼容性问题。      -m     或  --time=mtime  或  --time=modify    只更改变动时间。      -r     把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。      -t     使用指定的日期时间,而非现在的时间  
  1. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  2. a.out  code  mytest.c  tar_package
  3. [root@VM-20-12-centos 22_06_02_lesson4]# touch test.c
  4. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  5. a.out  code  mytest.c  tar_package  test.c
  6. [root@VM-20-12-centos 22_06_02_lesson4]# nano test.c
  7. [root@VM-20-12-centos 22_06_02_lesson4]# gcc test.c
  8. [root@VM-20-12-centos 22_06_02_lesson4]# ls
  9. a.out  code  mytest.c  tar_package  test.c
  10. [root@VM-20-12-centos 22_06_02_lesson4]# ./a.out
  11. Hello World
  12. [root@VM-20-12-centos 22_06_02_lesson4]#
复制代码

05.mkdir命令

     语法  :  mkdir [  选项  ] dirname...      功能  :在当前目录下创建一个名为   “dirname”  的目录   我们想创建一长串目录,我们可以使用,mkdir -p
     -p, --parents    可以是一个路径名称。此时若路径中的某些目录尚不存在  ,  加上此选项后  ,  系统将自动建立好那些尚不存在的目录,  即一次可以建立多个目录  ;  
  1. [root@VM-20-12-centos 22_06_15]# mkdir -p dir1/dir2/dir3/dir4
  2. [root@VM-20-12-centos 22_06_15]# ls
  3. dir1
  4. [root@VM-20-12-centos 22_06_15]# cd dir1
  5. [root@VM-20-12-centos dir1]# ls
  6. dir2
  7. [root@VM-20-12-centos dir1]# cd dir2
  8. [root@VM-20-12-centos dir2]# ls
  9. dir3
  10. [root@VM-20-12-centos dir2]# cd dir3
  11. [root@VM-20-12-centos dir3]# ls
  12. dir4
  13. [root@VM-20-12-centos dir3]# cd dir4
  14. [root@VM-20-12-centos dir4]# ls
  15. [root@VM-20-12-centos dir4]# pwd
  16. /root/code/22_06_15/dir1/dir2/dir3/dir4
复制代码

06.rmdir指令&&rm指令

     rmdir  是一个与  mkdir  相对应的命令。  mkdir  是建立目录,而  rmdir  是删除命令。         语法   :   rmdir [-p][dirName]         适用对象   :具有当前目录操作权限的所有使用者         功能   :删除空目录      如果我们想删掉空目录可以是用rmdir指令
删除空目录(不常用)
  1. [root@VM-20-12-centos 22_06_15]# rmdir dir1
  2. rmdir: failed to remove ‘dir1’: Directory not empty
  3. [root@VM-20-12-centos 22_06_15]# ls
  4. dir1
复制代码
  -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除 
  删除普通文件(常用)
     rm  命令可以同时删除文件或目录      语法  :  rm [-f-i-r-v][dirName/dir]      适用对象  :所有使用者      功能  :删除文件或目录         常用选项   :         -f    即使文件属性为只读   (   即写保护   )   ,亦直接删除         -i    删除前逐一询问确认         -r    删除目录及其下所有文件     
  1. [root@VM-20-12-centos 22_06_15]# touch test.txt
  2. [root@VM-20-12-centos 22_06_15]# ls
  3. dir1  test.txt
  4. [root@VM-20-12-centos 22_06_15]# rm test.txt
  5. rm: remove regular empty file ‘test.txt’? y
  6. [root@VM-20-12-centos 22_06_15]# ls
  7. dir1
复制代码
如果要删除目录,使用rm-r
  1. [root@VM-20-12-centos 22_06_15]# rm -r dir1
  2. rm: descend into directory ‘dir1’? y
  3. rm: descend into directory ‘dir1/dir2’? y
  4. rm: descend into directory ‘dir1/dir2/dir3’? y
  5. rm: remove directory ‘dir1/dir2/dir3/dir4’? y
  6. rm: remove directory ‘dir1/dir2/dir3’? y
  7. rm: remove directory ‘dir1/dir2’? y
  8. rm: remove directory ‘dir1’? y
  9. [root@VM-20-12-centos 22_06_15]# ls
复制代码
此时我们发现dir1下的文件被全部删掉,我们在删除的过程中发现系统会询问你确定要删除?如果我们不想这个提示弹出的话,我们可以使用rm -f ,此命令表示强制删除。
  1. [root@VM-20-12-centos 22_06_15]# touch test.txt
  2. [root@VM-20-12-centos 22_06_15]# mkdir -p dir1/dir2/dir3/dir4
  3. [root@VM-20-12-centos 22_06_15]# ls
  4. dir1  test.txt
  5. [root@VM-20-12-centos 22_06_15]# rm -f test.txt
  6. [root@VM-20-12-centos 22_06_15]# ls
  7. dir1
  8. [root@VM-20-12-centos 22_06_15]# rm -r -f dir1
  9. [root@VM-20-12-centos 22_06_15]# ls
  10. [root@VM-20-12-centos 22_06_15]#
复制代码

07.man指令

     Linux  的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问  Linux  手册页的命令是 man      语法  : man [  选项  ]   命令     常用选项:         1.-k    根据关键字搜索联机帮助         2.num    只在第   num   章节找         3.-a    将所有章节的都显示出来,比如    man printf    它缺省从第一章开始搜索,知道就停止,用   a   选项,当按下q   退出,他会继续往后面搜索,直到所有章节都搜索完毕。           man手册没有的问题:        如果是第一次使用Linux的朋友这里需要切换root用户,输入:yum install -y man-pages      类似于这里我们查一下printf的帮助手册 

08.cp指令

类似于win中的复制粘贴功能
     语法  :  cp [  选项  ]   源文件或目录 目标文件或目录      功能  :   复制文件或目录      说明  : cp  指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息      常用选项  :      -f   或   --force   强行复制文件或目录, 不论目的文件或目录是否已经存在      -i   或   --interactive   覆盖文件之前先询问用户      -r  递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链      接,则一律视为普通文件处理      -R   或   --recursive  递归处理,将指定目录下的文件及子目录一并处理    
 如果拷贝文件:

09.mv指令

   
    mv  命令是  move  的缩写,可以用来移动文件或者将文件改名(  move (rename) fifiles  ),是  Linux  系统下常用的命令,经常用来备份文件或者目录。      语法  : mv [  选项  ]   源文件或目录 目标文件或目录      功能  :      1.   视  mv  命令中第二个参数类型的不同(是目标文件还是目标目录),  mv  命令将文件重命名或将其移至一个新的目录中。      2.   当第二个参数类型是文件时,  mv  命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。      3.   当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,  mv  命令将各参数指定的源文件均移至目标目录中。      常用选项  :      -f   :  force   强制的意思,如果目标文件已经存在,不会询问而直接覆盖      -i   :若目标文件   (destination)   已经存在时,就会询问是否覆盖!    剪切功能:

重命名:

10. cat指令

   语法:cat [选项][文件]
    功能  : 查看目标文件的内容,比较适合查看短文本。     常用选项  :      -b   对非空输出行编号      -n   对输出的所有行编号      -s   不输出多行空行    
11.more指令

     语法  :  more [  选项  ][  文件  ]      功能  :  more  命令,功能类似   cat      常用选项  :      -n   对输出的所有行编号      q   退出  more    我们先伪造一个10w行的长文本
   cnt=1; while [ $cnt -le 100000 ];do echo "hello world $cnt"; let cnt++; done > hello.txt
  
准备工作做好之后,我们发现如果想看文本的话,使用cat我们只能看到后面的几行,如果我们想看到中间的某行就不能解决问题了。
那我们可以使用more

 输入/行数

 
12.less指令

     less   工具也是对文件或其它输出进行分页显示的工具,应该说是  linux  正统查看文件内容的工具,功能极其强大。      less   的用法比起   more   更加的有弹性。在   more   的时候,我们并没有办法向前面翻, 只能往后面看     但若使用了 less   时,就可以使用   [pageup][pagedown]   等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!      除此之外,在   less   里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。         语法:        less [   参数   ]    文件         功能   :         less   与   more   类似,但使用   less   可以随意浏览文件,而   more   仅能向前移动,却不能向后移动,而且   less   在查看之前 不会加载整个文件。         选项   :         -i     忽略搜索时的大小写         -N     显示每行的行号         /   字符串:向下搜索   “   字符串   ”   的功能         ?   字符串:向上搜索   “   字符串   ”   的功能         n   :重复前一个搜索(与    /    或    ?    有关)         N   :反向重复前一个搜索(与    /    或    ?    有关)         q:quit        less可以上翻和下翻,更推荐使用less   按上和下键可以支持先后翻

less命令可以帮助我们的文本,可以进行日志的查看。
(本篇完)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表