学习要学会实操,总结,分享~
操作系统是控制硬件和支持软件运行的计算机程序,只有安装了操作系统计算机才能正常运行使用。
定义数组:()用来定义数组,用空格分开。
a=(1 2 3 4 5)
获取内容: / a [ / ∗ ] 或 / {a[/*]} 或/ a[/∗]或/{a[@]}
获取长度:echo ${#a[*]}
特殊符号的使用:
centos 7 以后可以直接通过图形化界面直接配置。
命令:setup
通过setup工具设置ip地址。注意激活onboot=yes,即值为*号。若没有配置onboot则会导致ifconfig无法显示网卡.
远程linux系统的工具:xshell,putty,SecureCRT
安装linux系统后,通过ls出现的三个安装日志文件:
1、/root/install.log :存储了安装在系统中的软件包及版本信息
2、/root/install.log.syslog:存储了安装过程留下的事件记录
3、/root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程中设置的选项信息
1.linux严格区分大小写
2.linux下一切皆文件
3.linux不靠扩展名区分文件类型(根据习惯来说,能拓展名区分的,就写扩展名更好明确文件类型,例如:.gz 、.zip、.tgz等);程序文件:shell脚本一般用.sh结尾;c语言文件一般用.c结尾等;网页文件也最好些扩展名。如:.html 、 .php等
4.linux中所有的存储设备都必须在挂载之后才能使用 。
5.windows下的程序不能直接在linux中使用
目录名 | 目录的作用 |
---|---|
/bin/ | 存放系统命令的目录,普通用户和超级用户都可以执行,是/usr/bin/目录的软链接 |
/sbin/ | 存放系统命令的目录,只有超级用户才可以执行,是/usr/sbin/目录的软链接 |
/usr/bin/ | 存放系统命令的目录,普通用户和超级用户都可以执行 |
/usr/sbin/ | 存放系统命令的目录,只有超级用户才可以执行 |
/boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件,启动引导程序等 |
/dev/ | 设备文件保存位置 |
/etc/ | 配置文件保存的位置。系统内所有采用默认安装的服务配置文件保存在这。如用户信息,服务的启动脚本 等 |
/home/ | 普通用户的家目录。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的家目录,所有普通用户的宿主目录就是在home目录下建一个用户名相同的目录,如user1的家目录是/home/user1/ |
/lib/ | 系统调用的函数库保存位置。 |
/lib64 / | 64位函数库保存的位置 |
/lost+found / | 当系统意外崩溃或者以外关机,产生的一些文件碎片放在这里。当系统启动的过程中fsck根据会检查这,并且修复已经损坏的文件系统。这个目录只在每个分区中出现,例如:/lost+found就是根分区的备份恢复目录 |
/media/ | 空目录,原来挂载光盘 /软盘 |
/misc/ | 空目录,用来挂载NFS访问的共享目录 |
/mnt/ | 空目录,用来挂载目录的,额外的设备如u盘,移动硬盘等。 推荐:一般所有的挂载操作都是在/mnt下新建个目录挂载 |
/opt/ | 第三方安装的软件保存的位置,目前开发一般是装在/usr/local/下 |
/proc/ | 虚拟文件系统。目录中的数据不包吃在硬盘中,而是在内存中。主要保存系统的内核、远程、外部设备状态和网络状态等。如/proc/devices是保存设备驱动的列表的 ; /proc/net是保存网络协议信息的 |
/sys/ | 虚拟文件系统和 /proc相似 |
/root/ | root的宿主目录,直接在/下;普通用户宿主目录实在/home下 |
/run/ | 系统运行时产生的数据,如ssid,pid等 |
/srv/ | 服务数据目录 |
/tmp/ | 临时目录 |
man 命令助手
date 查看时间
date +'%Y-%m-%d %H:%M:%S’以这种格式查看时间
date -s 2020-7-7 22:22:22 设置系统时间为一个具体时间值
uname -m 查看处理器架构
uname -r 查看内核版本
cat /proc/version 查看内核版本
cat /proc/cpuinfo 显示cpu信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 查看内存信息
cat /proc/mounts 显示已加载的文件系统
cat /proc/net/dev 显示网络适配器及统计
查看有几个cpu : cat /proc/cpuinfo | grep physical
查看cpu的核数:cat /proc/cpuinfo | grep processor
查看内存信息:cat /proc/meminfo
查看内核信息:cat /proc/cmdline
hostname 查看主机名
kill PID 关闭进程
kill -9 PID 强制关闭一个进程;查看PID netstat -anp
crtl c也可以关闭进程
只有own和root才有权限结束进程
netstat -anp(a 表示连接中的socket;n代表端口数字 ; p显示建立连接的进程信息)
和grep一起使用 :netstat -anp | grep :80 查看80端口是否被使用
查看端口占用 :lsof -i:8080 (???查不到任何信息? 需要安装才可用:yum install lsof -y)
ps (process static)查看进程运行情况
ps aux 查看所有的进程数据
ps -ef 查看进程的状态
ps -ef | grep 'aaa’结合管道符过滤关键内容,可以多次使用 |grep ‘a’ | grep ‘b’
ps aux 查看进程的详细信息
父程序复制自己的地址空间(fork),创建一个新的子进程结构
ps -aux --sort -pcpu
根据cpu占用情况来显示进程
ps aux --sort -%cpu ----------------若是要查看内存就是-%mem
按照cpu占用比进行排序
查看某个进程的端口号
1)先查看进程号
ps -ef | grep 进程名
2)查看进程占用的端口号
netstat -nltp | grep 进程PID
netstat -anp
查看所有开放的端口号
netstat -nltp | grep port_number
查看某个具体的端口号情况
ps命令主要看静态进程
top主要看动态进程,实时查看。
top -d 3 -p 3029,2938
每隔3秒显式这两个pid的进程信息
top -p port_number
实时查看某个进程的cpu使用情况
kill -9 PID 强制杀死进程
kill -15 pid 正常终止进程
nice -n -5 sleep 7000 &
调整优先级;&表示后台运行
jods 代表查看后台进程
free 查看内存的情况
df -h 显示已经挂载的分区列表
du -sh dir1 显示目录dir1已经使用的磁盘空间
shutdown -h 10:00 定时关机:10点关机
halt \ init 0关机
power off 关机
reboot重启
cd /home 进入home目录下
ls 查看当前目录信息。只能查看一层目录信息
ls -l 以标准格式显示文件和目录权限等信息
ls -a 显示隐藏文件
pwd查看当前目录路径
clear 清除终端显示内容
mkdir 目录名;创建新的目录
mkdir {dir1,dir2,dir3}
同时创建多个目录
mkdir -p dir1/dir2/dir3 创建一个多层级的目录
rmdir dir1 删除目录
mv adc /tmp/ 将abc文件移到临时文件下
相对路径就是当前的路径,如./;绝对路径就是/下的路径例如:/home/tmp/log
管道符:|
FD :file discribt 文件描述符,也叫访问文件的标志,即链接文件,省去冗长的绝对路径。
0表示键盘只读;1,2表示终端;3+使文件,可读可写
输出重定向:>
date 1>time.txt 将时间标准输出到time.txt文件。会将原本的内容清空,再写入新的内容
date 1>>time.txt 追加信息,会保留原来的信息
当某条命令产生错误时,才会有错误输出
ls 2>3 2>error.txt 将错误的信息重定向到error输出
‘>>’追加输出 :
head -10 /tmp/log.txt>> /tmp/log.txt
将新增的log内容追加到文件内容中
输入重定向:<
tee管道:三通管道,即交给另一个程序处理,又保存一份副本
cat /etc/passwd | tee file1.txt
通过|xargs成功链接rm命令
cat files.txt | xargs rm -rvf
df -i 查看一个文件能创建多少个inode,inode决定了文件系统中文件的数量。
RAID:廉价磁盘冗余阵列;作用:容错,提升读写速率
RAID1:镜像卷,2块磁盘,容量50%
RAID5:至少三块硬盘,容量
touch用来创建库文件或者修改文件时间
touch file1,file2;
rm -f file 强制删除file1文件
rm -rf dir1 强制递归删除目录及该路文件(不可恢复),也就是删除dir及dir内的所有文件
r表示递归删除; f表示强制删除 ; i 表示交互删除,在删除之前会询问用户
删除
stat 显示文件或文件系统的详细信息
stat file
cp 复制命令
cp 文件a b c /路径 将文件a, b , c 复制一份放到该路径下
cp -r /var/log 新路径 复制/var/log 目录及目录中的文件到新路径下(文件夹一定要加 -r 才能复制成功)
cp -r f1 dir1 /tmp 复制文件及dir目录到/tmp下
cp f1 /tmp/newf1 复制f1到tmp目录下并重命名为newf1
mv 文件a 路径 将文件a移动到某路径下
mv f1 f2 d1 /tmp 将多个文件移到tmp下
mv f1 /tmp/new_f1 移动并重命名
grep ‘文件内容关键字’ /aaa/as 搜索该路径下文件的关键内容 (在文件中命令模式下用 “ / 关键字” 来搜索)
grep ‘root’ -r /var/log 递归搜索“root”
mv 文件a 路径/new1 将文件a移动到某路径下并重命名
文件查找:
1.which:查找命令的位置,直接which+命令;例如:which cat
2.find : 文件查找,针对文件名。find / -name “myfile” 在跟目录下查找名字为myfile的文件
按照文件名查找文件:
find / -name “myfile”
按照目录深度查找权限:
find / -maxdepth 3 -a -name “myfile”
按照文件大小查看:
find / -size 5M
按照文件的属主、属组查找:
find / -user pengqi
find / -group peng
按照文件类型查找:
find / -type l
l代表软链接
d代表文件夹
f代表普通文件
按照权限查找
find ./ -perm 777 -ls
-ls是精确权限
find ./ -perm 777 -delete
找到文件后删除
find / -name “peng” -ok cp -rvf {} /tmp ;
在根目录下查找文件名为peng的问津,并且将其复制到、tmp目录下
ok是连接符;{}是引用find的内容;\;是结束标志;
find / -user root 搜索属于用户root的文件和目录
find /tmp -name “*.bin” 搜索已bin结尾的文件
复制文件file1到临时目录下,并重命名:cp file1 /tmp/file2
cat 查看文件内容-------不适合查看大文件,
-A 几个选项的集合,用于显示所有的文件内容及特殊字符 ;-n表示显示行号;-v列出特殊字符:例如回车会显示为$
从第一行开始查看文件file1的内容(适合短文件)
tac file1 :直接从文件最后的内容显示
more 分屏显示文件,上下翻页查看
空格向下翻页; b向上翻页
less也是分页显示,道理同more,但是操作方便,可以通过上下键翻页(支持查看长文件)
head显示文件头几行:
head -n 20 file11; 也可以写成 head -20 file11;
显示前20行内容 。默认显示前10行。
tail显示文件后几行,默认后十行
tail -n 20 file22 ; 也可以写成 tail -20 file22;
显示文件末尾20行
tail -f /log/message:
-f表示监听文件新增的内容,例如一个窗口修改内容,另一个窗口能实时同步到修改的信息。
lrwxrwxrwx.1 root root 7 Dec 12 18:38 bin->usr/bin
软链接 权限 所属主 所属组
.表示是这个文件是受SElinux(美国安全局)所保护的
权限解释:
x:文件的执行权限
例如写一个简单的程序,然后通过./文件名就能执行
读:表示可以读取文件的数据。即可以对文件执行cat,more,less head ,tail等文件查看命令
写:可以对文件内容进行修改。即可以对文件执行vim,echo等修改文数据的命令。
注意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。原因:该文件名对于上级目录来说就是他的数据,如果有写的权限,那么它就可以对自己的文件内容进行增加,删除操作。
执行:可以对文件进行执行,运行。Linux中,只要文件有执行权限,那这个就是执行文件。对文件来说,执行权限是最高的权限。
读:表示可以查看目录下的内容,执行ls命令查看
写:可以对目录内容进行修改,新增,删除,赋复制,剪切。可以执行touch ,rm,cp,mv命令。对目录来说写是最高的权限。
执行:目录不能运行,对目录来说执行权限表示可以进入目录。可以通过cd进入目录。
目录只有3个权限:
0:没有任何权限
5:只有读和执行权限
7:最高权限,读写执行
umask默认权限:
创建文件或是目录时,系统赋予的默认权限
文件的默认最大权限是666,而umask值是022
目录的默认最大权限是777,而umask值是022.
1.通过+增加权限,-取消权限
chmod u+x test
chmod u-x,g-w test
2.通过数字更改权限 :4代表r读;2 代表w写 ; 1代表x执行权限
chmod 777 test #最大权限,一般没有这么大的权限
chmod 755 test
chown user1 bcd #修改文件所有者
chown root:group test #chown可以同时修改所有者和所属组
修改所属组的第二种方法:chown . 组名 文件名
修改权限时,想要该目录下的所有文件权限都变更,可以使用-R
chgrp 修改所属组
注意:普通用户可以修改所有者是自己的文件的权限;但是普通用户不能修改文件的所有者,只有超级用户才能修改。
tar -cvf /tmp/peng.tar peng
将peng文件打包为peng.tar保存到tmp路径下
tar -xvf peng.tar /tmp/yang/
将peng.tar 文件解包到tmp/yang路径下
bzip2 file1 压缩file1文件
bunzip2 file1.bz2 解压文件
gzip file1
gunzip file1.gz解压
打包文件:
tar -cvf ab.tar a b 将ab文件打包在一起
tar -tvf ab.tar 查看包的内容
tar -xvf ab.tar 解包
tar -xvf ab.tar -c /tmp/ 将ab包解压到tmp下
打包压缩的两种方式:
bzip2方式,用参数j:
tar -cvfj b.tar.bzip2 b
tar -xvfj b.tar.bzip2
gzip打包,用参数z:
tar -cvfz a.tar.gz file1
tar -xvfz a.tar.gz
zip压缩包
zip file1.zip file1 多个文件目录加参数-r循环递归
unzip file1.zip
一般用于文件安装包或项目文件解压
access control list 限制用户对文件的访问。是上面UGO的补充。UGO是针对同一个用户、一个组和其他人的操作;ACL是对不同用户设置不同的基本权限。对象的数量不同。
setfacl -m u:用户名:rwx 文件路径
设置文件访问控制(set file acl )
setfacl -x u:用户名 文件路径
删除文件的某个用户的权限
特殊点:设置其他用户的权限:setfacl -x o::rwx 文件路径
watch -nl ‘ls -l 文件路径’
每个1s会刷新最新的文件权限状态
suid是针对文件所设置的一个特别的权限
功能:使正在登录的调用文件的用户,临时具备属主的能力。
给cat提权后,所有的普通用户都可以访问
chmod u+s /usr/bin/cat
chattr -i file11 设置文件权限只读,并且所有的用户对该文件不可随意更改
1、用户基本信息文件------重点
etc/passwd
内容讲解:
root: x:0:0:root:/root:/bin/bash
root表示此时登录系统的用户名;
x表示密码占位符
0表示UID:用户身份证明
0表示GID:group组号
root表示描述
/root表示家目录:登录系统所在的位置
/bin/bash允许登录shell:命令解释器
拒绝某个用户登录系统:
usermod -s /sbin/nologin user01
直接不允许user01登录shell即可
2、用户密码信息文件
/etc/shadow
3、组信息文件
/etc/group
useradd user11
useradd -d user01
在家目录下创建用户user01用户
如果-d无法创建,修改为-m就能正常创建了。ps:在man useradd文档中,会发现,-m可以在系统创建用户主目录,只要主目录下没有存在同样的用户即可创建成功,也有点强制创建的意思。
userdel -r user01
删除user01家目录下所有的内容
查看用户信息:id 用户名
修改用户密码:passwd
若当前用户是超级用户,修改别人的密码是:passwd 用户名,然后输入新的密码
usermod -g roger jack : 将jack更改为roger组
passwd roger:给roger设置登录密码
组的类型:基本组和附加组
1.基本组:随用户创建而创建,组名同用户名。
2.附加组:将某个用户放到多个组中,这个其他组就是附加组,一个用户的附加组可以有多个。
组是基于用户来说的!!
例如:user1的基本组是userA,此时将user2加到userA中,此时user A对于user2来说就是附加组。
usermod AAA -g CCC // 将AAA的基本组修改为CCC组
g 是指定基本组
G用于指定附加组。
将AAA添加到DDD组:usermod AAA -G DDD
可以通过具体的附加组查看他的附加用户
groupadd employee
创建组用户的信息在/etc/group下
创建组net01 并指定设置gid为2000
groupadd net01 -g 2000
删除组:groupdel net01
将user1从附加组hq中删除
gpasswd -d user1 hq
su和sudo区别
su: 普通用户切换到超级用户权限,可以做某些需要高级权限的操作。此时还是在普通用户下的。使用su需要知道管理员密码,安全性没有保障。
sudo:临时给用户超级管理员的部分权限。sudo能够更好分工,仅仅要配置好/etc/sudoers,这样sudo能够保护系统更安全,并且分工明白,有条不紊。
测试自己是否有sudo权限?
sudo whoami
运行以上命令,提示出入该用户名密码,若打印root那么表示该用户有sudo权限了
添加sudo权限的方法:
方法一:将用户添加到sudoers文件中,包含定义了这个用户或者用户组被授予了sudo权限,以及权限的级别。
第一种方式:以root身份运行vi soduers ,然后给用户添加权限,最后输入 :wq! 强制保存即可
第二种方式:在sudoers.d下创建一个文件,设置用户权限即可。----------还没搞太懂该怎么设置,文件类型是否有差异,待验证。。。
方法二:将用户添加到sudo用户组(已经在sudoers文件中定义了)。例如centos 7 中是wheel用户组被授予sudo权限。所以只要将用户添加到该用户组即可。
操作:以root或者其他有sudo身份的用户运行:
usermod -aG wheel username
注意:username修改为自己要添加的用户名称。
参见:https://cloud.tencent.com/developer/article/1626786
ls 查看当前路径下所有文件
ls -l 查看文件权限
在这里插入图片描述
第一个“-”代表是文件类型rwx:读写执行权限
ls -lh 显示权限
+是权限赋予,—是撤销权限
r 读 ; w 写 ; x 执行
u所有人 ; g群组 ; o其他人
修改权限的三种权限设置:
①chmod u=rwx dir1 给所有人dir1的所有权限
chmod g-wx dir1 针对群组人员删除写和可执行权限
②chmod g+x dir1,针对组,赋予可执行权限
③chmod 777 dir1 给dir1所有人所有权限(r:4 ; w:2 ; x:1)
chown user1 file1 将file1给user1所有者用
chgrp修改组用户
chgrp test file1 将file1修改为test组的文件
chown修改拥有者
chown roger dir1 将dir1的拥有者修改为roger用户
chown roger : roger dir1 将组用户和拥有者同时修改为roger
whereis 搜索系统命令
会显示帮助文档,和二进制命令。
which命令
可以搜到二进制命令的同时,还可以找到别名命令
locate命令:按照文件名搜索普通文件
语法:locate abd 搜索abd文件
优点:按照数据库搜索,搜索速度快,消耗资源小,数据库位置/var/lib/mlocate/mlocate.db
缺点:只能按照文件名搜索文件,不能执行更复杂的搜索,比如按权限,大小修改时间等搜索文件。
find 按照文件名搜索
find / [选项] 搜索关键字
选项:
-name 按名字搜索
-iname 按照文件名搜索,不区分文件名大小写
-inum 通过Inode来搜索
-size 按照文件大小搜索(注意单位)
练习:
find / -name abd
find / -size 210M
按修改时间搜索
。。。待补充
按权限搜索
find 搜索路径 【选项】 搜索内容
选项:
-perm 权限模式:查找文件权限等于权限模式的文件
-perm -权限模式:查找文件权限全部包含权限模式的文件
-perm +权限模式:查找文件权限包含权限模式的任意一个权限的文件
按所有者和所属组搜索
find 搜索路径 【选项】搜索内容
选项:
-user 用户名:通过用户名查找所有者指定用户的文件
-group 组名:
-nouser :查找没有所有者的文件
按照文件类型搜索
find 搜索路径 【选项】 搜索内容
u新安县:
-type d:查找目录
-type f: 查找普通文件
-type l : 查找软链接文件
grep:
grep ‘^a’ 2.txt -n 查找以a开头的内容,并显示行号
find和grep的区别:
find用于系统中搜索符合条件的文件名;不支持管道符使用。主要用于搜索匹配条件的文件。
grep用于在文件中搜索符合条件的字符串,需要模糊查询,可以结合正则表达式进行匹配,搜索时字符串时包含匹配的。
管道符:|
文本流
netstat -an |grep ESTABLISHED |wc -l
查找当前连接的设备并统计
alias别名
例如:alias grep=‘grep --color=auto’
只能临时有效,想要永久生效,需要写入环境变量配置文件:~/.bashrc
whatis ls #查看命令级别的帮助
info 也是帮助命令
vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版。vi没有颜色标记,vim有颜色标记,防止修改拼写错误。
命令 | 作用 |
---|---|
i | 在光标所在字符前插入 |
I | 在光标所在行首插入 |
a | 在光标所在字符后插入 |
A | 在光标所在行尾插入 |
o | 在光标下插入新行 |
O | 在光标上插入新行 |
2.输入模式:主要用于文本编辑和记事本类似。
3.编辑模式:
:w 保存 如果要另存为新文件则是:w 新文件名
:q不保存退出
:wq保存退出 (或者x)
:!强制
:q!强制不保存退出,用于修改文件之后,不保存数据退出。
:wq!强制保存退出。只有root用户或是文件所有者,对文件没有写权限的时候,强制写入数据使用。
实操:
①vi file1 打开file1查看------命令模式
②按i / a / o 进入编辑模式,对文件进行编辑;
③按esc退出编辑模式,进入目录模式
④按:进入底线模式,此时按/关键字,可以进行关键字的搜索
⑤按:%s/123/456/g将123的所有内容替换成456
⑥按:wq 保存退出 q!强制退出 q 退出
打开文件时:dd 删除行 yy复制行 p 黏贴复制的内容 u:撤销
注意:
set nu 设置行号 set nonu 取消行号
*代表0或多个字符 ; .点代表匹配任意字符;?表示匹配1个或者0个字符; ’ ^abc’ 或者 ’ [abc]’ 以abc开头的 ;‘[^abc]’ 才是不以abc开头的文件
g* 以g开头的 date*.txt 以date开头.txt结尾的 date ???.txt 中间有3个任意字符 env 查看环境变量
光标移动:
上下左右移动光标,分别是hjkl
光标移动到文件头gg;移动到文件尾G
光标移动到行首:^ ; 移动到行尾$
指定到某行 :n
dd删除或是剪切整行
ndd:删除或是剪切多行
p粘贴到光标后;P(大写)粘贴到光标前
当在通过vim编辑文件时,由于意外退出,系统会产生一个临时文件,也是隐藏文件。这时候重新打开该文件要编辑的时候,会发现报错,无法编辑。
解决方法: 删除临时文件即可。
多文件同时打开
vim -o abc bcd
-o:两个文件上下分屏显示
-O(大写):两个文件左右分屏显示
通过先按ctrl+w,再按左右箭头在两个文件之间切换
ln 在文件之间建立连接
例如:ln abc /tmp/abc1 建立连接,将adb文件链接到tmp目录下
软硬链接的区别:
ln abc /tmp/abc1 建立硬链接,将adb文件链接到tmp目录下
ln -s /etc/cde /tmp/cde2 软链接的源文件一定要写绝对路径
软链接适用场景:
1、目录层级很深的时候
2、用软链接是为了照顾管理员的使用习惯,可能升级需要,放在了新的位置,但是管理员已经习惯了旧文件位置,此时就很方便了。
硬链接:防止数据被删除。一个删除后,另一个链接还可以访问。
linux只有两种包:源码包、二进制包。
如果服务是给大量客户端提供访问的,建议用源码包,源码包效率更高(LAMP)
如果程序是给少量用户访问,或是本地使用的,建议用RPM包,因为管理方便。
rpm -ivh 包全名 #注意一定是包全名。如果跟包全名的命令要注意路径,因为软件包在光盘当中
选项:
-i : install安装
-v : 显示更详细的信息
-h : 打印#显示安装的进度
RPM包安装的apche
1、启动:
1)service httpd restart
2)/etc/rc.d/init.d/httpd start #标准启动方式
2、网页位置
/var/www/html
3、配置文件
/etc/httpd/conf/httpd.conf
rpm包升级和卸载:
1)安装升级:rpm- Uvh 包全名
2)卸载:rpm -e 包名
查询:
1)rpm -q 包名 :查询是否安装
2)rpm -qi 包名 :查询包信息
3)rpm -ql 包名 : 查询软件包中所有的文件列表和软件所安装的目录
4)rpm -qf 系统文件名: 查询系统文件属于哪个包
yum list
查看yum源服务器上所有可安装的软件包列表
yum list 包名
查找某个包名
yum search 关键字
通过关键字查找相关的软件包
yum install mysql -server
yum remove mysql-server
yum list installed 找出已安装的软件
安装软件:yum -y install 包名
升级软件:yum -y update 包名
在升级时,yum源服务器中软件包的软件要比本机安装的软件包版本高。
卸载指定软件包:yum remove 包名
一般不建议卸载,卸载的东西如果依赖性很强可能导致系统崩溃。
是否可以在系统中安装rpm包的apache,又可以安装源码包的apche?
可以! 因为两种安装方法安装的apche位置不一样,例如:
rpm包默认安装位置:
配置文件:/etc/httpd/conf/httpd.conf
网页位置:/var/www/html
日志位置:/var/log/httpd
启动方法:service httpd restart
源码包:必须指定安装位置(源码包没有安装数据库,没删除命令)
配置文件:/usr/local/apache2/conf/httpd.conf
网页文件:/usr/local/apache2/htdocs/
日志位置:/usr/local/apache2/logs/
启动方法:/usr/local/apache2/bin/pachectl start
机械硬盘:传统普通硬盘,主要是由盘片转轴,磁头控制器,数据转换器以及控制电机等其他几部分组成
固态硬盘:用固态电子存储芯片阵列而制成的硬盘
二者区别:传输速度,读取速度,写入速度,以及价格的不同。
磁盘命名:
SATA(串口):
IDE(并口):/dev/hda ; /dev/hdb
两种分区表形式:
分区的类型:
磁盘的使用:首先分区------> 格式化 / 文件系统 -------> 挂载mount
怎么给系统添加硬盘?
一般系统默认只有sda硬盘,需要更多的磁盘使用,需要通过手动添加新的硬盘使用,操作见下:直接傻瓜式添加默认下一步操作即可
注意事项:
1.需要在虚拟机关机的情况下才能添加。
2.需要修改默认大小,最好不要默认20G。太大了格式化慢。
方式二:lsblk
第一块磁盘空间为20G,分割为5个磁盘,大小分别见下
2.创建分区
MBR主引导启动记录(分区)
启动分区根据 fdisk /dev/sdb
1)分区命令1:fdisk /dev/sdx x代表你想要分区的磁盘
2)进入会话模式:按n开始分区,提示分主分区还是扩展分区,选择p;分区编号1-4自己设置;回车进入设置起始扇区,起始扇区其实就是MBR;last,结束扇区;设置扇区大小 +2G;w写入并保存分区信息到linux;
3)partprobe /dev/sdb 刷新分区表
4)查看分区结果:fdisk -l /dev/sdb
3.创建文件系统
mkfs.ext4 /dev/sdb1
新创建的分区都需要格式化才能存数据
4.挂载文件
创建挂载路径:mkdir /mnt/disk1
mount -t ext4 /dev/sdb1 /mnt/disk1
5.查看挂载信息
方法一:df -hT显示磁盘分区信息
逻辑卷LVM
管理磁盘的一种方式;可以随意扩张大小
术语:PV 物理卷;VG卷组;LV逻辑卷
创建LVM
VG管理
LV扩容
swap管理分区:
作用:提升内存的容量,防止内存溢出。
1.先创建一个分区,然后将其改为交换分区类型
fdisk /dev/sdc
2.格式化分区
mkswap /dev/sdc3
3.挂载:swapon /dev/sdc3
4.验证:free -m 查看增加后的交换分区,实际空间变大了
注意:
在挂载时创建的文件,此时只会显示挂载下创建的文件,若本身挂载路径下有文件不会显示出来。取消挂载后才能看到原始路径下创建的文件。
linux中所有的存储设备都有自己的设备文件名,这些设备文件必须挂载之后才能使用,包括硬盘(自动挂载)、U盘和光盘(需手动挂载)。
挂载其实就是给存储设备分配盘符,linux的盘符其实就是一个已经建立的空目录,即挂载点。把设备文件和挂载点连接的过程叫挂载。
必须分区
① / ( 根分区)
②swap分区
- 如果真实内存小于4GB,swap为内存的两倍
- 如果真实内存大于4GB,swap和内存一致
- 实验环境,不大于2GB
推荐分区
① /boot(启动分区,1GB)---------必要的分区
常用分区
① /home (用于文件服务器)
② /www(用于web服务器)
格式化是为了写入数据到文件系统
/dev/sdb5 表示:第二块SATA接口硬盘的第一个逻辑分区
RPM包管理(Ret hat package manager)
核心配置目录:/etc/yum.repos.d/
操作:
1.删除官方YUM库
2.编写本地YUN配置文件
3.挂载安装光盘
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
挂载完后,在/mnt/cdrom下会有很多rpm包
需注意:光盘一定要处于开启并且上电状态
vi /root/.bashrc
bashrc中的内容,系统开机后会自动执行
4.使用YUM安装和卸载程序
全新安装:yum -y install httpd vsftpd
重新安装:yum -y reinstall httpd
查询http程序:yum list httpd
删除包:yum -y remove +包名
5.模拟客户机访问
RPM安装:
cd /mnt/cdrom/Packages
rpm -ivh wgetxxxx.rpm
i表示install
v表示可视
h表示安装进度百分比
查询:rpm -q wget
卸载:rpm -evh 包名
优缺点:
1.rpm存在包依赖,安装比较麻烦,但是不需要配置!!!;yum会自动安装依赖包
2.RPM包:二进制包,无序编译,直接可以执行使用
3.源码包:需要编译环境才能运行;配置复杂;
源码包管理方法
步 骤:
先准备好编译环境
1.解压包:
useradd www
tar -xvf xxx.tar.gz
cd xxxx
2.配置:
./configure --user=www --group=www --prefix=/usr/local/nginx
3.编译:make
4.安装:make install
然后启动测试
可能存在的问题:
1)安装过httpd服务,直接启动nginx会有冲突,请确保关闭httpd
2)可能无法访问网络,关闭防火墙设置:systemctl stop firewalkd
一次性调度执行at
at now+2min
atq 查询任务
循环调度执行cron
cron table表命令,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。
ps aux | grep crond 查看程序是否运行
计划任务存储位置:ls /var/spool/cron/
cron后台常驻程序daemon主要用于:
1.负责文件在网络中的共享
2.管理打印子系统
3.跟踪管理系统信息和错误
4.管理系统日常任务的调度
管理方式:crontab -e 设置任务
job format 语法格式 | 含义 |
---|---|
*/5 * * * * /mysql_bash .sh | 任务每5min执行一次 |
0 2 1,4,6 * * ls -l/var/spool/cron | 每月的1,4,6日的2点执行任务 |
0 2 6-9 * * / ls -l /var/spool/cron | 每月的6-9日的2点执行任务 |
* * * * * (分,时,日,月,年) | 时时刻刻都在执行的任务 |
0 * * * * | 每小时的0分整执行任务 |
0 2 * * * (也可以写成00 02 * * *) | 每天的2点整执行任务 |
0 2 14 * * (也可以写成00 02 14 * *) | 每月的14号2点执行任务 |
0 2 ** 5 | 每周5的2点执行(不写月日时,仅周生效 ) |
0 2 2 6 5 | 每周五,并且6月2号的2点执行 |
1.日志进程rsyslog
常见日志文件(系统,进程,应用程序)
tail -10 /var/log/messages 系统日志文件
tail -f /var/log/secure 查看时时的安全相关log
tail - f /var/log/yum.log查看yum安装的log
tail -f /var/log/dmesg 查看和系统启动相关的log
rsyslogd配置:
1) 安装相关程序,一般默认安装了 :yum install rsyslog logrotate
2)启动程序 systemctl start rsyslog.service
3)查询软件包的安装情况 rpm -q rsyslog
重点:/etc/rsyslog.conf 主配置文件(程序,log级别,文件位置)
/etc/sysconfig/rsyslog
/etc/logrotate/log
log_info标准的log信息
修改配置文件后,绝对不能重启服务器,直接更新配置即可
kill -1 PID 重新加载程序
想要修改默认的程序产生的文件,在etc/rsyslog.conf的rule下修改路径即可
2.日志轮转logrotate
日志轮转指的是记录最后一段时间发生的事。原因:磁盘空间有限!
主文件路径:/etc/logrotate.conf(决定每个日志文件如何轮转)
log日志的设置:
vi /etc/logrotate.d/yum
根据需要设置以下配置
查看ip :ifconfig
ip -4 addr
ip -6 addr 查看ipv6地址
service network start 启动网卡
service network stop 禁用网卡
service mysqld status 查看数据库状态
putty远程连接虚拟机的根据; winscap:连接windwos和linux的工具。
1.获取20s内某个进程每秒内存百分比占用数据,并算出平均值
for i in $(seq 20); do ps -o %mem -p 1 |tail -l;sleep 1;done |awk '{t+=$1;print $1,t/NR}'
2.利用top获取某个进程的cpu和内存,并打印平均值
top b -d 1 n 5 -p 2649 |awk '{cpu+=$9;men+=$10}{print $9,cpu/NR,$10,mem/NR}'