1 Linux下常用基础命令和权限理解
Linux下的操作都是命令操作,语法格式大致都是:命令名 [操作选项] [源操作对象] [目的操作对象]
还要说明的是,Linux下一切皆文件,并不以文件后缀名区分文件类型,这样也是为了实现操作接口统一。比如目录实际上就是一个文件,只不过这个文件中还放有其他文件。牢记这一点对学习Linux是很有帮助的。
1.1 针对目录的常用命令
1.1.1 ls指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下所有子目录与文件。对于文件,将列出文件名以及其他信息
常用选项:
- -a 列出目录下所有文件,包括以.开头的隐藏文件。
- -l 列出文件的详细信息。
- -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockes)。
1.1.2 pwd命令
语法:pwd
功能:显示用户当前所在的目录
1.1.3 cd命令
Linux和Windows系统不同,没有分区这么一说。在Linux系统中,磁盘上的所有文件和目录组成了一棵目录树,每个节点都是目录或文件。
在Linux中,有两种比较特殊的目录表示方法:
- . 代表的是当前目录;…代表的上级目录
- /代表的是根目录;~代表的用户家目录;-代表的是最近访问目录
/home/lodian/WorkSpace/:这种以根目录为起始查找路径的表示方法为绝对路径
WorkSpace/:这种以当前路径为起始查找路径的表示方法为相对路径
语法:cd目录名
功能:改变工作目录,将当前工作目录改变到指定的目录下
1.1.4 mkdir命令
语法:touch [选项] dirname
功能:在当前目录下创建一个名为“dirname”的目录
常用选项:
- -p或–parents 可以是一个路径名称。若路径中的某些目录尚不存在,系统将自动创建那些不存在的目录,即递归建立多个目录
1.1.5 rmdir命令
语法:rmdir [选项] dirname
功能:删除空目录
常用选项:
- -p 当子目录删除后如果父目录也变成空目录的话,连带父目录一起删除,即递归删除多级目录
1.1.6 rm命令
语法:rm [选项] filename/dirname
功能:删除文件或目录
常用选项:
- -f 即使文件属性为只读(即写保护),忽略提示信息,直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
1.1.7 cp命令
语法:cp [选项] 源文件或目录 目标文件或目录
功能:复制文件或目录
常用选项:
- -f或–force 强行复制文件或目录,不管目的文件或目录是否已经存在
- -i或–interactive 覆盖文件之前先询问用户
- -r 递归处理,将制定目录下的文件与子目录一并处理
1.1.8 mv命令
语法:mv [选项] 源文件或目录 目的文件或目录
功能:
视mv命令中第二个参数类型的不同:
- 当第二个参数是已存在的目录名称或路径,mv命令将文件或目录移动到这个新的目录中
- 当第二个参数是文件名或者目录名称时,mv命令将文件或目录进行重命名成给定的文件名或者目录名
常用选项:
- -f 强制移动,如果目标文件已经存在,不会询问而直接覆盖
- -i 若目标文件已经存在时,询问是否覆盖
1.2 针对文件的常用命令
1.2.1 touch
语法:touch [选项] 文件名
功能:touch命令可以新建一个不存在的文件,或者更改文件的日期时间等
常用选项:
- -d 使用指定时间来刷新文件的时间属性
- -r 以指定文件的事件来刷新另一个文件的时间属性
1.2.2 cat命令
语法:cat [选项] 文件名
功能:将文件内容打印到终端进行显示
常用选项:
- -b 对输出的非空行进行编号
- -n 对输出的所有行进行编号
- -s 文件中有多行空行时只显示一行
1.2.3 more命令
语法:cat [选项] 文件名
功能:分页显示文件内容
常用选项:
- -n 对输出的所有行进行编号
- q 退出more查看文件内容
1.2.4 less命令
语法:less [选项] 文件名
功能:
- less与more类似,也是对文件进行分页显示的工具,应该说是Linux中正统查看文件内容的工具,功能及其强大。
- 在more的时候,只能往后面翻,less可以使用PageUp和PageDown进行翻页,而且less在查看之前不会加载整个文件。
- 在less里面还拥有字符串的搜索功能,既可以向上匹配也可以向下匹配。
选项:
less 文件名进入查看后:
- 上下箭头:上下单行滚动
- /字符串:向下匹配字符串
- ?字符串:向上匹配字符串
- n:重复前一个搜索
- N:反向重复前一个搜索
- q:退出less查看文件内容
1.2.5 head命令
语法:head [选项] 文件名
功能:将文件中内容的前n行输出到终端上进行显示,默认是打印前10行
常用选项:
1.2.6 tail命令
语法:tail [选项] 文件名
功能:将文件中内容的末尾n行输出到终端上进行显示,默认是打印末尾10行
常用选项:
- -f 动态刷新文件的末尾内容
- -n行数 指定显示的末尾行数
1.3 其他常用命令
1.3.1 date命令
date可以指定格式显示时间也可以设定时间
- 在显示时间时,使用者可以指定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
- %H:小时
- %M:分钟
- %S:秒
- %X:相当于%H:%M:%S
- %d:日
- %m:月份
- %Y:年份
- %F:相当于%Y-%m-%d
- 在设定时间时(需要root权限)
- date //查看当前时间
- date -s 20080808 //设置为20080808,时间设置成00:00:00
- date -s 12:00:00 //设置时间为12:00:00,日期不会修改
- date -s “12:00:00 20080808”//设置全部时间
- date -s “20080808 12:00:00”//设置全部时间
- date -s “12:00:00 2008-08-08”//设置全部时间
- date -s “2008-08-08 12:00:00”//设置全部时间
- 时间戳
- date +%s 显示当前时间与时间戳想差的秒数(时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒)
1.3.2 cal命令
语法:cal [参数] [年份] [月份]
功能:查看日历
常用选项:
- -3 显示系统日期前一个月、当前月、下一个月的日历
- -j 按一年中的第n天来显示日历
- -y 查看整年的日历,后面可以跟年份查看指定年份的日历
1.3.3 find命令
语法:find [路径] [文件名]
功能:查找指定的文件
常用选项:
- 文件名:查找文件
- *:通配符:匹配任意字符,进行模糊查找
1.3.4 grep命令
语法:grep [选项] 搜索字符串 文件名
功能:在文件中搜索字符串,将找到的行打印到终端上
常用选项:
- -i 忽略大小写
- -n 打印的同时输出行号
- -v 反向选择,即将没有所搜索的字符串内容的那些行打印出来
- -R 针对指定目录下的所有文件进行字符串匹配
1.3.5 打包压缩命令
1.3.5.1 zip/unzip指令
语法:zip 目录或文件 / unzip .zip压缩文件
功能:将目录或文件压缩成.zip格式/将.zip文件解压缩
常用选项:
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
1.3.5.2 gzip/gunzip指令
语法:gzip 目录或文件 / gunzip .gzip压缩文件
功能:将目录或文件压缩成.gzip格式/将.gzip文件解压缩
常用选项:
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
1.3.5.3 bzip2/gunzip2指令
语法:bzip2 目录或文件 / bunzip2 .bzip2压缩文件
功能:将目录或文件压缩成.bzip2格式/将.bzip2文件解压缩
常用选项:
- -r 递归处理,将指定目录下的所有文件和子目录一并处理
1.3.5.4 tar指令
语法:tar [选项] 文件名
功能:将目录或文件压缩成打包或者解压缩
常用选项:
- -c :建立一个压缩文件的参数指令(create 的意思)
- -x :解开一个压缩文件的参数指令
- -t :查看 tarfile 里面的文件!
- -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
- -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
- -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
- -C : 解压到指定目录
实例:
tar -czvf code.tar.gz ./code/
将当前目录下的code/目录使用gzip压缩打包成code.tar.gz
1.3.6 ifconfig命令
功能:查看当前系统网卡信息
1.3.7 echo命令
语法:echo 字符串
功能:将字符串打印到终端上
1.3.8 su命令
功能:切换用户。su root切换到root用户,需要输入密码;su 用户名,切换到指定用户
1.3.9 ps命令
功能:查看进程
常用选项:
- ps -ef :System V风格,包括UID、PID、PPID、C、 STIME、TTY、TIME、CMD等字段信息
- ps aux :BSD风格,包括USER、PID、%CPU、%MEM 、VSZ、RSS、TTY、STAT、START、TIME、COMMAND等字段,需要查看进程状态就使用这个命令
1.3.10 kill命令
常用选项:
- kill -l :列出所有信号
- kill -9 pid :向指定进程发送9号信号,所谓的强杀
- kill -2 pid :向指定进程发送2号信号,相当于按下ctrl+C
1.3.11 netstat命令
语法:netstat [选项]
功能:查看网络状态
常用选项:
- -a 显示出所有选项,默认不显示LISTEN(监听)相关
- -l 仅列出有在LISTEN的服务状态
- -n 拒绝显示别名,能显示数字的全部转化为数字显示
- -p 显示建立相关连接的程序名
- -t 仅显示tcp相关选项
- -u 仅显示udp相关选项
1.3.12 重定向
默认情况下,标准输出是显示器,标准输入是键盘,标准错误也是显示器,而标准输出重定向就是将要写入到显示器的文件数据写入到指定的文件中。
- > :清空原有内容,将数据写入到文件中
- >> :将数据追加写入到文件中,不会清空原有内容
1.3.13 管道符
功能:连接两个命令,并将前一个命令的输出作为后一个命令的输入
举例:
- 查看/etc/passwd文件的第十行数据
head -n 10 /etc/passwd | tail -n 1
1.4 常用操作
-
TAB
命令自动补全
-
ctrl+c
中断当前操作,实际上是向进程发送了一个SIGINT信号
-
ctrl+l
清屏
-
ctrl+a
跳到命令行首
-
ctrl+e
跳到命令行尾
1.5 Linux权限管理
权限通俗的来说就是哪些事情能做,哪些事情不能做。
在linux下,用户分为了两种:超级用户(root)、普通用户。
- 超级用户:可以在linux下做任何事情,不受限制
- 普通用户:在linux下做有限的事情
- 超级用户的命令提示符是“#”,普通用户的命令提示符是“$”
1.5.1 文件访问者
- 文件和目录的所有者:u-User
- 文件和目录的所属组:g-Group
- 其他用户:o-Other
1.5.2 文件访问权限
1.5.2.1 基本权限
- 读(r):read对文件而言,具有读取文件内容的权限;对目录来说,具有游览该目录信息的权限。
- 写(w):write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限。
- 执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限。
- “-”表示不具备该项权限
1.5.2.2 文件权限的表示方法
字符表示法:
Linux表示 |
说明 |
Linux表示 |
说明 |
r– |
仅可读 |
-w- |
仅可写 |
–x |
仅可执行 |
rw- |
可读可写 |
-wx |
可写可执行 |
r-x |
可读可执行 |
rwx |
可读可写可执行 |
— |
无权限 |
8进制数值表示法:
权限符号 |
八进制 |
二进制 |
r |
4 |
100 |
w |
2 |
010 |
x |
1 |
001 |
rw |
6 |
110 |
rx |
5 |
101 |
wx |
3 |
011 |
rwx |
7 |
111 |
— |
0 |
000 |
1.5.3 文件权限相关命令
1. umask
功能:查看或设置文件的默认创建权限掩码
普通用户默认掩码值为0002
默认创建文件的权限是777
文件最终权限的算法是777&(~umask)
2. chmod
功能:设置文件的权限
格式:chmod [参数] 权限 文件名
常用选项:-R 递归修改文件的权限
说明:只有文件的拥护者和root才能修改文件的权限
chmod修改权限的格式:
①用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其他用户
a:所有用户
实例:
chmod u+w /home/a.txt
chmod o-x /home/a.txt
②三位8进制数字
实例:
chmod 664 /home/a.txt
chmod 775 /home/a.txt
3. chown
功能:修改文件所有者
格式:chown [参数] 用户名 文件名
实例:
chown user1 a.txt
4. chgrp
功能:修改文件所属组
格式:chgrp [参数] 用户组名 文件名
实例:
chgrp users /abc/f2
1.5.4 目录的权限
- 可执行权限:如果目录没有可执行权限,则无法cd到目录中
- 可读权限,如果目录没有可读权限,则无法使用ls等命令查看目录中的内容
- 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件
但是,存在这样一种不科学的情况:张三创建的文件,凭什么李四可以直接删掉?为了解决这种现象,引入粘滞位的概念。
- 粘滞位
这个权限为主要针对的是目录,功能是让用户在一个目录下可以创建文件,但是只能删除自己的文件而不能删除别人的文件。
格式:chmod +t filename
当一个目录被设置为“粘滞位”,则该目录下的文件只能由:
- 超级管理员(root)删除
- 该目录的所有者删除
- 该文件的所有者删除