1. 磁盘管理

  • Linux和windows在资源管理上有什么区别吗?
    • windows
      • 打开桌面上的此电脑,映入眼帘的是:C盘D盘F盘。然后不同的磁盘下有不同的目录以及子文件。
    • linux
      • linux操作系统采用一个文档树来组织所有的资源。
      • 这棵树的根目录的名字叫做:/
      • / 是一个目录名字,是linux操作系统中所有文件的根。
      • / 目录下又有很多其他的子目录,比如:dev home lib …..
  • 查看当前所在位置
    • pwd
  • 列出子文件(查看当前所在的位置下有哪些子文件以及子目录)
    • ls
      • 实际上是list单词的缩写。ls可以列出当前所在位置下的子目录以及子文件
      • 注意:这种方式只列出文件或目录的名字。文件或目录更详细的信息没有。
    • ls -a
      • -a 是一个ls命令的参数,表示all,所有的意思。
      • -a 会将当前位置下所有的子文件以及子目录显示出来。包括隐藏文件以及隐藏目录。
      • 注意:在linux操作系统当中凡是目录或者文件的名字是以“.”开头的,它一定是隐藏的。
    • ls -l
      • drwxr-xr-x. 2 root root 6 4月 18 10:26 公共
        drwxr-xr-x. 2 root root 6 4月 18 10:26 模板
        drwxr-xr-x. 2 root root 6 4月 18 10:26 视频
        drwxr-xr-x. 2 root root 6 4月 18 10:26 图片
        drwxr-xr-x. 2 root root 6 4月 18 10:26 文档
        drwxr-xr-x. 2 root root 6 4月 18 10:26 下载
        drwxr-xr-x. 2 root root 6 4月 18 10:26 音乐
        drwxr-xr-x. 2 root root 6 4月 18 10:26 桌面
        -rw———-. 1 root root 993 4月 18 10:23 anaconda-ks.cfg
      • -l 参数可以列出该文件或目录的更详细的信息
      • 第一列:d或-
        • d 表示是一个目录。
        • -表示是一个文件。
      • 第二列:rwxr-xr-x
        • 这个是该文件权限描述信息。
      • 第三列:2
        • 表示当前目录下有几个直接的子目录(注意:有两个隐藏的目录,分别是:. 和 ..)
      • 第四列:root
        • 这是该目录或文件的拥有者。
      • 第五列:root
        • 这是一个组的名字
        • 表示这个组叫做root组。
        • root用户属于root组的。
        • 假设:drwxr-xr-x. 2 bjpowernode haha 6 4月 18 10:26 公共。表示bjpowernode用户属于haha组的。
      • 第六列:文件或目录的大小,单位是字节。
      • 第七列:最后修改时间
      • 第八列:文件名
    • ls -al
      • a和l组合使用
      • a表示所有,包含隐藏的文件或目录。
      • l表示列出更详细的信息。
      • al表示列出所有的文件的详细信息。
    • ll
      • 等同于:ls -l
    • ll -a
      • 等同于:ls -al
    • ls -al /home/bjpowernode
      • 查看/home/bjpowernode目录下所有的子文件以及子目录的详细信息。
  • 切换目录(cd命令:change directory)
    • cd 用来切换目录
    • cd怎么用?
      • cd 路径名
    • cd .. 回到上级目录
    • cd ../.. 回到上级目录的上级目录
    • cd / 回到根
    • cd /home/bjpowernode 切换到 /home/bjpowernode目录下
    • 路径包括:绝对路径和相对路径
      • 绝对路径:以/开始的都是绝对路径
      • 相对路径:没有以 / 开始的都是相对路径。相对路径永远都是相对于当前所在的位置而言。
  • clear 清屏。

