Linux, 一切皆文件。
常用系统工作命令
echo [字符串| $变量]
: 在终端输出字符串或变量提取后的值date
: 显示以及设置系统时间和日期,+s
参数可以设置当前的时间和日期reboot
: 重启系统,默认需要管理员权限poweroff
: 关闭系统,需要root
权限wget
: 用于在终端中下载网络文件ps
: 用于查看系统中的进程状态top
: 动态地监视进程活动与系统负载等信息pidoff
: 用于查询某个指定服务进程的PID值kill
: 用于终止某个指定PID的服务进程killall
: 用于终止某个指定名称的服务所对应的全部进程
系统状态检测命令
ifconfig
: 获取网卡与网络状态信息uname
: 用于查看系统内核与系统版本等信息,可以附加-a
参数uptime
:用于查看系统的负载信息free
: 显示系统中内存的使用量信息who
: 用于查看当前登入主机的用户终端信息last
: 用于查看所有系统的登录记录history
: 可以显示历史执行过的命令信息 可以使用-c
参数进行清除sosreport
: 用于收集系统配置及架构信息并输出诊断文档
工作目录切换命令
pwd
: 显示用户当前所处的工作目录cd
: 用于切换工作路径,-
为上一次的目录ls
: 显示目录中的文件信息, 常用参数-ald
文本文件编辑命令
cat
: 用于查看文本文件,内容比较少的。显示行号添加-n
参数more
: 用于查看文本文件,内容比较多的head
: 用于查看纯文本文件的前N行tail
: 用于查看纯文本文件的后N行tr
: 用于替换文本文件中的字符wc
: 用于统计指定文本的行数-l
,字数-w
,字节数-c
stat
: 用于查看文件的具体存储信息和时间等信息cut
: 用于按“列”提取文本字符, 使用-d
设置分隔符,使用-f
设置列数diff
: 用于比较多个文本文件的差异, 使用-c
参数描述文件的具体不同
文件目录管理命令
touch
: 创建新的文件或者设置文件的时间mkdir
: 创建空白的目录, 使用-p
参数进行递归迭代cp
: 用于复制文件或目录, 常用参数-p
保留原始文件的属性,-r
用于对目录的递归复制,-d
用于保留连接文件的属性mv
: 用于文件剪切或者将文件重新命名rm
: 用于删除文件或者目录,-r
删除目录,-f
强制删除dd
: 用于按照指定大小和个数的数据块来复制文件或者转换文件,之前用在刻录系统盘的时候, 常用参数if
输入文件的名称of
输出文件的名称,bs
每个块儿的大小,count
要复制的块儿个数file
: 查看文件类型
打包压缩和搜索命令
tar
: 文件打包压缩和解压常见参数:
参数 作用 -c 创建压缩文件 -x 解来压缩文件 -t 查看压缩包内有那些文件 -z 使用Gzip压缩或者解压 -j 使用bzip2压缩或者解压 -v 显示压缩或者解压的过程 -f 目标文件名 -p 保留原始文件权限和属性 -P 使用绝对路径进行压缩 -C 指定解压到目录 grep
: 用于在文本中执行关键词搜索,并显示匹配的结果-n
显示行号,-v
进行搜索反选find
: 按照指定条件来查找文件,-name
匹配名称,-size
匹配大小,-exec
将find命令找到的结果交由紧接着的命令作后续处理, 配套使用参数-exec {} \;
Linux进程中有这样的5个状态,分别为运行(R),中断(S),不可中断(D),僵死(Z)和停止(T)。
输入输出重定向
标准输入重定向(STDIN, 文件描述符0)
标准输出重定向(STDOUT, 文件描述符1)
标准错误重定向(STDERR,文件描述符2)
符号 | 作用 |
---|---|
命令 < 文件 | 将文件作为命令的标准输入 |
命令 << 分隔符 | 从标准输入中读入,直到遇到分界符才停止 |
命令 < 文件1 > 文件2 | 将文件1作为命令的标准输入,并将标准输出输出到文件2 |
符号 | 作用 |
---|---|
命令 > 文件 | 将标准输出到文件(清空原有文件数据) |
命令 2> 文件 | 将错误输出到文件(清空原有文件数据) |
命令 >> 文件 | 将标准输出到文件(追加) |
命令 2>> 文件 | 将错误输出到文件(追加) |
命令 >> 文件 2>&1 或 命令 &>> 文件 | 将标准输出与错误输出共同写到文件中(追加) |
小技巧
管道命令符:
命令1|命令2
: 把前一个命令原本要输入到屏幕的数据当做是后一个命令的标准输入命令符的通配符:
*
匹配零个或者多个字符,?
匹配单个字符,[0-9]
,中括号加内容,匹配其中内容一个部分转义字符:
\
反斜线,'
单引号,"
双引号,```反引号环境变量:Linux中对于命令的查找,不同用户不同的环境变量
Vim 编辑器
- 三种模式: 命令模式,插入模式,普通模式。
- 命令模式中常用的命令:
[X]dd
删除光标所在[X]行,n
显示搜索命令定位的下一个字符串,N
显示搜索命令定位的上一个字符串,u
撤销上一步操作。 - 普通模式中常用的命令:
:wq
保存退出,:q!
强制退出,不保存修改,/字符串
搜索该字符串 - 普通用户编辑文件如何保存:
:w !sudo tee %
编写Shell脚本
- 脚本类型: 交互式以及批处理
- 接收用户的参数:
$<number>
- 条件语句,循环语句,判断语句
用户身份和文件权限
root
用户UID
为0, 系统用户UID
为1-999, 普通用户从1000开始useradd
:-d
指定家目录,-d
指定账户到期时间,-g
指定一个初始的用户基本组,-s
指定用户默认的shell
解释器,/sbin/nologin
说明用户不能够登录到系统中,可以设置为FTP
管理员的登录权限,做到系统权限最小化,以及各个不同功能的隔离。groupadd
: 用于创建用户组usermod
: 用于修改用户的属性passwd
: 用于修改用户密码,过期时间,认证信息等等,root
管理员修改密码时候,不用验证旧密码,-l
锁定用户,禁止其登录,-u
解除锁定,允许其登录userdel
:用于删除用户Linux中的文件类型:
-
: 普通文件,d
目录文件,l
链接文件,b
块设备文件,c
字符设备文件,p
管道文件文件权限: 读写执行
421
chmod
: 设置文件或者目录的权限,-R
表示递归操作特殊权限
SUID
: 对于二进制程序设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效),一种有条件的,临时的特殊权限授予方法。SGID
: 让执行者临时拥有属组的权限(对用用执行权限的二进制程序进行设置),在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置SBIT
: 粘滞位。当对于某个目录设置了这个粘滞位之后,这个目录中的文件只能被其所有者执行删除操作
隐藏权限
chattr
: 设置文件的隐藏权限,保证文件的安全lsattr
: 显示文件的隐藏权限
文件访问控制列表
ACL
setfacl
: 管理文件的ACL规则getfacl
: 显示文件上设置的ACL信息
身份切换
su
: 使用su -
, 切换到新的用户,使用减号表示将环境变量的信息也进行更新,而不是保留之前的环境变量信息sudo
: 使用sudo
命令提供给普通用户额外的权限来完成原本root
管理员才能完成的任务/etc/sudoers
: 提供集中的用户管理,权限与主机配置等visudo
: 修改配置文件,只有root
管理员有这个权限
存储结构与磁盘划分
按照文件系统层次化标准
FHS
采用树形结构存放文件Linux中常见目录和内容
目录名称 放置文件信息 /boot 开机所需要文件,开机菜单以及所需要的配置文件等 /dev 以文件形式存放设备与接口 /etc 配置文件 /home 用户家目录 /bin 存放单用户模式下还可以操作的命令 /lib 开机时候用到的函数库,以及/bin和/sbin下面的命令要调用的函数 /sbin 开机过程中需要的命令 /media 用于挂载设备文件的命令 /opt 放置第三方的软件 /root 系统管理员的家目录 /srv 一些网络服务的数据文件目录 /tmp 任何人均可使用的共享临时目录 /proc 虚拟文件系统,利用系统内核,进程,外部设备以及网络状况等 /usr/local 用户自行安装的软件 /usr/sbin Linux系统开机时候不会用到的软件/命令/脚本 /usr/share 帮助与说明文件,也可放置共享文件 /var 主要存放时常变化的文件,比如日志 /lost+found 当文件系统发生错误的时候,将一些丢失的文件片段存放在这里 绝对路径和相对路径
主分区或者扩展分区的编号从1开始,到4结束
/dev/sda5` 路径详解
/dev
: 硬件设备文件所在的目录sd
: 存储设备a
: 同类接口中的第一个被识别到的设备5
: 表示这个设备是一个逻辑分区磁盘硬件相关知识: 磁盘硬件是由大量扇区组成的,每个扇区的容量是
512
字节,第一个扇区中保存了主引导分区(MBR)以及分区表。第一个扇区只能创建出4个分区,所以将第一个扇区的分区表,作为指向扩展分区的指针。从而添加扩展分区,再在扩展分区中创建不同的逻辑分区。
super block: Linux系统中的硬盘地图,
inode
记录以下信息- 文件的访问权限
- 所有者和所有组
- 文件大小
- 文件创建或内容修改时间
- 文件最后访问时间
- 文件的特殊权限
- 文件的真实数据地址
mount
: 文件系统挂载unmount
: 文件系统撤销挂载fdisk
: 管理磁盘分区,添加,删除,转换分区等一站式分区服务mkfs
: 进行格式化操作的命令df -h
: 查看挂载状况以及磁盘使用情况du
: 查看文件数据占用量使挂载配置始终生效:
/etc/fstab
交换分区
mkswap
: 添加交换分区swapon
: 将交换分区正式挂载到系统中free -m
: 查看交换分区的大小变化
quota
: 磁盘容量限额管理, 相关命令xfs_quota
,edquota
软硬链接
- 硬链接:指向原始文件
inode
的指针, 由于技术局限性,我们不能够跨分区对于文件进行链接 - 软链接:也称为符号链接,仅包含所链接文件的路径名,也可以跨越文件系统进行链接。
ln
: 创建链接文件,使用-s
参数创建软链接
- 硬链接:指向原始文件
RAID以及LVM技术
RAID
技术: 磁盘阵列,具有数据备份以及高效查询的作用LVM
逻辑卷管理器: 在硬盘分区和文件系统之间添加了一个逻辑层。
iptables 以及防火墙
iptables
服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以称之为一个规则链,具体有如下几个:- 在进行路由选择之前处理数据包:
PREROUTING
- 处理流入的数据包:
INPUT
- 处理流出的数据包:
OUTPUT
- 处理转发的数据包:
FORWARD
- 在进行路由选择后处理数据包:
POSTROUTING
- 在进行路由选择之前处理数据包:
iptables
操作响应ACCEPT
,REJECT
,LOG
,DROP
网络相关命令
网络参数配置命令
ifconfig
: 手动的启动观察和修改网络接口的相关参数ifup
: 使用配置文件进行网络接口配置时使用参数, 配置文件位置:/etc/sysconfig/network-scripts
ifdown
: 同上route
: 路由修改ip
:配置基本网络参数,还能进行额外的IP协议,以及多IP的达成iwlist
: 利用无线网卡进行无线AP
的侦测与获得相关的数据iwconfig
: 配置无线网卡的相关参数dhclient
: 使用dhcp
协议在局域网内获取IP
网络侦错与观察命令
ping
: 发送一个特殊的网络数据包,成为ICMP ECHO_REQUEST
包, 到另一个主机或者终端,可以试验连通性traceroute
: 显示从本地到指定主机要经过的全部跳数的网络流量包netstat
: 显示网络设置和网卡信息,-r
显示路由包host
: 查看某个主机的IP
nslookup
: 查看某个主机的IP
, 使用/etc/resolv.conf
文件作为DNS
服务器的来源
传输
ftp
: ftp可以与FTP服务器进行通信,可以通过网络进行下载和上传lftp
: 多协议的支持,下载失败会重新连,Tab
键进行路径补全wget
: 下载数据ssh
: 和远程主机建立安全交流通道scp
:ssh
程序中附带,可以使用进行文件传输sftp
:ssh
程序中附带,可以进行类似于ftp
服务器的操作telnet
: 远程连接, 可以连接到远程机器的telnet
服务
封包截取功能
tcptump
ethereal
nc
: 网络的瑞士军刀,可以开放端口,传输文件,文字,接受反传等等
Reference
- 《Linux就该怎么学》
- 《鸟哥的Linux 私房菜》