我是目录:
1、指令格式:
输入指令/命令/程序,可以跟参数,参数值
指令 -参数1[参数值] -参数2[参数值]([ ]内容可有可无)
可以多个参数,没有参数值时,可以合并多个参数:-参数1参数2
2、Windows 和 Linux 通用内容:
路径 : Linux根路径是 /,Linux区分大小写,路径间隔敏感(只能使用 /,不能使用 \)
- 绝对路径:以 / 开头,都是绝对路径
- 相对路径:非 / 开头,都是相对路径
特殊的相对路径: . . 上一级
. 当前这一级
~ 当前登录用户的目录
Linux树形目录结构:
常用技巧:
-
tab:命令补全,路径上文件夹/文件名补全
双击,相同的有多个,会输出匹配的多个指令/文件夹名/文件名 -
ctrl + c(特殊):重新输入,取消当前命令
-
上下箭头:拿到前边 / 后边执行的命令
3、路径的命令:
(1) cd :切换到某个目录(相对路径 / 绝对路径)
(当前路径 + 相对路径 = 切换到绝对路径)
语法 : (cd 目录名)
举例:
- cd . . :返回上级目录
- cd ~ :进入当前登录用户的目录
- cd - :返回最近访问目录
(2) pwd : 显示当前路径
举例: pwd
(3) ls :列出目录下的所有子目录与文件 或 文件的信息
(对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息)
语法: ( ls [选项] [目录或文件])
常用选项:
指令 | 说明 |
---|---|
-a | 列出目录下的所有文件,包括以 . 开头的隐含文件 |
-l | 列出文件的详细信息( 别名: ll ) |
-R | 列出所有子目录下的文件(递归) |
-d | 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录 |
-k | 以 k 字节的形式表示文件的大小。ls –alk 指定文件 |
-r | 对目录反向排序。 |
-t | 以时间排序 |
举例 : ls -l
4、目录 / 文件的指令:
(1) touch 指令: 更改文档或目录的日期时间
(包括存取时间和更改时间,或者新建一个不存在的文件)
语法 : ( touch [选项]… 文件…)
举例: touch test.txt
(2)mkdir 指令:指定目录或当前目录,创建文件夹
(如果已有,会报错,创建多级目录,使用 -p参数)
语法 : (mkdir [选项] dirname…)
常用选项:
- -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
举例: mkdir -p test/test1 : 递归建立多个目录
(3) rm 指令 : 删除目录或文件夹
语法 : (rm [-f-i-r-v] [dirName/dir])
(模糊匹配 : * 代表任意数量的任意字符)
常用选项:
- -f 强制删除(不询问)
- -i 删除前逐一询问确认
- -r 递归删除目录(包括子文件、子文件夹)
(千万不要使用 rm -rf / (相当于删库跑路))
举例 : rm test.txt
(4)cp 指令 : 复制文件或目录
语法 : (cp [选项] 源文件或目录 目标文件或目录)
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
举例 : cp test1.txt test2.txt
(5)mv 指令: 移动文件 或 文件重命名
语法 : (mv [选项] 源文件或目录 目标文件或目录)
功能:
- 1、视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 2、当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 3、 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中
常用选项:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
举例 : mv test1.txt test2.txt
5、文件内容操作的指令:
(1)vi :Linux上默认文本编辑器(经常用)
(上面的指令全部支持)
举例 : vi test.txt(这个文件可以是已有的,也可以是新建)
- 查看模式:
指令 | 说明 |
---|---|
i | 进入编辑模式(光标位置插入) |
o | 进入编辑模式(新行插入) |
gg | 切换到整个文档的首部 |
shift + g | 切换到整个文档的尾部 |
j / k | 作用和上下箭头一样,到上/下行 |
/搜索内容 | 回车后,进行搜索。搜索到以后:按 n 切换到下一个匹配的字符串,shift + n 上一个 |
dd | 删除光标所在行 |
:q! | 强制退出(不保存) |
:w | 保存不退出 |
:wq | 保存并退出 |
- 编辑模式:
esc 退出编辑模式,进入查看模式
(2)cat 指令:查看目标文件的内容
语法: (cat [选项] [文件])
常用选项:
- -n 对输出的所有行编号
举例: cat test.txt
(3)man 指令:查看某个指令的文档
语法: (man [选项] 命令)
常用选项:
- -k 根据关键字搜索联机帮助
- num 只在第 num 章节找
- man man 能够看到 man 手册中若干个章节及其含义
举例: man ls(查看指令 ls 的文档)
进入文档的查看模式可进行的操作:
指令 | 说明 |
---|---|
g | 切换到整个文档的首部(vi中是 gg) |
shift + g | 切换到整个文档的尾部 |
j / k | 作用和上下箭头一样,到上/下行 |
/搜索内容 | 回车后,进行搜索。搜索到以后:按 n 切换到下一个匹配的字符串,shift + n 上一个 |
:q | 回车后退出查看模式 |
(4)less 指令:查看文件部分内容
语法 : (less [参数] 文件)
指令 | 说明 |
---|---|
j / k | 方向键:向上向下滚动屏幕 |
-N | 显示每行的行号 |
/字符串 | 向下搜索 “字符串” 的功能 |
n | 重复前一个搜索(与 / 或 ? 有关) |
q | 退出 |
(5)head 指令:以打印的方式输出文件内容(默认10行)
语法 : (head [参数]… [文件]…)
选项:
- -n<行数> 显示的行数
举例 : head -n15 test.txt
(6)tail 指令:显示指定文件的末尾内容
语法 : (tail [必要参数] [选择参数] [文件] )
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
- -f 循环读取
- -n<行数> (显示文件总行数-n开始,到文件尾部的内容)
(7)进程重定向
Linux 的很多指令, 如 cat、head、tail 等都是默认输出到 “标准输出” 中, 也就是显示器上的. 可以通过 > 这样的符号把本来要输出到标准输出上的内容写到特定文件中. 这样的操作称为 “重定向”
重定向的三种方式:
1、标准 输入 重定向(<)
- #先构造一个文件,里面添加一些内容
- cat < test.txt
2、标准 输出 重定向(>)
- cat test.txt > test2.txt
3、标准 错误 重定向(2>),注意 2 和 > 之间不能有空格
- 删除一个不存在的文件
rm aaa > test.txt - 输出结果,这个提示并没有被重定向到 test.txt 文件中
rm : cannot remove ‘aaa’: No such file or directory - 正确做法:
rm aaa 2> test.txt
标准输入, 标准输出, 标准错误是三个特殊的文件, 每个进程在启动的时候都会默认打开. 分别对应到键盘, 显示器, 显示器这样的设备. 在 Java 中, 分别对应到 System.in , System.out , System.err
(8)管道
管道是一种古老的 “进程间通信” 方式. 在 Linux 指令中可以使用 | 作为管道标记
意思是将前一个指令标准输出的内容, 作为第二个指令的标准输入内容.
例如: 有一个文件共有100行内容,请取出第50行内容
head -n50 test | tail -n1
6、进程、网络、系统统计指令(简历可写)
(1)根据端口号查看进程 pid
- windows : netstat -ano | findstr 端口号
- linux : netstat -anp | grep 端口号
(2)根据进程的名称查找 pid
- ps -ef | grep 进程名
- ps aux | grep 进程名
7、Linux 权限
(1)认识 Linux 用户
Linux下有两种用户:超级用户(root)、普通用户
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
(2)用户指令:
1、创建用户:
useradd [用户名]
2、配置密码:
passwd [用户名]
注意:输入密码的时候, 在控制台中不会有提示. 但实际上已经输入进去了
3、切换用户:
su [用户名]
(3)文件权限(重点)
(4)chmod 命令: 修改文件访问权限
格式: (chmod [参数] 权限 文件名)
常用选项:
- R-> 递归修改目录文件的权限
- 说明: 只有文件的拥有者和 root 才可以改变文件的权限
方式 1:
- +: 向权限范围增加权限代号所表示的权限
- -: 向权限范围取消权限代号所表示的权限
- =: 向权限范围赋予权限代号所表示的权限
用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
示例:
# chmod u+w /home/abc.txt
# chmod o-x /home/abc.txt
# chmod a=x /home/abc.txt
方式 2: 数字相加(每个权限有对应的数字)