2. vi和vim

  • 新建文件
    • touch命令,用法:
      • touch Hello.java 表示在当前位置新建一个Hello.java文件
  • vi概述
    • vi是Linux操作系统提供一个编辑器。
    • 可以把vi看做一个软件,作用就是编辑文件的。
  • vi编辑器的使用
    • 第一步:使用vi编辑器打开文件,语法:vi 文件的路径
      • vi Hello.java(打开当前路径下的Hello.java)
      • vi /home/bjpowernode/Hello.java(打开/home/bjpowernode目录下的Hello.java文件。)
    • 第二步:vi编辑器为用户准备了两个模式
      • 第一个模式:命令行模式,这个时候键入的都是命令。
      • 第二个模式:编辑模式。这个时候键入的内容都会写入文件。
      • 刚使用vi编辑器打开文件的时候,vi编辑器处于命令模式。输入i命令,可以让模式切换到编辑模式。
        • 命令模式—->编辑模式(键入i命令。i是insert单词的首字母。)
      • 从编辑模式怎么回到命令模式呢?
        • esc,按一下即可。(你如果分不清现在是编辑模式还是命令模式的话,干脆按一下esc,这样可以保证一定是命令模式,命令模式下可以输入命令。例如:dd命令,可以删除一行。)
    • 第三步:编写完文件之后,要保存,怎么保存?
      • 首先保存一定是在命令模式下进行的。(按esc回到命令模式。)
      • 输入命令
        • :wq 这是一个命令,这个命令可以保存并退出。
        • :q! 这是一个命令,这个命令可以强行退出vi编辑器,并且不保存。
  • vi和vim的区别
    • vim是vi的升级版。vim的功能更加强大。
    • vim更加适合coding,也就是编码,开发。
    • vi比较适合编辑普通文件。
  • vi编辑器也可以创建文件:
    • 第一步:vi abc.txt
    • 第二步:命令行模式下,保存并退出,这个时候文件就会新建。(文件没有就会新建。)
  • 编辑命令
    • dd:删除光标所在行
    • yy:复制光标所在行到缓冲区
    • p:粘贴缓冲区中的内容
    • gg:光标回到文件第一行
    • GG:光标回到文件最后一行
    • ^ :光标移动至当前行的行首
    • $ :光标移动至当前行的行尾
    • /关键字:按斜杠/键,可以输入想搜索的字符,然后确定进行搜索,如果第一次查找的关键字不是想要的,可以一直按 n 键往后查找到想要的关键字为止
    • o命令:在下一行插入。
    • x命令:命令行模式下,x命令会删除单个字符。

3. 文件管理

  • 什么是文件管理?
    • 新建目录、新建文件、删除文件、删除目录、复制文件、移动文件。
  • 新建
    • 新建目录
      • mkdir abc (mkdir是新建目录的命令,abc是一个目录名)
      • mkdir -p a/b/c (-p参数表示,一次创建多重目录)
      • mkdir -p a/kk/ff (虽然a已经存在了,但是不会报错,直接在a目录下新建kk目录,kk目录下新建ff目录。)
    • 新建文件
      • touch 文件名,例如:touch Hello.java 表示在当前目录下新建一个文件Hello.java
      • touch a.txt b.txt c.txt 一次性在当前目录下,新建多个文件,文件名之间采用空格分隔。
  • 小插曲1:man命令
    • man命令可以查看某个命令的具体用法,例如:man touch
    • 如果一个命令具体的用法你不知道的话,问那个男人man就行了。
    • touch [OPTION]… FILE…
      • 解释:touch是命令。[OPTION]…这个位置表示命令参数/命令选项,可以写多个。FILE…表示可以出现多个文件名。
      • 语法中有一个[OPTION],这个[OPTION]在哪里?在DESCRIPTION中有具体的参数。查看即可。
    • man命令怎么进行翻页?空格
    • man命令怎么退出?q
  • 小插曲2:—help,也可以查看一个命令的帮助,一次性列出
    • touch —help
    • 一次性的全部列出一个命令的所有帮助。
    • 如果一个命令不会用,可以使用:—help,查看一个命令的帮助。
    • ls -a(列出一个目录下的所有文件/目录,包括隐藏文件)
    • ls —all(同样可以,和ls -a 效果一样。)
    • -a 是短参数。—all 是长参数。
  • 删除(rm命令,是remove单词缩写。)
    • 删除文件
      • rm 文件名
      • rm a.txt(删除当前目录下的a.txt文件)。这种方式会询问,是否删除,输入y表示删除,输入n表示不删除。
      • 不想让系统询问你是否删除,怎么进行强行删除呢?
        • -f 参数可以做到。
        • rm -f a.txt(强行删除a.txt文件,不询问)
      • 删除多个文件
        • rm -f b.txt c.txt (删除b.txt和c.txt文件)
        • rm -f *.java(删除所有.java结尾的文件,模糊匹配的方式。)
    • 删除目录
      • 删除目录的时候,必须添加-r参数,这个-r表示删除一个目录,或者递归删除目录下的所有子目录以及子文件。
      • rm -r x(删除当前目录下的x目录,以及x目录下所有的子目录),但是这种方式需要用户自己输入y进行确认删除。
      • rm -rf x (强行删除x目录以及x目录下所有的子目录,并且不询问。包括子文件也全部删除。)
  • 复制/拷贝(cp命令,是copy单词缩写)
    • 复制文件
      • cp a.txt aa.txt(复制当前目录下的a.txt文件,粘贴到当前目录下并且生成新文件aa.txt)
      • cp Hello2.java a/Hello3.java
      • 语法:
        • cp file1 file2
        • file1就是被拷贝的文件
        • file2就是粘贴之后的文件
        • file1和file2可以添加路径。
        • cp 被拷贝文件的路径 粘贴到哪里的路径
    • 复制目录
      • -rf (-r递归拷贝,-f强行拷贝)
      • cp 目录名1 目录名2
      • 目录名1 是拷贝源
      • 目录名2 是拷贝到哪里
      • cp -rf a abc(将当前目录下的a目录拷贝到当前目录下的abc目录当中)
      • cp -rf /home/bjpowernode/a /home/bjpowernode/x
        • 将/home/bjpowernode/a目录拷贝到/home/bjpowernode/x目录下。
  • 移动(mv命令,是move的缩写)
    • mv Hello.java x(将当前目录下的Hello.java文件移动到x目录下。)
    • mv /home/bjpowernode/Hello2.java /home/bjpowernode/x
      • 将/home/bjpowernode/Hello2.java 移动到 /home/bjpowernode/x目录下
    • mv x f(将x目录移动到f目录下。)

