目录
1.Linux 目录结构
Linux 是一个树形目录结构.
几个特殊的目录:
/
称为根目录.
称为当前目录..
称为当前目录的上级目录
绝对路径 vs 相对路径:
形如: /usr/share/tomcat/logs/
以根目录开头的, 称为绝对路径.
形如: ./logs
以 .
或者 ..
开头的, 称为相对路径.
使用 tab 键补全:
所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
2.Linux 常用命令
2.1 ls
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a
列出目录下的所有文件,包括以 . 开头的隐含文件。-d
将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-k
以 k 字节的形式表示文件的大小。ls –alk 指定文件-l
列出文件的详细信息。-r
对目录反向排序。-t
以时间排序。-R
列出所有子目录下的文件。(递归)
2.2 pwd
语法: pwd
功能:显示用户当前所在的目录
2.3 cd
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下.
特殊说明:
cd ..
: 返回上级目录
cd ~
:进入用户家目录
cd -
:返回最近访问目录
2.4 touch
语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
2.5 cat
语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
-n
对输出的所有行编号
2.6 mkdir
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p
, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
2.7 rm
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
-f
即使文件属性为只读(即写保护),亦直接删除-i
删除前逐一询问确认-r
删除目录及其下所有文件
注意:
千万不要运行 rm -rf /
,后果很严重。
/
是文件系统根目录;
rm
是删除指令;
-r
是 recursive(递归);
-f
是 force(强制),遇到只读文件也不提示,直接删除。
所以rm -rf /
就是删除整个文件系统上的所有文件,而且不用给用户提示。
删了就真该跑路了!
2.8 cp
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
-f
或--force
强行复制文件或目录, 不论目的文件或目录是否已经存在-i
或--interactive
覆盖文件之前先询问用户-r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R
或--recursive
递归处理,将指定目录下的文件及子目录一并处理
2.9 mv
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f
:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i
:若目标文件 (destination) 已经存在时,就会询问是否覆盖!
2.10 man
语法: man [选项] 命令
常用选项:
-k
根据关键字搜索联机帮助num
只在第num章节找man man
能够看到 man 手册中的若干个章节及其含义.
2.11 less
语法: less [参数] 文件
功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.
常用选项:
j k / 方向键
: 向上向下滚动屏幕.-N
显示每行的行号/字符串
:向下搜索“字符串”的功能n
:重复前一个搜索(与 / 或 ? 有关)q:
退出
2.12 head
语法:head [参数]... [文件]...
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
常用选项:
-n<行数>
显示的行数
2.13 tail
语法: tail [必要参数] [选择参数] [文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
常用选项:
-f
循环读取-n<行数>
显示行数
2.14 date
date 指定格式显示时间: date +"%Y-%m-%d %H:%M:%S"
date 用法:date [OPTION]... [+FORMAT]
设置想要显示的时间,格式设定为一个加号后接数个标记:
%H
: 小时(00…23)%M
: 分钟(00…59)%S
: 秒(00…61)%X
: 相当于 %H:%M:%S%d
: 日 (01…31)%m
: 月份 (01…12)%Y
: 完整年份 (0000…9999)%F
: 相当于 %Y-%m-%d
时间戳:
时间->时间戳:
date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
2.15 vim
vim 是一个知名的文本编辑器. 前面学习的 cat, less, head, tail 等命令只能查看文本, 不能编辑文本. 使用 vim 就可以进行编辑了.
- 创建文件 / 打开文件:
vim [文件名]
- 进入插入模式:vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 “j”, 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.使用 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
- 保存:在插入模式下不能保存文件, 需要先回到 普通模式 . 按下
Esc
回到普通模式. 在普通模式下输入:w
, 再按下回车, 即可保存文件. - 退出:在插入模式下不能退出, 需要先回到 普通模式.
在普通模式下输入:q
, 再按下回车, 即可退出.也可以直接使用:wq
同时执行保存和退出.
2.16 grep
语法:grep [参数]... [文件]...
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.
常用选项:
-n<行数>
显示的行数-w
全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.-r
递归查找. 可以搜索多级目录下的所有文件.--color
高亮查找到的结果--include
指定查找某些文件--exclude
指定排除某些文件
2.17 ps
语法:ps [参数]...
功能:用于查看当前系统上运行的进程
常用选项:
a
显示一个终端的所有进程u
以用户为主的格式来显示程序状况x
显示所有程序,不以终端机来区分
2.18 netstat
语法:netstat [参数]...
功能:查看系统上的网络状态.
常用选项:
-a
显示所有正在或不在侦听的套接字-n
显示数字形式地址而不是去解析主机、端口或用户名-p
显示套接字所属进程的PID和名称
3.Linux 权限
3.1 用户操作
Linux下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情。
- 超级用户的命令提示符是“
#
”,普通用户的命令提示符是“$
”。
(1) 创建用户
命令: useradd [用户名]
功能: 创建新的用户
(2)配置密码
命令: passwd [用户名]
功能: 设置或修改用户密码
(3)切换用户
命令:su [用户名]
功能:切换用户。
例如:要从root用户切换到普通用户user,则使用 su user
。
3.2 三种角色
访问一个文件的人可能分成三种类别:
- 文件和文件目录的所有者:u—User
- 文件和文件目录的所有者所在的组的用户:g—Group
- 其它用户:o—Others
3.3 文件类型和访问权限
命令 ll
显示了一个文件的详细信息. 解读如下图:
文件类型
d
:文件夹-
:普通文件l
:软链接(类似Windows的快捷方式)b
:块设备文件(例如硬盘、光驱等)p
:管道文件c
:字符设备文件(例如屏幕等串口设备)s
:套接口文件
基本权限
- 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “-” 表示不具有该项权限
3.3.1 修改文件权限
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
-R
递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式
(1)用户表示符+/-=权限字符:
+
:向权限范围增加权限代号所表示的权限-
:向权限范围取消权限代号所表示的权限=
:向权限范围赋予权限代号所表示的权限
用户符号:
u
:拥有者g
:拥有者同组用o
:其它用户a
:所有用户
实例:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod a=x /home/abc.txt
(2)三位8进制数字:
rwx 可以用数字来表示:
字母 | 说明 |
---|---|
r | 读取权限,数字代号"4" |
w | 写入权限,数字代号"2" |
x | 执行权限,数字代号"1" |
- | 不具任何权限,数字代号"0" |
实例:
例如执行:chmod u=rwx,g=rx,o=r test
等同于:chmod u=7,g=5,o=4 test
,也就是:chmod 754 test
。