Linux操作系统
Linux远程连接
SSH连接
secure shell 缩写ssh安全协议 # 管理员权限 SSH客户端:XShell、finalshell、mobaxterm、putty、命令行
## Linux文件系统
它是树状文件结构,最上层就是更目录/
Linux文件系统区分大小写,没有拓展名概念
文件系统权限
(1)可读r
(2)可写w
(3)可执行x
(4)---
修改文件权限
chmod +x 1.txt
chmod 777 1.txt
rwxrwxrwx:777
rw-r--r--:644
rwxr-xr-x:755
Linux系统部署与网络调试
虚拟网络编辑器
Linux基础命令-基础操作
基础操作
#**快捷键** #清屏 Ctrl + L clear #**快速补齐** tab **终止** ctrl +c **挂起** ctrl +z **恢复** fg xxx **两下tab补齐** #**看工作状态** jobs #**开关机** #**`关机** poweroff halt init 0
设置运行级别
init level
init 0 -停机
init 1 -单用户
init 2-多用户
init 3-完全多用户模式
init 4-安全模式
init 5-xll
init 6-重新启动
重启
reboot
init 6
退出登录
exit
查看主机信息
#查看系统相关信息** uname -a 显示主机名、内核版本、硬件平台等详细信息 -r 显示内核版本 #**查看主机名** hostname #**查看****ip****地址** ifconfig #**查看当前用户** whoami #**显示目前登入用户信息** w #**查看当前登陆** who #**查看系统版本** cat /etc/issue cat /etc/\*-release
用户管理
添加用户
useradd 选项 用户名 -c comment 指定一段注释性描述 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组,用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 # 添加新用户tom useradd tom # 添加新用户tom,指定家目录 useradd -d /home/tom -m tom
删除用户
userdel 选项 用户名 -r 把用户的主目录一起删除 # 删除用户tom及它的家目录 userdel -r tom
修改用户
修改用户账号就是该局实际情况更改用户的有关属性,如用户号、主目录、用户组、登陆shell登。
usermod 选项 用户名 -c comment 指定一段注释性描述。 -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。 -g 用户组 指定用户所属的用户组。 -G 用户组 指定用户所属的附加组。 -s Shell文件 指定用户的登录Shell。 -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 # 将用户tom的登录Shell修改为ksh,主目录改为/home/z usermod -s /bin/bash -d /home/z tom -m
用户口令的管理
passwd 选项 用户名 -l 锁定口令,即禁用账号。 -u 口令解锁。 -d 使账号无口令。 -f 强迫用户下次登录时修改口令。 # 修改tom的口令 passwd tom # 指定tom为空口令 passwd -d sam # 锁定tom的账号 passwd -l sam
切换用户
su 用户名
以系统管理者的身份执行指令
其实就是前面加个sudo变成了提权命令
sudo command -V 显示版本编号 -h 会显示版本编号及指令的使用方式说明 -l 显示出自己(执行 sudo 的使用者)的权限 -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次 确认,如果超过 N 分钟,也会问密码 -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟) -b 将要执行的指令放在背景执行 -p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称 -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码) -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root ) command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令
用户组管理
增加用户组
groupadd 选项 用户组 -g GID 指定新用户组的组标识号(GID)。 -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
删除用户组
groupdel 用户组
修改用户组
groupmod 选项 用户组 -g gid 指定新用户组的组标识号(GID) -o 一般与-g选项同时使用,表示新用户组的gid可以与系统已有用户组的gid相同
用户组切换
newgrp # 切换到root组 newgrp root
用户信息与密码的配置文件
用户信息文件: /etc/passwd 密码文件: /etc/shadow 用户组文件: /etc/group 组密码:/etc/gshadow
文件与目录管理
列出目录
ls -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用) -d :仅列出目录本身,而不是列出目录内的文件数据(常用) -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
切换目录
cd [相对路径或绝对路径]
显示目前所在的目录
pwd [-P] -P :显示出确实的路径
创建新目录
mkdir [-mp] 目录名称 -m :配置文件的权限喔 -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
删除空的目录
rmdir [-p] 目录名称 -p :从该目录起,一次删除多级空目录
复制文件或目录
cp [-adfilprsu] 来源档(source) 目标档(destination) -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用) -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身; -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身; -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); -r:递归持续复制,用於目录的复制行为;(常用) -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件; -u:若 destination 比 source 旧才升级 destination
移除文件或目录
rm [-fir] 文件或目录 -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息; -i :互动模式,在删除前会询问使用者是否动作 -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
移动文件与目录
mv [-fiu] source destination -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
文件内容查看
cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只看尾巴几行 # 只看前三行 head -3 xxx # 只看后三行 tail -3 xxx
创建文件
touch filename
文本编辑
vim
安装
yum install vim -y
文本编辑器的作用
-
创建或修改文本文件
-
维护linux系统中的各种配置文件
vim工作模式
-
命令模式
-
输入模式
-
末行模式
模式切换
详细文档
Linux 3 高级命令
网络管理
查看与配置网络状态
# 查看网卡信息
ifconfig ip addr/a
查看DNS配置文件
vi /etc/resolv.conf
重启网络
service network restart /etc/init.d/network restart
网络连接配置文件
CentOS7
/etc/sysconfig/network-scripts/ifcfg-xxx
DEVICE=eth0 \#关联的设备名称 BOOTPROTO={static|dhcp|none|bootp} \#表示引导协议static|none表示静态;dhcp表示动态 IPADDR=192.168.10.10 \#设置IP地址 NETMASK=255.255.255.0 \#设置子网掩码 GATEWAY=192.168.10.1 #设置网关 ONBOOT=yes|no #开机时是否自动激活网络接口 HWADDR=00:1E:0B:8F:B0:D0 #硬件地址要与硬件中的地址保持一致可省 DNS1=202.106.0.20 #指定DNS地址 USERCTL=yes|no #表示是否允许普通用户启用或禁用此接口 PEERDNS=yes|no #表示是否在BOOTPROTO为dhcp时接受由dhcp服务器指定的dns地址
进程管理
查看进程
# 列出所有运行中/激活进程 ps -a \# 显示进程信息,包括无终端的(x)和针对用户(u)的进程:如USER, PID, %CPU, %MEM等 ps -aux \# 显示所有进程并且扩展显示输出 ps -ef \# 查找指定进程 ps -xxx | grep xx
查看进程树
# 以可视化方式显示进程,通过显示进程的树状图来展示进程间关系 pstree [pid]
实时监视系统中不同的进程所使用的资源
top \# 退出:q
结束进程
kill -9 <pid> \# 结束ping ps -aux | grep ping kill -9 pid
磁盘管理
三种磁盘管理命令:df、du和fdisk
df
英文全称:disk full:列出文件系统的整体磁盘使用量
df [-ahikHTm] [目录或文件名] -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统; -k :以 KBytes 的容量显示各文件系统; -m :以 MBytes 的容量显示各文件系统; -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -H :以 M=1000K 取代 M=1024K 的进位方式; -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出; -i :不用硬盘容量,而以 inode 的数量来显示
实例
# 将系统内所有的文件系统列出来! df # 将容量结果以易读的容量格式显示出来 df -h # 将系统内的所有特殊文件格式及名称都列出来 df -aT
du
查看使用空间
du [-ahskm] 文件或目录名称 -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。 -h :以人们较易读的容量格式 (G/M) 显示; -s :列出总量而已,而不列出每个各别的目录占用容量; -S :不包括子目录下的总计,与 -s 有点差别。 -k :以 KBytes 列出容量显示; -m :以 MBytes 列出容量显示;
实例
# 只列出当前目录下的所有文件夹容量 du # 检查根目录底下每个目录所占用的容量 du -sm /*
fdisk
LInux磁盘管理分配表操作工具
fdisk [-l] 装置名称 -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装 置的分区均列出来。
实例
# 列出所有分区信息 fdisk -l
防火墙
firewalld
查看防火墙
systemctl status firewalld
启动/关闭
systemctl start firewalld systemctl stop firewalld systemctl reload firewalld
查看规则
#查看当前区域所有规则 firewall-cmd --list-all
规则添加/移除
#临时放行http服务 firewall-cmd --add-service=http #移除放行的http服务 firewall-cmd --remove-service=http #查看允许放行的服务 firewall-cmd --get-service #持久放行tcp/80端口 firewall-cmd --add-port=80/tcp --per #禁ping firewall-cmd --permanent --add-rich-rule='rule protocol value=icmp drop'
禁止ip
#禁止ip访问http服务 firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.242.142/24 service name=http reject' #允许ip访问http服务 firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.242.142/24 service name=http accept' #禁止ip访问哪些端口 firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.242.142/24 port port=80-88 protocol=tcp reject' #允许ip访问哪些端口 firewall-cmd --add-rich-rule 'rule family=ipv4 source address=192.168.242.142/24 port port=80-88 protocol=tcp accept' #移除rule firewall-cmd --remove-rich-rule 'rule family=ipv4 source addresss=192.168.242.142/24 port port=80-88 protocol=tcp reject' #禁止服务器ping firewall-cmd --add-rich-rule 'rule protocol value=icmp drop' firewall-cmd --add-rich-rule 'rule protocol value=icmp reject' #accept接受 #reject 拒绝 #drop 不响应
iptables
netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙
按照规则表,从第一条向下匹配规则
#查看过滤规则 sudo iptables -t filter -L #禁止所有地址对tcp80端口的请求 sudo iptables -t filter -AINPUT -j DROP -p tcp --dport 80 # 删除INPUT的第1条规则 sudo iptables -t filter -D INPUT 1 # 拦截 发往指定ip地址的包 sudo iptables -t filter -A OUTPUT -j DROP -p tcp -d 193.168.4.6 # 禁止ping sudo iptables -t filter -A OUTPUT -j DROP -p icmp -d 193.168.4.6 # -A 追加最后一行 # -I 插入,默认第一行
UFW
UFW(Uncomplicated FireWall,简单防火墙)。UFW简化了 iptables,已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。
查看UFW状态
sudo ufw status \# 查看详细信息 sudo ufw status verbose
启动UFW
# 启动 sudo ufw enable # 关闭 sudo ufw disable
允许/禁止常见协议
# 允许ssh sudo ufw allow ssh # 禁止ssh sudo ufw deny ssh # 刷新 sudo ufw reload
允许/禁止端口范围
sudo ufw allow 12345 sudo ufw allow 1714:1764/udp
删除规则
sudo ufw delete allow ssh
总结:
ssh连接:
在ubuntu上遇到问题,用户登陆名是vm,但ssh连接用户名是ubuntu。
连接不上ssh,有可能是没有安装ssh,sudo apt-get install openssh-server即可