4.软链接和硬链接

  • 软链接
    • 软链接其实就是windows操作系统中的快捷方式。
    • 软链接的作用:方便操作。快捷。。。有些经常被操作的文件,藏的很深,每一次找很麻烦,怎么办,可以给这些经常操作的文件创建软链接。通过软链接快捷的操作目标文件。
    • 软链接和目标文件实际上是两个文件,在软链接中存储的是目标文件的路径。软链接关联的目标文件如果被删除,软链接这个快捷方式也就失效了。
    • 怎么创建软链接呢(在linux当中怎么创建快捷方式呢)?
      • ln -s hello.java hello2.java
        • 表示给hello.java文件创建一个hello2.java的快捷方式(软链接)
        • hello.java是目标文件。hello2.java文件是软链接,属于快捷方式
    • 查看文件内容:cat命令
      • cat hello.java
      • 查看hello.java文件的内容。
  • 文件的inode号
    • inode是什么?index node(索引节点号)
    • 在linux系统当中,任何一个文件都有inode号。(在linux当中任何一个文件都有索引节点号)
    • 在linux系统当中不是依靠文件名来区分文件的,是依靠inode号来区分文件的。(每一个文件都有自己的inode号,不会重复)
    • 怎么查看一个文件的inode号呢?
      • ls -i hello.java
      • 通过ls命令加上-i参数可以查看文件的inode号。
    • [root@localhost ~]# ls -li hello2.java hello.java 【通过测试得知软链接和目标文件是两个完全不同的文件,因为inode号不同】
      18371655 lrwxrwxrwx. 1 root root 10 5月 12 11:13 hello2.java -> hello.java
      18371348 -rw-r—r—. 1 root root 0 5月 12 11:13 hello.java
  • 硬链接

    • 怎么创建硬链接?(把软链接创建过程中的 -s 去掉就是创建硬链接的语法。)
      • ln hello.java hello2.java【给hello.java文件创建hello2.java硬链接】
        • hello.java是源文件
        • hello2.java是硬链接
    • [root@localhost ~]# ls -li hello.java hello2.java【通过测试得知,hello.java创建出的硬链接hello2.java,这两个的inode号是一样的。】
      18371348 -rw-r—r—. 2 root root 0 5月 12 11:17 hello2.java
      18371348 -rw-r—r—. 2 root root 0 5月 12 11:17 hello.java
      这说明:目标文件和硬链接其实就是同一个文件,因为inode号是一样的。
    • 通过操作硬链接,目标文件会改变吗?操作目标文件,硬链接会改变吗?
    • 硬链接的特点:
      • 主要是用来做:重要文件备份。
      • 目标文件删除之后,硬链接只要在,文件其实就没有被删除。或者说硬链接删除之后,目标文件还在。总结一句话:目标文件或者硬链接只要有一个存在,文件就没有被真正的删除。
      • 硬链接机制和复制粘贴还不一样,复制粘贴之后的文件,修改其中之一,另一个不会变,但是硬链接就不一样了。

        5.系统命令

  • 显示系统当前时间

    • date
  • 切换用户
    • su 用户名
  • 查看系统进程
    • ps -ef
    • ps [命令参数]常用参数:-e :显示当前所有进程-f :显示 UID,PPID,C 与 STIME 栏位信息UID:拥有改程序的用户PID:程序的进程 idPPID:父进程的 idC: CPU 使用的资源百分比STIME :系统启动时间TTY:登录系统的终端位置(客户端的标识)TIME:使用掉的 CPU 时间CMD:进程是有哪些程序启动的
  • kill进程
    • kill 进程号
    • kill -9 进程号(强行杀死)
  • 重启
    • reboot
  • 关机
    • shutdown -h now