Linux 操作系统
Linux 常用信息查询
Linux 系统目录结构
1、目录操作命令
2、常用测试命令
3、常用运维命令
4、其他命令
5、nano 编辑器
6、vim 编辑器
7、用户口令管理
8、Linux 系统用户组管理
9、远程登陆管理
10、Linux 安全加固
11、磁盘管理
12、Linux 防火墙
13、Linux 系统日志
Linux 常用信息查询
用户信息文件
/etc/shadow 安全性较高
/etc/passwd 所有用户可读
useradd -d /home/test -m test
useradd -s /bin/sh -g group -G root #指定shell登录/bin/sh并且创建一个用户组group添加到root组
cat /etc/passwd #查看所有用户/用户组
/etc/passwd
root : x : 0 : 0 : superuser : / :
用户名 口令 用户标识号 组标识号 注释性描述 主目录 登录shell
/etc/shadow
123121 : $y7425585O : 19796 : 0 : 99999 : 7 : : :
登录名 加密口令 最后一次修改时间 最小时间间隔 最大时间间隔 警告时间 不活动时间 失效时间 标志 #最小时间间隔:两次修改口令需要的最小天数
#最大时间间隔:口令保持有效的最大天数
Linux 系统目录结构
ls /
/bin # binaries 存放二进制文件 存放着经常使用的命令
/boot #启动linux时使用的一些核心文件,镜像文件
/dev # device 设备 linux外部设备
/etc # etcetera 系统管理所需的配置文件和子目录
/home #用户的主目录
/mnt #用户临时挂载的文件系统
/media # u盘 驱动
/lib # library 动态链接共享库
/opt # optional 额外安装软件的目录
/proc # processes 进程
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all #屏蔽主机的ping命令
/lost+found #当系统非法关机后 存放的文件
/root #系统管理员
/sbin # superuser binaries 系统管理员使用的系统管理程序
/usr # unix shared resources 共享资源
/tmp # temporary 临时目录,存放临时文件
/var # variable 存放经常被修改的文件,比如日志
/var/www/html # linux 默认的web路径
1、目录操作命令
Linux 文件的基本属性
1.1、查看一个文件的属性
pwd #显示当前目录
cd #改变当前目录
ls # l 显示目录中的文件和子目录
ls -h # lh 易读的方式显示文件大小
ls -a # la 显示所有文件和子目录
ls -l # ll 以列表格式显示子目录和文件
drwxr-xr-x # read write execute ( 读 写 执行 )
开头字符及其含义:
d #目录
- #文件
l #链接文档
c #串行端口设备 键盘 鼠标
b #可供存储的接口设备
s #套接口文件
| #符号链接文件
mkdir #创建目录 mkdir
mkdir -p a/b/c #自动创建父目录
cp #将文件复制到另一个位置
cp -p #保留文件权限、拥有者、时间戳属性
mv #将文件移动到另一个位置(可用于重命名)
rm #删除一个文件
rm -f #强制删除文件,不提示任何确认信息
rm -r #删除所有文件和子目录
1.2、修改文件或目录的所用户与权限
chmod # chown mode 改变文件的权限
chmod 4 #给文件赋予读(r)权限
chmod 2 #给文件赋予写(w)权限
chmod 1 #给当前用户文件赋予执行(x)权限
第一个数字表示文件所有者权限
第二个数字表示与文件所有者同属一个用户组、其他用户权限
第三个数字表示其它用户组权限
chmod -R xxx(文件或目录) #recursive 进行递归变更
chmod 755 1.txt #给当前用户文件赋予可读可写可执行(755)权限
chmod +x 1.txt #给所有用户添加可执行权限
chown # change owner 改变文件的拥有者和用户组
chown -R www-data:www-data upload
2、常用测试命令
ping #网络联通性测试工具
ping -c N #发送N个数据包
wget #一个非交互式的网络下载工具
wget -b #后台下载
wget -O path #保存到指定目录
wget -O 1.txt #以txt形式保存
hexdump #以多种格式显示文件
hexdump -C #以ASCII和hex形式显示
查看空⼝令帐号并为弱/空⼝令帐号设置强密码
awk -F: '($2 == ""){print $1}' /etc/shadow
3、常用运维命令
3.1、进程管理命令
ps #显示在本地机器上当前运行的进程列表
ps -aux #查看所有进程
kill #给进程发送一个信号
kill -9 1024 #关闭PID为1024的进程
service #管理系统中的服务(run a System V initscript)
service apache2 status #查询服务状态
service apache2 stop|start|restart #停止|启动|重启服务
3.2、网络管理命令
netstat #显示网络统计信息、TCP/IP网络连接等
netstat -a #显示所有连接
netstat -n #禁止解析IP地址和端口号
netstat -t #显示TCP连接
ifconfig #管理网络适配器
ifconfig eth0 192.168.71.128 netmask 255.255.255.0 #给eth0配置IP地址和子网掩码
3.3、用户管理命令
useradd #创建、更新用户
useradd xxxxx #创建用户
useradd xxxxx -s #指定登录shell
passwd #修改用户的密码
passwd xxxxx #修改指定用户密码
userdel #删除一个用户和与其相关的文件
userdel -r xxxxx #删除xxxxx用户,并删除home目录和邮件池
su #更改用户ID或成为超级用户
su root #切换到root用户
sudo #以超级用户的身份执行命令
sudo ifconfig #以root身份执行命令
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-d, --home-dir HOME_DIR 新账户的主目录,若此目录不存在,则使用 -m 创建主目录
-D, --defaults 显示或更改默认的 useradd 配置
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并退出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-p, --password PASSWORD 加密后的新账户密码
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
3.4、信息查询命令
whoami #显示当前用户
history #查看shell历史命令
history -c #清楚shell历史命令
uname #输出系统信息
uname -a #显示所有信息
uname -r #显示内核的发行版本号
4、其他命令
ssh #SSH客户端(远程登录)
ssh root@192.168.71.128 #登录远程计算机
shutdown #关闭、重启计算机
shutdown -h #关闭计算机
shutdown -r #重新启动计算机
shutdown -h 0(now) #立刻关闭计算机
4.1、其他常用的查看命令
cat #显示每一行的结尾符号$(linux的每一行都会有两个特殊字符 $ 和 ^,$每行的结尾符,^ 每行的开头符)
tac #cat命令倒着写的命令,显示的内容也是倒着显示
more #分屏显示文件的内容,如果一个文件太多,整屏显示不下来,就会分屏显示,使用空格跳到下一屏内容,enter建显示下一行内容,不能回看,q建退出
less #分屏显示内容,空格键 跳到下一屏,b建上一屏,enter显示下一行,k上一行
head #显示前几行数据,不加-n参数显示前十条数据
tail #显示文件末尾内容,不加-n参数显示最后十行数据
5、nano 编辑器
nano 是一个字符终端的文本编辑器,有点像 DOS 下的 editor。它比 vi/vim 要简单得多,很多 Linux 发行版都默认安装了 nano
^ #表示 ctrl
M #表示 alt
ctrl + G # GET Help 显示帮助信息
ctrl + O # WriteOut 保存内容
ctrl + X # Exit 退出
ctrl + J # Justify
ctrl + R # Read File
ctrl + W # Where Is
ctrl + Y # Prev Page
ctrl + V # Next Page
ctrl + K # Cut Text 剪切一行
ctrl + U # UnCut Text 粘贴到当前位置的前面
ctrl + C # Cur Pos
ctrl + T # To Spell 帮助信息,快捷键的使用
ctrl + 6 # 开始标记
ctrl + shift + _ #跳行
ctrl + C #显示光标位置
Home #跳到行首
End #跳到行尾
顶部显示程序版本和当前正在编辑的文件夹
中间是主要编辑区,显示文件内容
底部显示常用的快捷键
6、vim 编辑器
一共三种模式:
6.1、命令模式( Command mode ):一启动 vim,就进入命令模式
gg #跳到第一行
G #跳到最后一行
dd #剪切当前页
p #粘贴到下一行
yy #复制当前行
dG #从当前行删除到文件结尾
/hacker #关键词搜索
6.2、输入模式( Insert mode ):按 i /o 进入输入模式
x #删除当前光标所处的字符
显示行数
vim /etc/vim/vimrc
最后一行加入
:set number
6.3、底行模式( Last line mode ):按 **: (冒号)**进入底行模式,可输入命令或搜索
:w #保存内容
:q #退出vim
:q! #强制退出vim,不保存修改内容
:3 #跳到第三行
:wq #保存并退出
其他常用的查看命令
cat #显示每一行的结尾符号$(linux的每一行都会有两个特殊字符 $ 和 ^,$每行的结尾符,^ 每行的开头符)
tac #cat命令倒着写的命令,显示的内容也是倒着显示
more #分屏显示文件的内容,如果一个文件太多,整屏显示不下来,就会分屏显示,使用空格跳到下一屏内容,enter建显示下一行内容,不能回看,q建退出
less #分屏显示内容,空格键 跳到下一屏,b建上一屏,enter显示下一行,k上一行
head #显示前几行数据,不加-n参数显示前十条数据
tail #显示文件末尾内容,不加-n参数显示最后十行数据
7、用户口令管理
passwd options user
passwd -h
passwd -l #锁定口令,禁用账号
passwd -u #口令解锁
passwd -e expire #强制使指定帐户的密码过期
passwd -d # 使账号无口令
passwd test
old passwd
new passwd
re-enter #重置密码
8、Linux 系统用户组管理
修改用户组属性
groupadd options 用户组 #增加一个新的用户组
groupadd -g #GID指定新用户组的组标识号
groupadd -o #新用户组的GID可以与系统已有用户的GID相同
groupdel options 用户组 #删除已有的用户组
groupmod options 用户组 #修改用户组的属性
groupmod -g 103 group2 #将组group2的组标识号修改为103
groupmod -g 10000 -n group2 group1 #将组group1的标识号改为10000,组名为group2
查看组列表及信息
cat /etc/gshadow
9、远程登陆管理
9.1、windows 远程登录
mstsc #远程桌面连接
9.2、Linux 远程登录
ssh 服务常用的 shell 工具
xshell
finalshell
termius
9.3、端口号
21号端口:文件传输协议 - 控制端口
22号端口:SSH (Secure Shell)- 远程登录协议
23号端口:Telnet 终端仿真协议 - 未加密文本通信
25号端口:SMTP (简单邮件传输协议)
80号端口:超文本传输协议 - 用于传输网页
443号端口:超文本传输安全协议 - 超文本传输协议 over TLS/SSL (加密传输)
445号端口:SMB文件共享
3306号端口:MySQL 数据库系统
3389号端口:远程桌面协议(RDP)
11、Linux 磁盘管理
df -h (disk free) #列出文件系统的整体磁盘用量
-a #列出所有的文件系统
-k #以kb容量显示文件系统
-i #以inode数量显示
-T #显示文件系统类型
-H #进位方式
文件系统 容量 已用 可用 已用% 挂载点
udev 939M 0 939M 0% /dev
tmpfs 198M 6.0M 192M 4% /run
/dev/sda1 78G 17G 58G 22% /
du (disk used) #检查磁盘空间使用量 使用 -h 参数会显示具体大小 默认为 kb
大小 目录
504M ./bp
fdisk #用于磁盘分区
-l #列出所有磁盘分区信息
1./mnt目录存放手动挂载的硬件;
2. /media目录存放自动挂载的硬件(载点都是由系统自动建立和删除的)
3. /dev不是存放设备的驱动程序,而是作为访问外部设备文件的接口。
比如,我们的U盘,插入linux系统后,用fdisk -l查看分区,显示文件为/dev/sda1。
11.1、磁盘检验
fsck file system check #检查和维护不一致的文件系统
-d #打印出debug结果
-p #自动修复(没有问题)
-n #不对文件系统进行任何更改
-y #对所有问题自动输入 yes
-c #检查坏块并将其添加到坏块列表中
-C #显示完整的检查进度
-f #强制检查,即使文件系统被标记为干净
-v #显示详细信息
-r #若检查有错则询问使用者是否修复
-b superblock #使用替代数据块
-B blocksize #在查找数据块时强制块大小
-j external_journal #设置外部日记帐的位置
-l bad_blocks_file #添加到坏块列表
-L bad_blocks_file #设置坏块列表
-z undo_file #创建撤消文件
强制检测分区是否有异常
fsck -f -C -t xxxx /xxx/xxx
11.2、磁盘挂载与卸载
mount
mount #文件挂载
-t #系统类型:指定欲挂载的文件系统类型。Linux 常见的支持类型有 EXT2、EXT3、EXT4、iso9660 光盘格式 、vfat、reiserfs 等。如果不指定具体类型,挂载时 Linux 会自动检测
-L #卷标名:除了使用设备文件名(例如 /dev/hdc6)之外,还可以利用文件系统的卷标名称进行挂载。
-n #在默认情况下,系统会将实际挂载的情况实时写入 /etc/mtab 文件中,但在某些场景下(单人维护模 式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项
-o #特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值defaults
mount -t 文件系统 -L Label名称 -o 选项 -n 装置文件 挂载点
mkdir /mnt/hdc1
mount /dev/hdc1 /mnt/hdc1
umount
umount #文件卸载
-a #卸除/etc/mtab中记录的所有文件系统
-h #显示帮助
-n #卸除时不要将信息存入/etc/mtab文件中
-r #若无法成功卸除,则尝试以只读的方式重新挂入文件系统
-t #<文件系统类型> 仅卸除选项中所指定的文件系统
-v #执行时显示详细的信息
-V #显示版本信息
[文件系统] #除了直接指定文件系统外,也可以用设备名称或挂入点来表示文件系统
umount -v /dev/sda1 #通过设备名卸载
/dev/sda1 umounted
umount -v /mnt/mymount/ #通过挂载点卸载
/tmp/diskboot.img umounted
12、Linux 防火墙
12.1、常见的 Linux 防火墙
iptables
firewall
ufw
12.2、iptables 语法
iptables [-t table] command [match] [target]
-t: 用于指定所要操作的表,不指定则默认 filter 表
command:具体的命令动作,比如对指定链添加/删除规则
match:对所要处理包的匹配规则
target:数据包的处理动作
iptables -nL --line-number #查看iptables规则
iptables -t filter -A INPUT -i eth0 -s 192.168.71.1/24 -j DROP #禁止192.168.71.1网段接入
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -s 192.168.71.1/24 -p all -j ACCEPT #允许192.168.71.1网段接入
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT #允许所有主机ping
12.3、iptables常见操作
ACCEPT #允许数据包通过
DROP #丢弃数据包
REJECT #拒绝数据包通过
LOG #将数据包信息记录 syslog 曰志
DNAT #目标地址转换
SNAT #源地址转换
MASQUERADE #地址欺骗
REDIRECT #重定向
target #处理的动作
prot #协议
source #数据包的源IP地址
destination #数据包的目标IP地址
input chain #处理来之外部的数据
output chain #处理向外发送的数据
forward chain #将数据转发到本机的其它网卡上
12.4、iptables 常见参数
-A #添加防火墙规则
-D #删除防火墙规则
-I #插入防火墙规则
-F #清空防火墙规则
-L #列出添加防火墙规则
-R #替换防火墙规则
-Z #清空防火墙数据表统计信息
-P #设置链默认规则
-n #表示不对 IP 地址进行反查,加上这个参数显示速度将会加快。
-v #表示输出详细信息,包含通过该规则的数据包数量、总字节数以及相应的网络接口
13、Linux 系统日志
13.1、日志分类
日志分类 日志功能
Access-log #记录web服务的访问日志
error-log #错误日志
Acct/pacct #记录用户命令
btmp #记录失败记录
lastlog #记录最近几次成功登录的事件和最后一次不成功的登录
messages #服务器的系统日志
Sudolog #记录使用sudo发出的命令
Utmp #记录当前登录的每个用户
Wtmp #一个用户每次登录进入和退出时间的永久记录
Secure #记录系统登录行为,比如ssh的登录记录
13.2、日志文件分类
/var/log/messages #服务器最核心的系统日志,后台守护进程会把执行日志打印到此文件,用cat,head,tail查看
/var/log/wtmp #查看用户的登录、注销、同时记录系统的启动、重启、关机等信息
/var/log/btmp #这3个日志文件记录了关于系统登录和退出信息
/var/log/lastlog #只能用 last 查看
/var/log/utmp #记录当前登录用户的信息
/var/log/lastlog #各个用户最后一次登录的日志,都有其时间戳