1. 磁盘管理
- Linux和windows在资源管理上有什么区别吗?
- windows
- 打开桌面上的此电脑,映入眼帘的是:C盘D盘F盘。然后不同的磁盘下有不同的目录以及子文件。
- linux
- linux操作系统采用一个文档树来组织所有的资源。
- 这棵树的根目录的名字叫做:/
- / 是一个目录名字,是linux操作系统中所有文件的根。
- / 目录下又有很多其他的子目录,比如:dev home lib …..
- windows
- 查看当前所在位置
- 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组的。
- 第六列:文件或目录的大小,单位是字节。
- 第七列:最后修改时间
- 第八列:文件名
- drwxr-xr-x. 2 root root 6 4月 18 10:26 公共
- ls -al
- a和l组合使用
- a表示所有,包含隐藏的文件或目录。
- l表示列出更详细的信息。
- al表示列出所有的文件的详细信息。
- ll
- 等同于:ls -l
- ll -a
- 等同于:ls -al
- ls -al /home/bjpowernode
- 查看/home/bjpowernode目录下所有的子文件以及子目录的详细信息。
- ls
- 切换目录(cd命令:change directory)
- cd 用来切换目录
- cd怎么用?
- cd 路径名
- cd .. 回到上级目录
- cd ../.. 回到上级目录的上级目录
- cd / 回到根
- cd /home/bjpowernode 切换到 /home/bjpowernode目录下
- 路径包括:绝对路径和相对路径
- 绝对路径:以/开始的都是绝对路径
- 相对路径:没有以 / 开始的都是相对路径。相对路径永远都是相对于当前所在的位置而言。
- clear 清屏。
2. vi和vim
- 新建文件
- touch命令,用法:
- touch Hello.java 表示在当前位置新建一个Hello.java文件
- touch命令,用法:
- 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编辑器打开文件,语法: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文件是软链接,属于快捷方式
- ln -s 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是硬链接
- ln 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号是一样的。 - 通过操作硬链接,目标文件会改变吗?操作目标文件,硬链接会改变吗?
- 硬链接的特点:
- 怎么创建硬链接?(把软链接创建过程中的 -s 去掉就是创建硬链接的语法。)
显示系统当前时间
- 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