pwd —— 打印当前的文件夹
二级目录: bin 二进制文件
boot 启动文件
dev 驱动硬件 (鼠标,键盘)
etc 配置文件
home文件(用户的私人文件)
tmp临时文件
ls (列出list)
cd 切换
---------------------------------------------------------------------------------------------------------------------------------
touch 创造文件
touch /mnt/mnt1 绝对路径创造文件
mkdir /home/a1 直接创建目录
mkdir -p /home/a1/b1/c1 多级创建目录
(-p -parents 有父系)
cp /取 /放 (复制文件到另外的地方)
通配符 [a-z] [A-Z] [0-9] * ? {a,b}
tr [a-z] [A-Z] 文本的内容替换 transfer
wc -l /etc/passwd word calculate
-w
-c 查看一个文件有多少行多少字
stat 查看文件的具体状态
[root@hujiaxin ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 2642 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 69677094 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-04-03 07:43:51.460006998 -0400
Modify: 2022-02-25 20:16:52.928235172 -0500
Change: 2022-02-25 20:16:52.929235162 -0500
---------------------------------------------------------------------------------------------------------------------------------
mv /取 /放 move 转移文件
[root@hujiaxin ~]# touch /home/a1/b1/c1/mm
[root@hujiaxin ~]# mv /home/a1/b1/c1/mm /home/a1/b1
mv 可以用于改名
[root@hujiaxin b1]# mv mm gg
[root@hujiaxin b1]# ll
total 0
drwxr-xr-x 2 root root 6 Apr 3 10:20 c1
-rw-r--r-- 1 root root 0 Apr 3 10:19 gg
rm 删除
rm -rf 强制删除
rm -rf /home/a1/b1 /home/a1/c1 同时删除两个文件
查看命令
{ cat
head
tail
more}
gedit 1.txt 创造新的记事本
---------------------------------------------------------------------------------------------------------------------------------
vim
想要进入编辑模式 i
想要进入命令行模式 Esc
yy 复制一行 p 粘贴
3yy —— 直接复制3行
dd删除一行
u撤销前一步
100gg 跳转到第100行
G回到最后一行
$每一行的最后一个
命令模式 /a 查到含有a的行数
set number 增加行号
set nonu 取消行好
: 1,5 s/a/b/g 末行模式修改文件
:w /tmp/aaa.txt 另存为
隐藏文件:
产生条件:ctrl z 或者意外退出
.vim.swp
ls -a 查看所有隐藏文件
处理: rm -rf .vim.swp
---------------------------------------------------------------------------------------------------------------------------------
![](https://img-blog.csdnimg.cn/0fd08b6397214d2eac47c9da32bce792.png)
cat /etc/group
useradd hjx 创建用户
id hjx 查看用户信息
passwd hjx 设置用户的密码
useradd hjx -u 6130 可以自己设定用户的uid
usermod hjx -u 6130 修改已经存在的uid
useradd hjx -d /home 专门指明他的家目录
userdel -r hjx 完全删除,顺便把所属目录同时删除
userdel hjx 删除了用户,但是没有删除所属目录
usermod -s /sbin/nologin hjx 不允许用户登陆 (同时不能直接修改vim /etc/passwd ,
其他配置文件没有修改)
groupadd hr (用户名,组名不能用纯数字。会与UID混淆)
groupdel hr
cat /etc/group
id 可以查看group
usermod hjx -g AAA (修改基本组)
grep hjx /etc/passwd (passwd 里面只有基本组信息,而且基本组只有一个)
grep AAA /etc/group (group里面有付加组信息,是一个组里面包含了几个成员)
提高权限:
永久提权 su - root (中间要有减号)| exit 退去登陆
部分提取:
cat /etc/sudoers
从sudoers 文件中 查看分配组wheel
usermod hjx -G/-g wheel
sudo useradd hjx (直接进行创建)
ugo | rwx
u 属主 r 读
g 属组 w 写
o 其他 x 执
a 所有
chmod a=rwx 1.txt
chmod u-r 1.txt
chmod g+w 1.txt
chmod 000 1.txt
ugo
ls -l 1.txt 查看文件的权限 ls -ld /home 目录要加d
1.txt 直接执行
都用绝对路径!
chown hjx /home/1.txt
chgrp root /home/1.txt
chown -R root /home
chmod -R 777 /home -R 是针对整个文件夹来说,赋予所有文件权限。
set file access control list 设置访问控制列表 ACL
setfacl -m g:root:rwx /home/1.txt
setfacl -m u:jhq:- 1.txt
setfacl -m u: hjx:rwx 1.txt (ACL 在创建权限时候可以随意的添加用户,ugo 却只能够修改用户)
setfacl -m o: :rwx 1.txt 把中间用户名隔开
setfacl -x u:hjx 1.txt (删除用户)
setfacl -b 1.txt (清空附加的所有acl内容0)
getfacl /home/1.txt 查看当前文档的权限
suid 让所有用户变成root 属主,针对某一个文件
chmod u+s /usr/bin/cat
chattr +i file100 (不能动的属性,无法删除,无法修改)
chattr +a file100 (里面的内容只能够追加)
lsattr file100
chmod 0777 file100
权限位置一共有4个,第一个是特殊权位,4SUID ,2 SGID,1SBIT
umask 0000 是一个过滤的掩码 用0777来减去
umask 7777 可以当做一个废权条件
文件从硬盘转换到内存,进入CPU成为进程
ps aux | head -2
{运行内存所占大小} (进程状态) 运行时间 |地址|
虚拟 | 实际存 终端
运行状态R running
T stopping
S sleeping
ctrl + alt +F2 直接进入终端
静态查看进程
ps aux --sort -%cpu (aux 是可以查看很多ps程序,--sort-%cpu是按照CPU降序排列) a =all,U以 用户为主 x 显示所有程序,不以终端机来区分
ps -ef 查看父子程序关系, 子不教父之过。
ps axo user, pid,ppid,command ,nice | head -3 (o是自定义显示列)
free -k 查看空闲的内存kb
free -m
动态查看进程
top 查看任务管理器
top -d1 (每一秒刷新一次)
top -d3 -p 3827 3858 3881 (-p是process)专看进程号
PR是系统进程号,NI是手动进程号。 进程号越小,它的优先级越高。
kill -9 PID 强制杀死某个进程
kill -15 PID 正常退出某个进程
kill 1 杀死前台进程
kill %1 杀死后台进程
renice -20 2160
tty 查看终端号
sleep 3500 (让当前睡眠3500秒,占领了前台,实际上没有什么意思)
sleep 3500 & 后面加一个&符号就是不想看见当前程序运行,直接放到后台运行
sleep 3500 > /devil/null 放到黑洞里面
jobs 只查看后台进程,前台进程不会查看。
fg 1 是将后台进程掉回前台。
bg 4 将后台停止的程序从新运行起来
了解 /proc
cat /proc/cpuinfo 查看cpu
cat /proc/meminfo 查看内存
cat /proc/cmdline 查看内核
重定向
1> 正确
2>错误
&>正确与错误
<1.txt 反向将文件给程序 mail -s 'SB' alice < 1.txt
tee 三通管
cat /etc/passwd | grep root | tee file.txt | head -1
实际上是从中间把信息导入到文件中
xargs 是接受特殊命令的管道
cat files.txt
/home/file1
/home/file2
cat file.txt | xargs rm -rvf
成功删除
机械键盘 :盘片,马达,磁头,磁臂组成的机械结构储存器
固态硬盘:由芯片和集成电路组成
硬盘尺寸: 对角线大小
2.5英寸
3.5英寸
接口:
插头
IDE/SATA
串口/并口
快/ 慢
转速:
每分钟转速
5400转
7200转
15000转
厂商:西部数据
希捷
新硬盘--- 分区(MBR或者GPT)-----> 格式化/文件管理系统------>挂在mount
毛坯房--- 隔间------------------------->打造格子柜----------------->加一个门
ll /dev/sd*
查看硬盘
lsblk 看硬盘设备
fdisk /dev/sdb
进入回话模式 p是查看当前分区
n添加新的分区
p 是创建主分区
最后w保存
partprobe /dev/sdb 刷新分区表
fdisk -l /dev/sdb
mkfs.ext4 /dev/sdb1 将分区格式化,划分成无数个小格子
partprobe /dev/sdb 在同一块磁盘多次挂载的时候应该再次刷新磁盘信息
mount -t ext4 /dev/sdb1 /mnt/disk1 严记挂载点一定是文件夹!
umount /dev /sdb1 卸载分区 此时分区就相当于拔掉的U盘
df -hT 磁盘可用空间
当你挂载一个磁盘分区时,其实是sdb1 替代了该文件夹的 sda1 所以注意该门下方
文件的显示情况
新的磁盘分区可以被挂在到任意一个文件下面
那么文件的任意门就通向新的挂载分区
swap 分区
因为cpu 的读取速度和硬盘的io速度相差太大
所以创建swap分区进行转换
大小通常是2倍的内存
fdisk /dev/sdc 划分磁盘
mkswap /dev/sdc1 将磁盘直接转换成swap
swapon /dev/sdc1 启用swap分区
写满一个磁盘的命令
dd if=/dev/zero of=/mnt/disk4/1.txt bs=1M count=1000
从某个地方读取数据 写入到某个地方 大小 次数
PV 物理卷
VG 卷组
LV 逻辑卷
1.pvcreate /dev/sdc 创建物理卷 就是把磁盘标记一下
2.vgcreate vg1(卷组名字) /dev/sdc 创建卷组
3.lvcreate -L 200M -n lv2 vg1 创建逻辑卷 控制大小名字和从组索取资源。
如果要无限扩容一个LV 使之可以无限存放文件夹
pvcreate /dev/sdg 从新取一块物理磁盘
vgextend vg1 /dev/sdg 加 入到卷组一当中
vgdisplay 查看卷组信息
lvdisplay
pvdisplay
pvs
vgs 简单查看卷组的情况
lvs
lvextend -L +2G /dev/vg1/lv1 就只需要表明扩充大小,不需要创名字
e2fsck -f /dev/vg1/lv1 检查文件系统的完整性
resize2fs /dev/vg1/lv1 重置文件系统(EXT4)大小
SNIP
对LV进行快照拍摄,它是在已经创好的LV上划分出来实验区,进行数据存入。
若数据写入错误可以直接重新刷新覆盖merge,而不用费盘重建。
lvcreate -L 1G -s -n snip1 /dev/vg1/lv1
lvdisplay
touch /mnt/file.1/file1
dd if=/dev/zero of=/ mnt/file.1/file1 bs=1M count=1000
lvs
如果进行覆盖的话前提是一定要取消挂载状态
umount /mnt/file.1 取消的挂在点不是文件
lvconvert --merge /dev/vg1/snip1
mount /dev/vg1/lv1 /mnt/file.1/file1
删除逻辑卷
只要遵循从上层到到底层一步步删除即可
umount /mnt/file.1/file1
lvremove /dev/file.1/file1
vgremove /dev/file.1/file1
pvremove /dev/file.1/file1
文件系统
EXT4
inode 相当于储存票,限制了储存文件数量
df -i | grep sde1 查看磁盘的inode
关于block 查看大小
ls -hl file1981 查看文件的大小
h 以M ,G的格式展现
S 从大到小排列文件
l 展示详细信息
a 显示隐藏文件
touch file{1..9568} 直接用完inode
dd if=/dev/zero of=/mnt/disk4/file1981 bs=1M count=1000 快速冲入内容
watch -n0.5 'df -hT | grep sde1' -n 参数代表多久刷新一次
软连接 作用是方便在多条路径下查看文件
ln -s /file1 /root/桌面/file11 软连接 只是一种路径 快捷方式
ln /file2 /file-h1 /file-h2 硬连接 相当于复制了一个文件
硬连接无法夸分区创建
ln /file /mnt/disk4/file2 必须在同一个分区
(sda1) (sdb1) 显然创建不成立
RAID 至少3块盘
盘1 + 盘2 = 盘3(校验盘) 盘4 (热备盘)
(数据盘)
文件查找
1.命令查找 which eg. which cat
whereis vim 与which用法相同
alias ls='ls - - color=auto' alias 是别名的含义,实际上被替换的命令。
2.查找文件 locate eg. locate 77559919.txt
locate 查找是基于数据库查找的,所以查找时候要刷新数据库
updatedb
locate 77559919.txt
3.find | 路径 | 查找方式 | 查找内容
eg. find /etc -name '77559919.txt'
find /etc -iname 'host*' 参数 i 是忽略大小写查找
find /etc -size +5M 找大于5M的文件
find / -maxdepth 2 -a -name ifcfg-en* MAXdepth 找最大深度 ,-a 是and 的意思 与 -name 查找条件
find /home -user hjx
find /home -group jyh
find /dev -type b 查找dev下面的所有 BLOCK
find /tmp -type f 查找tmp下面的所有 file 文件 在linux中实际上没有文件下表类型 .txt
find . -perm 714 -ls 在当前目录下查找权限714 同时返回详细信息
-delete
find /dev -name ifcfg* -ok cp -rvf { } /tmp \; 最后一定要加 \; 表示结束符号
压缩包
tar -cf dev1.tar /dev create filename 在当前路径生成打包完成的文件
tar -czf etc1.tar.gzip /etc create gzip filename 创建压缩完成的文件
tar -xvf etc1.tar.gzip 就解压到当前目录
原文件30M
tar -cf etc.tar /etc 30 M
tar -czf etc.tar.zip /etc 9M
tar -cjf etc.tar.jip /etc 11M
tar -cJf etc.tar.xip /etc 7M
ls -lh etc.tar*
ls -xf etc.tar
ls -xf etc.tar.zip 一个解压都可以应对所有压缩格式
yum (yellow dog updater)
基于RPM包管理,能够从指定服务器自动下载RPM包并且安装
可以自动处理依赖关系,并且一次性安装所有依赖包,无需反锁的一次次下载,安装
配置 :
ls /etc/yum.repos.d/ 该文件下面是 yum 配置地址
mv /etc/yum.repos.d/* /tmp 把官方源 放到tmp中
tar -cvf /etc/yum.repos.d/* 打包备份一下
vim /etc/yum.repos.d/dvd.repo 自己写配置文件
[dvd] 中括号内必须写名字
name=dvd123 是详细描述文件名称
baseurl=file:///mnt/cdrom 写入基本库路径
gpgcheck=0 包校验 为的是防止下载盗版包
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom (注意必须插入光盘,并且推入光盘盒子)
ls /mnt/cdrom 此时会增加许多文件
vim /root/.bashrc 编辑自启动文件 设置自动临时挂载 mount /dev/cdrom /mnt/cdrom
init 6 重启
配置网络源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
直接在 /etc/yum.repos.d/ 目录下载即可
跟换yum 源后必须要
yum clean all 清除之前的yum缓存
yum makecache 创建新的yum缓存
操作:
yum -y install httpd
yum -y reinstall httpd 重新下载
yum list httpd 列出是否下载
yum -y remove httpd
rpm -q 文件名 查看库中是否有
rpm -ivh 文件名有后缀 install,显示,百分比
rpm -evh 文件名 删除文件
rpm需要不断处理依赖关系
安装原码包 先进入安装包里面
yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel (编译环境)
tar -xvf tengine-2.20.tar.gz 解压
./configure --user=hjx --group=hjx --prefix=/root/Desktop/sbin/nginx 配置
make 编译成c语言
make install 下载完毕
/root/Desktop/sbin/nginx 启动文件
yum provides vim 查看属于那一个文件
at now +2min
> useradd hjx
ctrl D
两分钟以后执行
systemctl status crond.service
ps aux | grep crond
查看程序是否在执行
ls /var/spool/cron/ 计划任务储存位置
crontab -e
进入循环人物编辑页面
* * * * * 每一个乘号之间要空格清楚。
分 时 日 月 周几
*/5
每5分钟
crontab -l 查看任务信息
0 2 1,4,6 * *
每月的1,4,6日的2时0分
mail 返回在邮箱当中
日志管理
如果日志程序出现问题
yum install rsyslog logrotate
rpm -qc rsyslog 查看该软件的配置文件
man help 是帮助查看命令 /
.conf 以此结尾的都是配置文件
进入日志配置文件
vim /etc/rsyslog.conf 在etc内的rsyslog 的配置文件 写出日志并分配到不同路径
通过rules 设置 设备级别位置。
RULES
规则由 设备+级别+存放位置组成
FACILITY +LEVEL+ FILE
cat /var/log/messages 系统的大事小情都在这里面。
tail -f /var/log/message 动态的查看文件尾部
tailf /var/log/secure 认证,安全
tail /var/log/yum.log //yum 相关
tail /var/log/maillog 跟邮件postfix 相关
tail /var/log/cron 与crond at 进程产生的日志
tail /var/log/dmesg 和系统启动相关
日志轮转配置文件
主配置文件
vim /etc/logrotate.conf
weekly 每周轮转
rotate5 保留份数 实际上是保留每一天的日志信息最大储存量是5
create 轮转后创建新文件
dateext 以时间作文文件的扩展名
compress 是否压缩
vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok
daily
rotate3
create 0600 root root
}
内配置文件优先级高
wc –l file1 查看文件多少行
wc –w file1 查看文件多少个单词
wc -c file1 查看文件多少字母
od -b file1 用八进制显示文件
pr file1 将文本文件显示成方便打印的格式
diff file[12] 查看两个文件大的不同之处
comm file[12] 查看两个文件的相同之处
cut -c1-5 file1 切前5个字符
cut -d: -f1,3 file1 以: 为分割符
sort -t":" -k3 -n file1
以:为分隔符 第三个 大小排序
/etc/sysconfig/network-scripts/ 网络配置文件
不用管ipv6
onboot='yes' 开机自动启动
bootproto=dhcp 自动分配ip地址
bootproto=none 手动分配ip地址
hostname 查看主机姓名
hostnamectl set-hostname hjx
ip a 查看所有
ip route 查看路由,就是查看网关
ip neigh 查看ping通的领居机子
ss- tnl 查看端口号
关于网络服务与防火墙
systemctl start httpd
systemctl stop firewalld
systemctl status firewalld
vim /etc/sysconfig/selinux ---- > SELINUX=disabled
OSI开放系统互联模型 (硬表会传往树屋)
1.应用层 来自应用程序的原始数据 如微信 QQ
2.表示层 格式、压缩、加密。
3.会话层 会话/全双工/半双工 电话与对讲机 身份信息(不用重复登陆)
4.传输层 分段/重组/端口号 提高传输效率
5.网络层 IP地址/寻址/路由
6.数据链路层 MAC地址/局域网 分段目标 邮局地址 邮递员
7.物理层 传输介质/比特流 电流 光 无线信号 5G
1.应用层数据 APDU ApplicationProtocolDataUnit 应用协议数据单元
2.传输层数据 segment DU 分段数据
3.网络层数据 packet DU 包数据
4.数据链路层 frame DU 帧数据
5.物理层数据 bit DU 比特数据
应用层:
HTTP/超文本传输协议
SSH/远程链接协议
FTP/文件传输协议
SMTP/简单邮件传输协议/Email
DNS/域名服务/ 将域名 www.linuxcool.com转换成 ip 地址
物理层:
信号
介质 双绞线 光纤
链路层:
MAC地址 Media Access Control Address 媒体访问控制地址
12位 16进制数字
地址:00-21-cc-c3-8c-B0 物理地址不可变化 每台设备都会有一个
帧封装:00-00-00-00-00-AA 00-00-00-00-00-BB HELLO
交换机工作原理 学习/广播/转发/更新
switch mode trunk
超过254个员工,用b类地址
两个通信对象不在同一个网段是不能直接通信的。
两个不同网段需要通信,中间必须要有路由器
路由器分割了广播域,不会扩散广播。
包封装:
IP地址和数据的关系160位二进制,包含ipv4 目标地址 源地址
计算发现 访问的是其他网段把这个数据包丢给网关(路由器)
如果是本网段就直接交给交换机了
FTP Server
File Transfer Protocol 文件传输协议
软件包名称vsftp
控制端口 command 21/tcp
数据端口 data 20/tcp
配置DNS 域名解析 必须是DNS1 或者DNS2 不能单独DNS。
安装: yum install -y vsftpd
准备:systemctl start vsftpd
开机启动:systemctl enable vsftpd
搭建文件仓库 : touch /var/ftp/1.txt
FTP服务器的主目录已经锁定,不能够随便放置
关闭防火墙
用客户机去下载: ftp:\\192.168.188.100
如果客户机是命令行界面的话:yum -y install lftp
mirror 下载文件夹
都是下载到当前页面
wget 访问服务器,可以识别http ftp 所以声明明确
wget ftp:\\192.168.188.100\1.txt
启动上传功能
1.配置文件 vim /etc/vsftpd/vsftpd.conf
2.annoymous_enable=YES 可以匿名访问
3.配置上传指令 anon_upload_enable=Yes anon_mkdir_write_enable=Yes
4.mkdir /var/ftp/upload chmod 777 /var/ftp/upload/
yum -y install nfs-utils
mkdir /webdata
yum -y install traceroute
traceroute 是跟踪数据包经过的每一个网关
rount -n 查看本机的路由表
ip r d default 删除默认网关
ip r del 192.168.1.188.0/24 手动删除网关
ip r add default via 192.168.188.2 dev ens33 手动添加网关
systemctl enable httpd 必须设置开机自启
罗斯福查看端口的命令
lsof -i:80
tailf /var/log/messages 动态查看后几行
Jumpserver 跳板机,是公司服务器链接到用户主机途中的跳板机器,因为直接连会不安全。
cat /etc/vsftpd.conf | grep -v ^# 查看非# 注释内容
db_load -T -t hash -f user user.db 创建数据库,将虚拟账号和密码 储存在数据库中。
vim /etc/pam.d/vsftpd.vu
前提是两台机器能互通
lftp 192.168.188.100
get 1.txt 下载
put 2.txt 上传
exit 退出
mirror pub 下载目录
NFS 文件共享系统
前提服务是rpc网络协议
rpc是一种屏蔽网络编程直接实现两台机器远程共享
配置本地域名解析
vim /etc/hosts
192.168.188.100 boss
192.168.188.104 client
yum -y install nfs-utils (boss and client)
systemctl stop firewalld
systemctl restart rpcbind (先决,boss and client)
systemctl restart nfs-serve.service
配置NfS共享名单
yum /etc/exports (boss)
/data 192.168.188.0/24
mkdir /data (boss and client)
mount -t nfs boss:/data /data
umount -t nfs boss:/data /data
开机自起
vim /etc/fstab
boss:/data /data nfs defaults 0 0