一.Linux
1.简介
Linux系统是目前仅次于Windows的开源系统,并且拥有比Windows更广泛的的应用范围。
Windows:不开源(封闭的)。Linux:开源(它的底层源代码已经公布到互联网)
真正的Linux指的是系统内核(底层代码),我们常说的Linux是由内核开发出来的发行版本(基础应用软件)。
2.Windows与Linux对比
(1)稳定且有效率(它开源,而且操作方便)。
(2)免费开源(部分收费)。
(3)漏洞少且能快速修复。
(4)多任务多用户(Linux支持多个用户同时登录并且同时执行多个任务)。
(5)更安全的用户与文件权限策略(文件目录分配的权限很严格)。
3.Linux系统种类
CentOS:通过把红帽系统重新编译并发送给用户免费使用的Linux系统。
Debain:稳定性,安全性强,提供了免费的基础支持,在国外拥有很高的认可度和使用率。
ubantu:是一款派生于Debain的操作系统,对新款硬件具有极高的兼容能力。
二.Linux基础知识
1.简介
Linux生产环境是没有变化的。
终端连接服务器:通过SSH ssh root @IP地址就可以访问远程服务器,输入远程服务器密码进行身份验证。
shell:命令行环境,它是Linux中的一个程序,它接收到用户输入的命令,将命令传输到操作系统中执行,并将结果返回。
一个Linux中有多个shell,常见的shell:
Bash
Sh
Dash
Fish
Ksh
Csh
Zsh
命令行提示符:【root(用户名)@(主机名字) ~(~表示当前所在的位置是家目录,root的家目录为/root,普通用户的家目录为/home)】# $(指出你所具有的权力,#表示root用户,$表示普通用户)
2.Linux文件操作命令
pwd #显示当前所在目录的路径
ls #浏览文件与目录
ls -a 显示出所有目录与文件包括隐藏文件 ls -l 显示出详细列表 ls -t 按照文件最近一次修改时间排序 -h改变文件大小的书写格式
cd #切换目录
cd -返回上一次操作 cd ..跳到上级目录 cd ../../跳到上两级目录 cd /切换到根目录 cd ~切换到家目录 cd 不加任何参数,返回到家目录 cd ./home 跳转到当前目录下的home目录
绝对路径:从根目录开始/
相对路径:从当前目录开始./
cat #查看文件内容,适用较小的文件
tac#文件是倒着看
cat -n 显示行号
less #分页显示文件内容,适合查看大文件
空格 前进一页 b后退一页 d前进半页 u后退半页 q退出
head #显示文件开头几行(默认十行)
head 文件 -n 参数 指定查看行数
tail #显示文件后几行(默认十行)
tail 文件 -n 参数 指定行数 -f会每过一秒检查文件是否有更新内容
sed #显示文件中指定的行数(几到几)
sed -n '7,10p' test 查看test文件中的7到10行
mkdir #创建新目录
mkdir -p 创建递归目录 :mkdir -p A/B/C
touch #创建文件
vim #编辑文件内容
(1)交互模式
yy复制 p粘贴 dd剪切 d删除 u撤销 /string搜索
(2)插入模式(i)
(3)命令模式(:)
w保存 q退出 wq保存并退出 !强制动作
cp #复制文件或目录
cp * * 将文件一拷贝到文件二 -r递归复制,用来复制整个目录
mv #移动文件与目录或重命名
rm #删除文件
-i向用户确定是否删除 -f强制删除 -r递归删除
rm -rf /*禁止使用
ln #硬连接 ln -s #软链接
硬连接指的是A和B一起被分配到了一块内存下,修改A等于修改B;软链接指的是A指向B的内存(如同Windows的快捷方式)。
find #查找命令
按照文件名查找:find 路径 -name 文件名
根据文件最近访问时间查找:find -name 文件名 -atime 时间
仅查找目录type -d或文件type -f
grep #查找关键字
查看文件,在文件中查找关键字,并显示关键字所在行。
grep [关键字] [要搜索的文件]
-i忽略大小写 -n显示行号 -v只显示文本不存在的那些行 -r递归查找
which * whereis #查找程序安装位置
wget/ curl -o导出 git pip(python第三方库管理)#文件下载
tar -cvf #压缩文件 tar -xvf #解压文件 unzip
-c建立压缩档案 -x解压 -t查看文件
3.Linux网络操作命令
命令 | 功能 | 举例 |
nslookup | 查询DNS记录,域名解析 | nslookup www.baidu.com |
ipconfig | 查看用户配置信息,查看网络设置配置 | ipconfig |
ip addr | 查找IP的相关信息 | ip addr |
ping | 测试网络连通性 | ping www.baidu.com 一般情况下会无限发包,此时用 -c * 选择发包数量 |
netstat -ano | 查看网络端口开发情况与连接情况 | netstat -ano |
telnet | 测试网络连接是否正常 | telnet IP 端口号 |
hostname | 查看主机名 | hostname -f 显示完整的主机名和域名 hostname -i 显示当前机器的IP地址 |
ipconfig * down | 关闭网络设备 | ipconfig eth0 down |
ipconfig * up | 开启网络设备 | ipconfig eth0 up |
ps | 查看静态进程 | -ef 列出所有进程 -u 列出此用户运行的进程 -aux通过内存和CPU的使用来过滤进程 |
top | 查看动态进程 | top |
pgrep | 以名称为依据,查找进程并显示出进程号 | -f模式参数进匹配进程名;-l列出进程名和进程ID;-u选择进匹配指定有效用户ID的进程 |
kill | 杀死进程 | kill [参数] [进程号] -9强制删除 |
nohup | 隐藏进程 | nohup [命令] & |
service | 服务管理命令 | start启动服务;stop终止服务;status查看状态;restart重启服务; |
systemctl | 服务管理命令 | systemctl start/restart/stop/status |
clear | 清屏 | clear |
env | 查看环境变量 | env |
history | 查看历史命令 | history |
init6 init0 | 重启 | init0关机;init6重启 |
reboot | 重启服务 | reboot |
shutdown | 关机 | * |
w | 查看当前在线的用户信息 | w |
whoami | 查看当前用户是谁 | whoami |
id | 查看用户的uid,gid的信息 | id |
& | 同时进行多条命令,不管对与错都执行完成 | *&*&* |
&& | 同时执行多条命令,前面有错误后面则不执行 | *&&*&&* |
| | 管道;前面的输出作为后面命令的输入 | *|* |
> | 输出重定向 | * |
>> | 追加重定向 | * |
< | 输入重定向 | * |
* | 通配符;任意字符 | * |
? | 通配符;单个字符 | * |
[] | 通配符;选定字符范围 | * |
三.权限管理
1.用户及权限管理
Linux作为多用户多任务的操作系统,可以在同一时间内登录多个用户并执行多个任务,随着需求的增加,用户的增加,我们也就需要对用户进行管理。
同一计算机支持多个用户的同时登陆,并同时运行多个服务进程:
(1).运维账户:支持服务的启动与关闭,以及网络调试。
(2).网管账户:支持用户管理。
(3).测试账户:服务运行。
(4).开发账户:执行编辑更改执行。
2.查看用户信息
用户信息可以通过/etc/passwd来查看,一行代表一个用户。
用户信息的组成:【用户名称】:【用户密码】:【UID】:【GID】:【用户说明】:【家目录】:【登录的SHELL】
(1)【用户名称】
(2)【用户密码】:早期版本的密码是直接存放在这里的,后来为了兼容所以就保留了写来,用X代替。
(3)【UID】:用户ID,用户的唯一标识符。
UID为零,一般就是为管理员用户;
UID1-999一般为用户创建的服务用户,系统用户以及特殊用户;
UID1000-65535为普通用户的ID,一般普通用户的UID从1000开始。
(4)【GID】:把相同权限的用户都放到了一个组中进行统一管理。如果一个普通用户的gid=0,那么也能得到管理员权限。
(5)【用户描述】
(6)【家目录】:常见的家目录在/home/用户名下,也可以自己指定家目录的路径,root的家目录在/root下。
(7)【登陆的SHELL】:Linux默认的shell是在/bin/bash;特殊的 是/sbin/nologin不分配shell终端。
用户密码信息可以通过/etc/shadow命令来查看。
【用户名称】:【加密密码】:【最后一次修改密码的日期】:【两次修改密码的间隔】:【密码有效期】:【密码有效期到期的警告天数】:【宽限天数】:【账号失效时间】
(1)【用户名称】
(2)【加密密文】:采用SHA512散列加密算法。如果该字段为!!表示从来没设置过密码。
(3)【最后一次修改密码的日期】:该文件所有日期格式采用时间戳。
(4)【两次修改密码的间隔】:以10为代表,表示修改完成后下次修改的时间在10天后。
(5)【密码有效期】:密码需要重新修改的天数。
(6)【密码有效期到期的警告天数】:密码修改前的警告天数。
(7)【宽限天数】:密码过期后账号的宽限天数。
(8)【账号失效时间】:账号失效时间。
创建用户:useradd
参数:-u 指定用户UID;-g 指定用户初始所属的用户组;-G 指定用户所属的附加组;-m 强制需要创建家目录;-M 强制不需要创建家目录;-f 指定密码过期时间;-e 用户失效日期;-s 指定用户登录的shell解析器;-d 指定用户的家目录
直接写入创建:
openssl passwd -1 -salt admin 123456;#会给出密码的加密形式
echo 'admin0(用户名):(密码加密形式):0:0::/root::/bin/bash' >> /etc/passwd
设置密码:passwd 修改密码需要root权限
passwd 【参数】 <用户名>
-d 删除密码;-S 查询用户密码状态;-u 解锁用户密码;-l 锁定用户密码
删除用户:userdel
userdel 【参数】 <用户名>
-f 强制删除用户账户;-r 递归删除
切换登录用户:su
su 【用户名】
-c 仅执行一次命令,不切换用户身份
用户组管理命令:通常位于/etc/group
添加用户组:groupadd
groupadd 【参数】 <组名>
-g 创建的同时指定用户组ID
修改组属性:groupmod
groupmod【参数】 <组名>
-n 修改组名 groupmod new_group old_group;-g 修改新的GUI
设置用户组:gpasswd(用户组信息/etc/group)
gpasswd 【参数】 <组名>
-a 添加用户到组;-d 从组中删除
删除用户组:groupdel
groupdel 【参数】 <组名>
文件及文件夹权限管理:chmod
r ==读取文件的权限;w ==写入权限;x ==执行文件的权限;
r ==4;w ==2;x ==1;
u user 文件所有者;g group 文件所有者所在的组;o others 其他人;a all 所有用户。、
-代表文件;d代表目录;|代表软连接lrw-r--r-- l 链接文件
递归操作:-r chmod 【参数】 【u】【g】【a】【文件名或目录】
变更文件或目录的所有者或所属群组。
语法 chown [-r] [username]:[groupname] [filename]
四.磁盘管理
Linux磁盘分区类型
主分区:一块磁盘最多只有四个主分区。
扩展分区:每块硬盘最多只能有一个:主分区加扩展分区最多有四个;
三个主分区+扩展分区(逻辑分区)
扩展分区不能写入数据,只能包含逻辑分区。
逻辑分区
查看磁盘空间:df -h
Linux中主分区加扩展分区,最多只能有四个。
逻辑分区只能在扩展分区上。
查看磁盘:ls /dev/sd*
先 ls /dev/sd* 查看虚拟机原有的sd系统硬盘。
硬盘在Linux标识的命名规则:
*增加新硬盘*
(1)增加硬盘
先关闭CentOS虚拟机,在设置中添加硬盘。重启后用 ls /dev/sd*查看硬盘是否已经加上。
(2)Fidsk分区操作
a | 调整磁盘的启动分区 | p | 显示当前磁盘的分区信息 |
d | 删除磁盘分区 | t | 更改分区类型 |
l | 显示所有支持的分区类型 | u | 切换所显示的分区大小的单位 |
m | 查看所有指令的帮助信息 | n | 创建新分区 |
q | 不保存更改,退出fdisk命令 | w | 把修改写入磁盘分区,然后退出fdisk命令 |
g | 新建一个空的GPT分区表 | o | 新建一个空的DOS分区表 |
步骤:fdisk /dev/sdb
n
p
选择默认
w
此时在/dev/sdb下会出现sdb1
格式化操作:mkfs
mkfs|mkfs.xfs|mkfs.ext4 [选项] 分区的设备名
-t 文件系统类型,当命令名为mkfs时,指定要创建的文件系统的类型(如:xfs、ext4等)。
-c 建立文件系统前先检查坏块。
-V 输出建立文件系统的详细信息。
挂载使用:mount
删除分区:umount
五.补充
stat
用于显示文件或目录的信息
stat 【文件或者目录】
sort
将文件内容排序
sort -n 按照数字进行排序
sort -t 按照字典进行排序
last
last命令用于显示最近登录的用户信息。单独执行时,它会读取/var/log/wtmp的文件。last 【参数】 只显示【几】行。
sudo
sudo配置文件一般在/etc/sudoers中
通过修改大概100行左右的权限信息即可赋予
用户名 ALL=(ALL) ALL
计划任务
查看计划任务:crontab -l
编辑计划任务:crontab -e
删除计划任务:cronrab -r
查看指定用户的计划任务:crontab -u root -l
/etc/crontab配置文件中的格式为:
Linux运行级别
一般的Linux运行级别有七个,0-6
Linux0:系统停机状态,系统默认状态下是不能设置为0,否则不能正常启动。即为关机模式。
Linux3:完全的多用户状态(有NFS),登录后进入控制台的命令行模式。Linux很常见的运行级别。
Linux5:X11控制台,登录后进入图形的GUI模式。就是图形模式。
Linux6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。
配置静态IP地址
首先用命令查找自己的网络配置信息。(ip addr)
sudo vim /etc/sysconfig/network-scripts/ifcfg-eth0(配置文件)
如果不存在可以用下列命令创建一个
sudo touch /etc/sysconfig/network-scripts/ifcfg-eth0
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加或者修改配置:
BOOTPROTO=static(设置为静态IP地址)
ONBOOT=yes(开启后就会自动启用该网卡)
IPADDR=(设置的静态IP地址)
NETMASK=(子网掩码)
GATEWAY=(网关)
DNS1=(DNS服务器)
DNS2=(备用DNS服务器)
sudo systemctl restart network(重启网络服务)
dhclient重新让DHCP分配IP地址
配置网卡时直接复制之前已有的网卡并且配置信息,删除UID以及修改名字。
ip a的命令可以查看网卡开放状态,如果关闭则打开。ipconfig * up/down
一些配置文件的路径
/etc/passwd存放用户信息的文件
/etc/shadow存放密码信息的文件
/etc/group存放用户组信息的文件
/etc/yum.repos.d/存放YUM源
/dev/sd*存放硬盘信息
/etc/crontab存放计划任务配置文件
/etc/hosts存放域名与IP地址之间的对应关系
/etc/services存放网络服务端口的文件
/etc/sysconfig/network-scripts/ifcfg-eth0网卡配置文件
/etc/fstab设置开机自动安装文件系统的文件
.bash_history ls -a history存放历史命令文件
/var/log/secure (redhat¢os)
/var/log/auto.log(debian&ubantu)ssh日志文件