1. Linux 文件命令
-rwxrwxrwx
-
chmod:change mode,用于(文件所有者或 root )变更用户(u:owner g:group o:other a:all)的权限
- chmod [OPTION]… MODE[,MODE]… FILE…
- OPTION
- -R:递归修改
- more option:chmod --help
- MODE:
- [ugo]
- u:user
- g:group
- o:other
- a:all
- [±=]
+
:加权-
:删权=
:设权
- [rwx]
- r 可读
- w 可写
- x 可执行
- [ugo]
- Example
- chmod a+r a.txt:所有人添加可读权限,等价于 chomd ugo+r a.txt
- OPTION
- chmod [OPTION]… OCTAL-MODE FILE…
- OCTAL-MODE
- 777 读写可执行:rwxrwxrwx
- Example
- chmod 777 a.txt:设置所有人可读可写可执行,等价于 chmode a=rwx a.txt
- OCTAL-MODE
- chmod [OPTION]… MODE[,MODE]… FILE…
-
chown:change owner,用于 root 设置文件所有者或者文件所属用户组
- chown [OPTION]… [OWNER][:[GROUP]] FILE…
- OPTION
- -R:递归处理
- OWNER:用户名或用户 ID
- GROUP:组名或组 ID
- Example
- chown root:root dir
- chown root a.txt
- OPTION
- chown [OPTION]… [OWNER][:[GROUP]] FILE…
-
chgrp:change group,用于(文件所有者或用户组成员)变更文件所属用户组
- chgrp [OPTION]… GROUP FILE…
- OPTION
- -R
- GROUP:组名或组 ID
- Example
- chgrp -R root a.txt
- OPTION
- chgrp [OPTION]… GROUP FILE…
-
chattr:用于改变文件属性
- chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files…
- [-RVf]:-R 递归
- [-+=aAcCdDeijsStTu]
- -+=:关闭、开启、指定属性
- aAcCdDeijsStTu
- a:仅供附加用途
- i:不得任意更改文件
- u:预防意外删除
- Example
- chattr +a ./log 只允许追加数据,不能删除
- chattr +i a.txt 防止文件被修改
- chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files…
-
lsattr:用于查看文件属性
-
diff:比较文件差异
-
file:辨识文件类型
- Usage: file [OPTION…] [FILE…]
- OPTION
- -b:列出辨识结果,不显示文件名称
- -i:mine type
- -L:符合链接所指向文件的类别
- Example
- file -bi a.txt
- file -L /var/mail
- OPTION
- Usage: file [OPTION…] [FILE…]
-
find
-
Usage:find [path…] [expression]
-
[expression]:4 type
-
operators:-and(default)、-or、-not(!)
-
options(normal options)
-
-depth
-
-mindepth LEVELS
-
-maxdepth LEVELS
-
-
test(N can be +N or -N or N)
- -name PATTERN
- -amin N:+N(N 分钟前读取过)、-N(N 分钟内读取过)
- -anewer File:比 File 更晚被读取的文件
- -atime N:+N(N 天前读取过)、-N(N 天内读取过)
- -cmin N:c-状态时间(指 inode 上一次变动的时间)
- -cnewer File
- -ctime N
- -mmin:m-修改时间
- -mtime
- -size N[bcwkMG]:文件大小
- -type [bcdpflsD]:文件类型
- -user Name:文件所有者
- …
-
actions
- -ls
- -printf FORMAT:格式化输出
- -exec COMMAND:执行 Shell 命令
- -ok COMMAND:执行 Shell 命令,执行命令前会询问用户是否执行
-
-
Example
-
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问它们:
find /var/log -type f -mtime +7 -ok rm {} ;
-
-
-
-
ln:link files,用于创建链接
-
软链接:路径形式存在,类似于 Win 的快捷方式;可以针对目录创建;可以跨文件系统创建
-
硬链接:文件副本形式存在;不可以针对目录创建;不可以跨文件系统创建
-
-
less:less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页
- Usage:less [OPTION…] FILE…
- Usage:less [OPTION…] FILE…
-
more:类似 cat,以一页一页(space:下一页,b:上一页)的形式显示,方便逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
- Usage:more [options] file… (options see --help)
-
ls: list directory contents,用于显示指定工作目录下的内容
-
mv:move file 移动或重命名文件
-
mkdir:make directory,用于创建目录;-p 确保目录存在,不存在则创建
-
od:读取所给予的文件的内容,并将其内容以八进制字码呈现出来
-
paste:用于合并文件的列,把每个文件以列对列的方式合并
-
rm:remove 删除文件或目录
-
rmdir:remove directory,删除空的目录;-p 是当子目录被删除后使它也成为空目录的话则一并删除
-
split:用于将一个文件分割成数个,按行数(option: -n)或字节数(option: -bn,n 为数字)
-
tee:用于读取标准输入的数据,并将其内容输出成文件
- Usage:tee [OPTION]… [FILE]…
- OPTION
- -a:append 追加
- -i:–ignore-interrupts 忽略中断信号
- OPTION
- Usage:tee [OPTION]… [FILE]…
-
touch:用于修改文件或者目录的时间属性,Access 访问时间、Modify 修改时间、Change 状态时间(stat 命令可以查看文件的时间属性)
-
which:用于查找命令的文件路径
-
cp:用于复制文件或目录
-
whereis:在特定目录中查找符合条件的文件,该指令只能用于查找二进制文件、源代码文件和 man 手册页
-
scp:secure copy,基于 ssh 登陆进行安全的远程文件拷贝命令,使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的
- 本地到远程
- scp local_dir remote_user@remote_ip:/remote_user/local_dir
- 远程到本地
- scp remote_user@remote_ip:/home/remote_user/remote_dir remote_dir
- 本地到远程
-
**awk: (Alfred Aho,Peter Weinberger & Brian Kernighan) **用于处理文本文件的文本分析工具
-
grep
- Usage:grep [OPTION]… PATTERN [FILE]…
- OPTION
- -i:忽略大小写进行匹配
- -v:反向查找
- -l:只打印匹配的文件名
- -c:只打印各文件匹配的行数
- -n:显示匹配行的行号
- -r:递归查找子目录文件
- Example
- grep -r -n regx ./test
- OPTION
- Usage:grep [OPTION]… PATTERN [FILE]…
-
sed:利用脚本来处理文本文件
-
sort
-
sort [OPTION]… [FILE]…
- OPTION
- -r:相反顺序排序
- -k:通过 key 排序
- OPTION
-
-
wc
-
Usage:wc [OPTION]… [FILE]…
-
OPTION:
- -c(–bytes):只显示 byte 数
- -l(–lines):只显示行数
- -w(–words):只显示字数
-
Example
-
-
2. Linux 磁盘命令
-
cd:change directory,切换工作目录
-
pwd:print work directory,显示工作目录
-
df:disk free,用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计
-
Uasge:df [OPTION]… [FILE]…
- OPTION
- -h:使用人类可读的格式,1024
- -H:与 -h 类似,1000 而不是 1024
- -i:输出显示inode信息而非块使用量
- -P:使用 POSIX 输出格式
- -t:–type,限制列出的文件系统
- -x:–exclue-type,限制不列出的文件系统
- OPTION
-
Example
- df -h --total
- df -h --total
-
-
du:disk usage,用于显示目录或文件的大小
Uasge:du [OPTION]… [FILE]…- OPTION
- -h:以K,M,G为单位,提高信息的可读性
- -H:与 -h 相同,但是 K,M,G 是以 1000(不是 1024) 为换算单位
- OPTION
-
stat:用于显示 inode 内容
-
mount:用于挂载 Linux 系统外的文件
-
umount:卸除目前挂在 Linux 中的文件系统
3. Linux 网络命令
-
nc:netcat(yum install -y nc),用于设置路由器
- Usage: nc [options] [hostname] [port]
- options
- -i:使用监听模式
- -p:设置本地主机使用的通信端口
- -u:使用 UDP 传输协议
- -v:显示指令执行过程
- -w:设置等待连接时间
- -z:Zero-I/O mode, report connection status only(Zero-I/O 模式,仅报告连接状态使用)
- options
- Usage: nc [options] [hostname] [port]
-
httpd:Apache HTTP 服务器程序
-
netstat:用于显示网络状态
-
常用参数
- -a:-all,显示所有连线中的 Socket (servers and established)
- -l:–listening,显示监控中的服务器的 Socket (only servers)
- -t:–tcp,显示 TCP 传输协议的连线状况
- -u:–udp,显示 UDP 传输协议的连线状况
- -p:显示正在使用 Socket 的 PID 和 程序名称
- -r:–route,显示路由表 Routing Table
- -s:显示网络工作信息统计表
- -n:–numeric,直接使用 IP 地址,而不通过域名服务器
- -A <af>:列出指定网络类型(inet、unix,默认 inet)连线中的相关地址
- -x:-A unix
- –ip:-A inet
-
例子:
-
显示 TCP 端口号的使用情况
-
-
-
ping:用于检测主机
-
tty:teletypewriter,用于显示终端机连接标准输入设备的文件名称
- 在 Linux 操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于 /dev 目录下
- 执行 tty 指令可以查询目前使用的终端机的文件名称
4. Linux 系统管理
用户及用户组管理
- useradd:新增系统用户账号,可以指定用户组、使用期限、home 目录等
- 结合 passwd 设定用户密码
- 用户信息保存在 /etc/passwd
- usermod:修改系统用户账号的各项设定
- userdel:删除用户账号,若不加 -r 参数选项,这仅删除账号,不删除 home 目录及相关文件
- groupadd:新增用户组,组信息保存在 /etc/group
- groupmod:用于更改用户组 ID 或名称
- groupdel:用于删除用户组
进程管理
-
ps:process status,用于查看系统中的进程状态
-
Usage:ps [options]
-
options
- -a:显示现行终端机下的所有程序,包括其他用户的程序
- -u:以用户为主的格式来显示程序状况
- -x:显示没有控制终端的进程,同时显示各个命令的具体路径
- -e:列出程序时,显示每个程序所使用的环境变量
- -f:显示当前所有的进程
- -t:指定终端机(tty)编号,并列出属于该终端机的程序的状况
-
example:查找特定进程
- ps -ef | grep sshd
- ps -aux | grep sshd
-
-
-
top
- 统计信息区
- 第一行信息依次为:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
- 第二行信息依次为:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
- 第三行信息依次为:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- 第四行信息依次为:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
- 第五行信息依次为:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、预加载内存量。
- 进程信息区
- PID:进程ID
- USER:进程所有者
- PR:进程优先级
- NI:NICE 值,负值表示高优先级,正值表示低优先级
- VIRT:进程使用的虚拟内存总量,单位kb
- RES:进程使用的、未被换出的物理内存大小,单位kb
- SHR:共享内存大小,单位kb
- S:进程状态
- D:不可中断的睡眠状态
- R:正在运行
- S:睡眠
- T:停止
- Z:僵尸进程
- $CPU:上次更新到现在的CPU时间占用百分比
- $MEM:进程使用的物理内存百分比
- TIME+:进程使用的CPU时间总计,单位1/100秒
- COMMAND:命令名
- 统计信息区
-
pidof:process id of 用于查询指定服务进程的PID值。
- Uasge
- options
- -s:仅返回一个进程号
- -c:只显示运行在root目录下的进程,这个选项只对root用户有效
- -o:忽略指定进程号的进程
- -x:显示由脚本开启的进程
- example:查询出crond服务下的所有进程ID
- pidof crond
- options
- Uasge
-
kill:用于终止指定PID的服务进程
- kill -9 1101
-
killall:用于终止指定名称的服务对应的全部进程
- killall crond
-
pstree:display a tree of processes,以树显示进程
关机
- shutdown:关机
- reboot:重启
- poweroff:关机
- halt:关机,等同于 shutdown -h now
系统状态检测命令
-
ifconfig:用于获取网卡配置与网络状态等信息
- eth0:以太网卡
- 第一行:显示网卡状态信息
- eth0:UP 代表网卡开启状态;RUNNING 代表网卡的网线被接上;MULTICAST 表示支持组播;
- 第二行:显示网卡的网络信息
- inet(IP地址):172.16.132.195
- broadcast(广播地址):172.16.143.255
- netmask(掩码地址):255.255.240.0
- RX:接收数据包的情况
- TX:发送数据包的情况
- 第一行:显示网卡状态信息
- lo:主机的回环网卡
- lo 是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现
- 与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件,任何发送到该网卡上的数据都将立刻被同一网卡接收到
- eth0:以太网卡
-
uname:用于查看系统内核与系统版本等信息
- uname -a:显示系统信息
- uname -i:显示当前系统的硬件架构
- uname -r:显示操作系统发行编号
- uname -s:显示操作系统名称
- uname -n:显示主机名称
-
uptime:用于查看系统的负载信息
- 当前服务器时间
- 当前服务器运行时间
- 当前用户数
- 当前负载情况
-
free:用于显示当前系统中内存的使用量信息
-
who:显示关于当前在本地系统上的所有用户的信息
-
whoami:用于显示自身用户名称,相当于执行 id -un
-
last:命令用于显示用户最近登录信息
- 由于这些信息都是以日志文件的形式保存在系统中,黑客可以很容易地对内容进行篡改,所以该命令输出的信息并不能作为服务器是否被入侵的依据。
-
history:命令用于显示历史执行过的命令(bash 默认记录 1000 条执行过的历史命令,被记录在~/.bash_history文件中)
- 显示最新10条执行过的命令:history 10
- 清除历史记录:history -c
-
date:用于显示和设置系统的时间和日期
other
- wget:在终端中下载文件
- Usage: wget [OPTION]… [URL]…
- OPTION
- -b:后台下载
- -P:下载到指定目录
- -t:最大重试次数
- -c:断点续传
- -p:下载页面内所有资源,包括图片、视频等
- -r:递归下载
- Example
- wget -P /root/static/img/http://img.alicdn.com/tfs/TB1.R._t7L0gK0jSZFxXXXWHVXa-2666-1500.png
- OPTION
- Usage: wget [OPTION]… [URL]…
5. Linux 备份压缩
- tar:tape archive,用于备份文件
- Usage:tar [OPTION…] [FILE]…
- OPTION
- -c:–create,建立新的备份文件
- -C:–directory,切换到指定目录
- -f:–file,指定备份文件
- -v:–verbose,显示指令执行过程
- -x:–extract,从备份文件还原文件
- -z:–gzip,通过 gzip 指令处理备份文件,tar 默认只是打包不压缩,参数 -z 打包后进行 gzip 压缩
- EXAMPLE
- tar -zcvf test.tar.gz a.txt:压缩文件
- tar -zxvf test.tar.gz -C ./dir:解压文件到单前所在目录的 dir 目录
- OPTION
- Usage:tar [OPTION…] [FILE]…
- zip:用于压缩文件,压缩后的文件后缀名为 .zip
- unzip:用于解压缩 zip 文件,unzip 为 .zip 压缩文件的解压缩程序
- zipinfo:用于列出 zip 压缩文件的信息
- gzip:用于压缩文件,压缩后的文件后缀名为 .gz
- gunzip:用于解开被 gzip 压缩过的文件,事实上 gunzip 就是 gzip 的硬连接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成
- dump:备份工具程序,可将目录或整个文件系统备份至指定的设备,或备份成一个大文件