tree : 将所有文件以树的形式列出来
========================================================
临时关闭防火墙
systemctl stop firewalld
永久关闭防火墙
systemctl disable firewalld
临时关闭selinux安全机制
setenforce 0
永久关闭selinux安全机制
sed -i '7 s/enforcing/disabled/' /etc/selinux/config
Linux命令格式
Linux 命令的通用格式:命令字 [选项] [参数]
选项:用于调节命令的具体功能
"-" 引导短格式选项
"--" 引导长格式选项
注意:多个短格式选项可以合并,但是多个长格式选项,不能合并
参数:命令的对象,如文件、目录名等
Linux 下的换行符 ' '
Windows 下的换行符 ' '
命令快捷键
tab 键:自动补齐文件名,命令等;按两次 tab 键,系统将输出可用的所有名称列表
反斜杠 "":强制换行、续行符、转义符
ctrl+U:快速删除光标之前所有字符(可视为剪切)
ctrl+K:快速删除光标之后所有字符(可视为剪切)
ctrl+Y:黏贴刚才所删除(剪切)的字符
ctrl+L:清屏
ctrl+C:取消当前命令行编辑;结束当前执行的命令
ctrl+D:从 shell 提示中注销关闭,类似输入 exit
ctrl+A:把光标移动到行首,类似于 Home 键
ctrl+E:把光标移动到行尾,类似于 End 键
ctrl+Z:转入后台运行
ctrl+R:在历史命令中查找(常用并且很好用)
重要文件及包含的内容
/
根目录
包含了几乎所有的文件目录。相当于中央系统
/boot
引导程序,内核等存放的目录
/sbin
超级用户可以使用的命令的存放目录
/bin
普通用户可以使用的命令的存放目录
/lib
根目录下的所有程序的共享库目录
/dev
设备文件目录
/home
普通用户的家目录
/root
用户 root 的$HOME目录
/etc
全局的配置文件存放目录
/usr
这个目录中包含了命令库文件和在通常操作中不会修改的文件
/usr/lib
目标库文件,包括动态连接库加上一些通常不是直接调用的可执行文件的存放目录
/usr/bin
一般使用者使用并且不是系统自检等所必需可执行的目录
/usr/sbin
管理员使用的非系统必须的可执行文件存放目录
/usr/local
安装本地程序的一般默认路径
Linux基础命令
线上查询及帮助命令
man
查看命令帮助,命令的词典,更复杂的还有 info,但不常用。
用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便实用。
用法:man 命令字
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-Mpath] [-P pager] [-S section_list][section] name ...
-C config_life:指定设定文件 man.conf,缺省值是 /etc/man.conf
help
查看 Linux 内置命令的帮助,比如 cd 命令。--help 也可以使用
用法1:help 内部命令字
用法2:命令字 --help
即命令的"--help"选项,适用于大多数外部命令
文件和目录操作命令
cd
全拼 change directory,功能是从当前工作目录切换到指定的工作目录。
cp
全拼 copy,其功能为复制文件或目录。
find
查找的意思,用于查找目录及目录下的文件。
mkdir
全拼 make directories,其功能是创建目录
mv
全拼 move,其功能是移动或重命名文件
pwd
全拼 print working directory,其功能是显示当前工作目录的绝对路径。
rm
全拼 remove,其功能是删除一个或多个文件或目录。
touch
创建新的空文件,改变已有文件的时间戳属性。
tree
功能是以树形结构显示目录下的内容。
basename
显示文件名或目录名。
dirname
显示文件或目录路径。
chattr
改变文件的扩展属性。
lsattr
查看文件的扩展属性。
file
显示文件的类型。
md5sum
计算和校验文件的 MD5 值。
查看文件及内容处理命令
cat
全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
tac
tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。
more
分页显示文件内容
less
分页显示文件内容,more命令的相反用法。
head
显示文件内容的头部。
tail
显示文件内容的尾部。常用的是 tail -f 动态显示文件追加的内容。
cut
将文件的每一行按指定分隔符分割并输出。
split
分割文件为不同的小片段
paste
按行合并文件内容
sort
对文件的文本内容排序。
uniq
去除重复行。
wc
统计文件的行数、单词数或字节数。
iconv
转换文件的编码格式。
dos2unix
将 DOS 格式文件装换成 UNIX 格式。
diff
全拼 difference,比较文件的差异,常用于文本文件。
vimdiff
命令行可视化文件比较工具,常用于文本文件。
rev
反向输出文件内容。
grep/egrep
过滤字符串。
join
按两个文件的相同字段合并。
tr
替换或删除字符。
vi/vim
命令行文本编辑器
文件压缩及解压缩命令
tar
打包压缩
unzip
解压文件
gzip
gzip 压缩工具
zip
压缩工具
信息显示命令
uname
显示操作系统相关信息的命令。
hostname
显示或者设置当前系统的主机名。
dmesg
显示开机信息,用于诊断系统故障。
uptime
显示系统运行时间及负载。
stat
显示文件或文件系统的状态。
du
计算磁盘空间使用情况。
df
报告文件系统磁盘空间的使用情况。
top
实时显示系统资源使用情况。
free
查看系统内存。
date
显示与设置系统时间。
cal
查看日历等时间信息。
搜索文件命令
which
查找二进制命令,按环境变量 PATH 路径查找。
find
从磁盘遍历查找文件或目录。
whereis
查找二进制命令,按环境变量 PATH 路径查找。
locate
从数据库(/var/lib/mlocate/mlocate.db)查找命令,使用 updatedb 更新库。
用户管理命令
useradd
添加用户。
usermod
修改系统已经存在的用户属性。
userdel
删除用户。
groupadd
添加用户组。
passwd
修改用户密码。
chage
修改用户密码有效期限。
id
查看用户的 UID,GID 及归属的用户组。
su
切换用户身份。
visudo
编辑 /etc/sudoers 文件的专属命令。
sudo
以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。
基础网络操作命令
telnet
使用 TELNET 协议远程登录。
ssh
使用 SSH 加密协议远程登录。
scp
全拼 secure copy,用于不同主机之间复制文件。
wget
命令行下载文件。
ping
测试主机之间网络的连通性。
route
显示和设置 Linux 系统的路由表。
ifconfig
查看、配置、启用或禁用网络接口的命令。
ifup
启动网卡。
ifdown
关闭网卡。
netstat
查看网络状态
ss
查看网络状态
深入网络操作命令
nmap
网络扫描命令。
lsof
全拼 list open files,也就是列举系统中已经被打开的文件。
发送和接收邮件。
mutt
邮件管理命令
nslookup
交互式查询互联网 DNS 服务器的命令。
dig
查找 DNS 解析过程。
host
查询 DNS 的命令。
traceroute
追踪数据传输路由状况。
tcpdump
命令行的抓包工具。
有关磁盘与文件系统的命令
mount
挂载文件系统。
umount
卸载文件系统。
fsck
检查并修复 Linux 文件系统。
dd
转换或复制文件。
dumpe2fs
导出 ext2/ext3/ext4 文件系统信息。
dump
ext2/ext3/ext4 文件系统备份工具。
fdisk
磁盘分区命令,适用于 2TB 以下磁盘分区。
parted
磁盘分区命令,没有磁盘大小限额,常用于 2TB 以下磁盘分区。
mkfs
格式化创建 Linux 文件系统。
partprobe
更新内核的硬盘分区表信息。
e2fsck
检查 ext2/ext3/ext4/ 类型文件系统。
mkswap
创建 Linux 交换分区。
swapon
启用交换分区。
swapoff
关闭交换分区。
sync
将内存缓冲区的数据写入磁盘。
resize2fs
调整 ext2/ext3/ext4 文件系统大小。
系统权限及用户授权相关命令
chmod
改变文件或目录权限。
chown
改变文件或目录的属主和属组。
chgrp
改变文件用户组。
umask
显示或设置权限掩码。
查看系统用户登陆信息的命令
whoami
显示当前有效的用户名称,相当于执行 id -un 命令。
who
显示目前登录系统的用户信息。
w
显示已经登录系统的用户列表,并显示用户正在执行的指令。
last
显示登入系统的用户。
lastlog
显示系统中所有用户最近一次登录信息。
users
显示当前登录系统的所有用户的用户列表。
finger
查找并显示用户信息。
内置命令及其它
echo
打印变量,或直接输出指定的字符串。
printf
将结果格式化输出到标准输出。
rpm
管理 rpm 包的命令。
yum
自动化简单化地管理 rpm 包的命令。
watch
周期性的执行给定的命令,并将命令的输出以全屏方式显示。
alias
设置系统别名。
unalias
取消系统别名。
date
查看或设置系统时间。
clear
清除屏幕,简称清屏。
history
查看命令执行的历史记录。
eject
弹出光驱。
time
计算命令执行时间。
nc
功能强大的网络工具。
xargs
将标准输入转换成命令行参数。
exec
调用并执行指令的命令。
export
设置或者显示环境变量。
unset
删除变量或函数。
type
用于判断另外一个命令是否是内置命令。
bc
命令行科学计算机。
系统管理与性能监视命令
chkconfig
管理 Linux 系统开机启动项。
vmstat
虚拟内存统计。
mpstat
显示各个可用 CPU 的状态统计。
iostat
统计系统 IO。
sar
全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、CPU 中断和网络等性能数据。
ipcs
用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcrm
用来删除一个或更多的消息队列、信号量集或者共享内存标识。
strace
用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。
ltrace
命令会跟踪进程的库函数调用,它会显现出哪个库函数被调用。
关机 / 重启 / 注销和查看系统信息的命令
shutdown
关机。
halt
关机。
poweroff
关闭电源。
logout
退出当前登录的 shell。
exit
退出当前登录的 shell。
Ctrl + d
退出当前登录的 shell 的快捷键。
进程管理相关命令
bg
将一个在后台暂停的命令,变成继续执行(在后台执行)。
fg
将后台中的命令调至前台继续运行。
jobs
查看当前有多少在后台运行的命令。
kill
终止进程。
killall
通过进程名终止进程。
pkill
通过进程名终止进程。
crontab
定时任务命令。
ps
显示进程的快照。
pstree
树形显示进程。
nice / renice
调整程序运行的优先级。
nohup
忽略挂起信号运行指定的命令。也可以使用 screen。
pgrep
查找匹配条件的进程。
runlevel
查看系统当前运行级别。
init
切换运行级别。
service/systemctl
启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
type
查看命令是外部命令还是内部命令
内部命令:属于Shell解释器的一部分
外部命令:独立于Shell解释器之外的程序
touch
作用:创建空文件,用于测试。若当前文件已存在时,将更新该文件的时间戳
格式:touch 文件名
参数说明:
- a 改变档案的读取时间记录。
- m 改变档案的修改时间记录。
- c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
- f 不使用,是为了与其他 unix 系统的相容性而保留。
- r 使用参考档的时间记录,与 --file 的效果一样。
- d 设定时间与日期,可以使用各种不同的格式。
- t 设定档案的时间记录,格式与 date 指令相同。
- --no-create 不会建立新档案。
- --help 列出指令格式。
- --version 列出版本讯息。
实例
文件已存在,使用指令 "touch" 修改文件 "testfile" 的时间属性为当前系统时间:
touch testfile
使用指令 "touch" 时,如果指定的文件不存在,则将创建一个新的空白文件。
touch file
mkdir(make directory)
作用:创建新目录
格式:mkdir [选项] 目录位置及名称
常用选项:
-p 一次性创建嵌套的多层目录
-v 显示详细
-m 跳出当前的 umask 值
du (disk usage)
作用:用于统计指定目录或文件所占用磁盘空间的大小
格式:du [选项] 目录或文件名
常见选项:
-a 统计磁盘空间占用时所有的文件,而不仅仅是统计目录
-s 只统计所占用空间总的(summary)大小
rm(remove)
作用:删除指定的文件与目录
格式:rm [选项] 要删除的文件或目录
常用选项:
-f 不提示,直接强制删除
-i 提示用户确认
-r 递归式删除整个目录树
实例
删除文件可以直接使用 rm 命令,若删除目录则必须配合选项 “-r”
# rm test.txt
rm:是否删除 一般文件 "test.txt"? y
# rm homework
rm: 无法删除目录"homework": 是一个目录
# rm -r homework
rm:是否删除 目录 "homework"? y
删除当前目录下的所有文件及目录,命令行为:
rm -r *
文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
mv(move)
作用:将指定文件或目录转移位置(剪切),如果目标位置与源位置相同,则相当于执行重命名操作
格式:mv [选项] 源文件或目录 目标文件或目录
参数说明:
- -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
- -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;
mv参数设置与运行结果
命令格式 | 运行结果 |
---|---|
mv 文件名 文件名 | 将源文件名改为目标文件名 |
mv 文件名 目录名 | 将文件移动到目标目录 |
mv 目录名 目录名 | 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名 |
mv 目录名 文件名 | 出错 |
实例
将文件 aaa 更名为 bbb:
mv aaa bbb
将 info 目录放入 logs 目录中,注意,如果 logs 目录不存在,则该命令将 info 改名为 logs:
mv info/ logs
将 /usr/student 下的所有文件和目录移到当前目录下:
mv /usr/student/* .
cp(copy)
作用:复制文件或目录
格式:cp [选项] 源文件或目录 目标文件或目录
常用选项:
-f 覆盖同名文件或目录,强制(force)复制
-i 提醒用户确认(interactive,交互式)
-p 保持(preserve)源文件权限、属性、属主及时间标记等不变
-r 递归(recursive)复制
参数说明:
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
实例
使用指令"cp"将当前目录"test/"下的所有文件复制到新目录"newtest"下,输入如下命令:
cp -r test/ newtest
注意:用户使用该指令复制目录时,必须使用参数"-r"或者"-R"。
ls (list)
作用:列表显示目录内的文件及目录,结合不同选项实现不同的作用
格式:ls [选项] 目录或文件名
常用选项:
-l 以长格式(long)显示文件和目录的列表
-a 显示所有(all)子目录和文件的信息
-A 与-a 基本类似,但有两个特殊隐藏目录"."和".."不显示
-d 显示目录(directory)本身的属性,常与 -l 同时使用
-h 以更人性化(human)的方式显示出目录或文件的大小,常与 -l 同时使用
-R 以递归(recursive)的方式显示目录及其子目录中的所有内容
pwd
显示当前工作目录
find
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
作用:精细查找文件或目录
格式:find [查找范围] [查找条件表达式]
参数说明 :
find path -option [ -print ] [ -exec -ok command ] {} ;
PS:[]中的是可以没有的,就是附加选项
-path:就是文件的路径啦
-option:就是下面要说明的各个参数,参数后面有的会有操作数,需要注意
-print:find命令将匹配的文件输出到标准输出。
-exec : -ok是-exec的一个选项,加上之后执行command时会询问用户
{} :注意是反斜杠,大括号和反斜杠之间有一个空格
-;:注意!!!!分号必不可少!!!
常用查找条件:
-name 按名称查找
-size 按大小查找
-user 按文件属主查找
-type 按类型查找
-perm 按执行权限来查找
-group 按文件属组查找
-mtime -n +n 按文件更改时间来查找文件,-n 指 n 天以内,+n 指 n 天以前
-atime -n +n 按文件访问时间来查找文件
-ctime -n +n 按文件创建时间来查找文件
逻辑运算符
-a(and)逻辑"与"运算
-o(or) 逻辑"或"运算
实例
将当前目录及其子目录下所有延伸档名是 c 的文件列出来
find . -name *.c
将当前目录及其子目录中所有一般文件列出
find . -type f
将当前目录及其子目录下所有最近 20 天内更新过的文件列出
find . -ctime -20
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问他们
find /var/log -type f -mtime +7 -ok rm {} ;
查找当前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
find . -type f -perm 644 -exec ls -l {} ;
为了查找系统中所有文件长度为 0 的普通文件,并列出它们的完整路径
find / -type f -size 0 -exec ls -l {} ;
场景1:服务器磁盘满,一般由大的日志文件导致,需找到大文件并删除。
解决1: find / -size +500M -print0|xargs -0 du -m|sort -nr
find指令为找出500M以上的文件,print0和xargs -0配合使用,用来解决文件名中有空格或特殊字符问题。du -m是查看这些文件的大小,并以m为单位显示。最后sort -nr是按照数字反向排序(大的文件在前)
解决2:上述方法从根路径查找,可能列出一些系统文件。可以在这个查找之前先进行一下过滤。
使用du -m -d 1 /|sort -nr
先看看根路径下,哪个文件夹比较大,并且有嫌疑是导致磁盘满的罪魁祸首。然后再基于那个目录进行find。
----------------------------------------
场景2: 记得写过一个xxx.c的文件,但是忘了放哪里了
解决: find / -name *xxx*.c
模糊查找下这个文件
which
作用:查找 Linux 命令程序所在的位置
格式:which 命令|程序名
注意:默认当只熬到第一个目标后不再继续查找,若需查找全部,加选项 -a
实例:
使用指令"which"查看指令"bash"的绝对路径,输入如下命令:
which bash
上面的指令执行后,输出信息如下所示:
/bin/bash
stat
查看文件详细状态信息
cat
查看文件内容,可同时显示多个文件的内容
格式:cat [选项] 文件名
常用选项:
-n 显示内容的同时显示行号 (正序)
-b 显示内容的同时显示行号(空白行不加,正序)
-A 显示所有的字符(通常 Windows 系统拷贝过来的文件无法直接cat到,需要加此选项)
实例:
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里
cat -b textfile1 textfile2 >> textfile3
清空 /etc/test.txt 文档内容
cat /dev/null >> /etc/test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
注:
OUTFILE:指输出的镜像文件名
IMG_FILE:指镜像文件
tac
与 cat 基本相同,但是倒序显示
nl
与 cat 基本相同,但是空行不显示
more
全屏方式分页显示文件内容
Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
格式:more [选项] 文件名(一般不用选项)
参数:
- -num 一次显示的行数
- -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
- -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
- -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行
- -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
- +num 从第 num 行开始显示
- fileNames 欲显示内容的文档,可为复数个数
实例
逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
从第 20 行开始显示 testfile 之文档内容。
more +20 testfile
常用操作命令
- Enter 向下n行,需要定义。默认为1行
- Ctrl+F 向下滚动一屏
- 空格键 向下滚动一屏
- Ctrl+B 返回上一屏
- = 输出当前行的行号
- :f 输出文件名和当前行的行号
- V 调用vi编辑器
- !命令 调用Shell,并执行命令
- q 退出more
less
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
格式:less [选项] 文件名(一般不用选项)
快捷键:
按 PgUp、PgDn 键上下翻页
按 "/" 键查找内容,"n" 下一个,"N" 上一个
实例
查看文件
less log2013.log
ps查看进程信息并通过 less 分页显示
ps -ef | less
查看命令历史使用记录并通过 less 分页显示
history | less
浏览多个文件
less log2013.log log2014.log
说明:
输入:n 后,切换到 log2014.log
输入:p 后,切换到 log2013.log
附加备注
1.全屏导航
- ctrl + F - 向前移动一屏
- ctrl + B - 向后移动一屏
- ctrl + D - 向前移动半屏
- ctrl + U - 向后移动半屏
2.单行导航
- j - 向前移动一行
- k - 向后移动一行
3.其它导航
- G - 移动到最后一行
- g - 移动到第一行
- q / ZZ - 退出 less 命令
4.其它有用的命令
- v - 使用配置的编辑器编辑当前文件
- h - 显示 less 的帮助文档
- &pattern - 仅显示匹配模式的行,而不是整个文件
5.标记导航
当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
- ma - 使用 a 标记文本的当前位置
- 'a - 导航到标记 a 处
head
查看文件开头的一部分内容,默认显示 10 行,可加选项调节
tail
查看文件结尾的一部分内容,默认显示 10 行,可加选项调节
tail -f 动态更新尾部的信息,Ctrl+C 终止
wc
作用:统计文件中的单词数量(Word Count)等
格式:wc [选项] ... 目标文件
常用选项:
-l 统计行数
-w 统计单词个数
-c 统计字节数
grep
cut
显示每行从开头算起 num1 到 num2 的文字。
语法
egrep
26、gzip
27、gunzip
28、bzip2
29、bunzip2
30、tar
31、vi
32、vim
33、rpm
34、yum
35、md5sum
36、./configure
37、make
38、make install
39、useradd
40、passwd
41、usermod
42、userdel
43、groupadd
44、gpasswd
45、groupdel
46、id
47、groups
48、finger
49、w
50、who
51、whoami
52、fuser
chmod
修改、设置文件权限
语法
chmod [-cfvR] [--help] [--version] mode file...
参数说明
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
- --help : 显示辅助说明
- --version : 显示版本
实例:
将文件 file1.txt 设为所有人皆可读取:
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取:
chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该文件拥有者可以执行:
chmod u+x ex1.py
将当前目录下的所有文件与子目录皆设为任何人可读取:
chmod -R a+r
此外 chmod 也可以用数字来表示权限如:
chmod 777 file
语法为:
chmod abc file
其中 a,b,c 各为一个数字,分别为 User,Group 及 Other 的权限。
r=4,w=2,x=1
若要 rwx 属性则 4+2+1=7;
若要 rw- 属性则 4+2=6;
若要 r-x 属性则 4+1=5。
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用 chmod 4755 filename 可使此程序具有 root 的权限
chown
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。 。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
语法
chown 参数 文件...
参数
- user : 新的文件拥有者的使用者 ID
- group : 新的文件拥有者的使用者组(group)
- -c : 显示更改的部分的信息
- -f : 忽略错误信息
- -h :修复符号链接
- -v : 显示详细的处理信息
- -R : 处理指定目录以及其子目录下的所有文件
- --help : 显示辅助说明
- --version : 显示版本
实例
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup
chown runoob:runoobgroup file1.txt
将当前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup
chown -R runoob:runoobgroup *
chgrp
用于变更文件或目录的所属群组
在UNIX系统家族里,文件或目录权限的掌控以拥有者及所属群组来管理。您可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可。
格式:chgrp 参数 所属群组 文件或目录
参数
-c或--changes 效果类似"-v"参数,但仅回报更改的部分。
-f或--quiet或--silent 不显示错误信息。
-h或--no-dereference 只对符号连接的文件作修改,而不更动其他任何相关文件。
-R或--recursive 递归处理,将指定目录下的所有文件及子目录一并处理。
-v或--verbose 显示指令执行过程。
--help 在线帮助。
--reference=<参考文件或目录> 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version 显示版本信息。
实例:
改变文件的群组属性
chgrp -v bin log2012.log
根据指定文件改变文件的群组属性
chgrp --reference=log2012.log log2013.log
56、alias
57、unalias
umask
指定在建立文件时预设的权限掩码。
umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
语法
umask 权限掩码
参数
-S 以文字的方式来表示权限掩码
实例
使用指令 "umask" 查看当前权限掩码:
umask
使用指令 "umask" 设置权限掩码
umask 022
59、setfacl
60、getfacl
61、fdisk
62、mkfs
63、mkswap
64、swapon
65、swapoff
66、dd
67、parted
68、partprobe
69、partx
70、mount
71、umount
72、df
73、xfs_growfs
74、resize2fs
75、blkid
76、pvscan
77、vgscan
78、lvscan
79、pvcreate
80、vgcreate
81、lvcreate
82、pvdisplay
83、vgdisplay
84、lvdisplay
85、pvremove
86、vgremove
87、lvremove
88、vgextend
89、lvextend
90、vgreduce
91、lvreduce
92、uname
93、lsb_release
94、mdadm
95、quotacheck
96、quotaon
97、quotaoff
98、edquota
99、setquota
100、quota
101、repquota
102、init
103、reboot
104、chroot
105、grub2
106、runlevel
107、ntsysv
108、chkconfig
109、fsck
110、xfs_repair
111、systemctl
112、ps
113、top
114、uptime
115、pgrep
116、pstree
117、nohup
118、jobs
119、fg
120、bg
121、kill
122、killall
123、pkill
124、at
125、atq
126、atrm
127、date
128、crontab
chattr
用于改变文件属性
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
- a:让文件或目录仅供附加用途。
- b:不更新文件或目录的最后存取时间。
- c:将文件或目录压缩后存放。
- d:将文件或目录排除在倾倒操作之外。
- i:不得任意更动文件或目录。
- s:保密性删除文件或目录。
- S:即时更新文件或目录。
- u:预防意外删除。
格式:chattr [-RV][-v<版本编号][+/-/=<属性>] [文件或目录...]
参数
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
实例:
用 chattr 命令防止系统中某个关键文件被修改:
chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf
会显示如下属性
----i-------- /etc/resolv.conf
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a /var/log/messages
lsattr
Linux lsattr命令用于显示文件属性。
用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。
语法
lsattr 参数 文件或目录
参数:
- -a 显示所有文件和目录,包括以"."为名称开头字符的额外内建,现行目录"."与上层目录".."。
- -d 显示,目录名称,而非其内容。
- -l 此参数目前没有任何作用。
- -R 递归处理,将指定目录下的所有文件及子目录一并处理。
- -v 显示文件或目录版本。
- -V 显示版本信息。
131、chage
132、unset
reset
133、su
134、sudo
135、visudo
136、source
137、history
138、sync
139、export
140、John
141、nmap
142、ln
143、extundelete
144、dumpe2fs
145、tune2fs
146、file
147、last
148、lastlog
149、users
150、lastb
151、ifconfig
152、ip
153、ethtool
154、mii-tool
155、nslookup
156、route
157、netstat
158、ping
159、traceroute
160、hostname
161、ss
162、lsof
163、ifdown
164、ifup
165、hostnamectl
166、sysctl
167、echo
168、sleep
169、free
170、ntpdate
171、watch
172、tree