梦最开始的地方,《一周学会Linux实战》韩顺平---视频笔记。到shell之前

介绍软件:

linux下开发项目:JavaEE,大数据,python PHP,c/c++,go 
linux服务器领域最强(免费高效稳定)
linux主要发行版:Ubuntu,RedHat、CentOS,Debain蝶变,Fedora,SuSE,OpenSUSE

有关于设置VM设置

桥接模式:虚拟系统可以和外部系统通讯,但是容易造成ip冲突
NAT模式:网络地址转换模式。虚拟系统可以和外部通讯不造成ip冲突。
主机模式:独立模式。


虚拟机的克隆:1)拷贝一份完成文件,要关闭虚拟机,2)vm菜单局域网右键创建完整克隆
虚拟机快照:存档

常识性问题
/BIN存放经常使用的命令
/home存放普通用户的目录
/root该目录为系统管理员,也称超级权限者的用户主目录
/etc配置文件和子目录比如mysql
/boot安装linux的启动文件
/usr用户很多应用程序和文件都在这个目录下,类似于window下的program files目录
/proc【不能动】这是一个虚拟目录,他是系统内存的映射,访问这个目录来获取系统信息
/srv【不能动】该目录存放一些服务启动之后需要提取的数据
/sys【不能动】linux2.6内核的一个很大的变化,该目录下安装2.6内核中新出现的一个中文系统sysfs
/tmp 这个目录用来存放一些临时文件
/dev类似于windows的设备管理器,把所有的硬件用文件的形式储存
/media linux自动识别一些设备,列如U盘光驱等等,识别后linxu会把识别的设备挂载到这个目录下
/mnt系统提供该目录是为了让用户临时挂在别的文件系统,我们可以将外部的储存挂载在/mnt/上然后进入该目录就可以查看里面的内容了。d:/myshare
/opt 这是给在主机额外安装软件所摆放的目录。如安装ORACLE数据库就可以到该目录下。默认为空
/usr/local 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
/var 这个目录存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
/selinux 一种安全子系统 可理解为window360

下载xshell和xftp官网都有的

远程-xshell      文件下载-xftp

有关于vi和vim的简单说明 

linux 系统会内置vi 文本编辑器 vim是vi的升级版
正常模式 插入模式i 插入模式
#vim xxx进入一般模式 按i进入编辑模式 按esc 在命令下输入:wq
wq(保存退出)   q(退出) q!(强制退出不保存)
public class Hello {
public static vold main(String[] arg) {
System.out.printin("hello,world~”);

yy拷贝当前行 ,拷贝当前行向下的5行 5yy,并粘贴(输入p)
dd删除当前行,删除向下的5行 5dd
   查找文件单词(命令行)/关键词,回车查找,输入n就是查找下一个
:set nu(标记序列行数) :set nonu
一般模式下大写G文档末行 小写gg首行
一般模式下u撤销
一般模式下想要光标移动多少行 比如20行 (输入20在输入shift+g)

进入图形化界面的简单说明

ifconfig 查询id

shutdown -h now 立刻进行关系
shutdown -h 1      1分钟后关机
shutdown -r now  现在重新启动计算机
halt                       关机作用和上面一样
reboot                   现在重新启动计算机
sync                       把内存数据同步到磁盘
关闭前一定要sync保存

普通模式切位root su - root 
root切位普通用户  logout  (必须在xshell)里面进行


在root用户下 创建新用户 uesradd 用户名 
cd /home  
ls     

root用户创建用户在指定的文件下
useradd -d /home/test king   把king用户建立home/test文件下
给创建好的用户设置密码 passwd 用户名   用root账户修改同理
pwd是看当前用户的在哪个目录下

userdel 用户名   删掉用户保留目录 
 userdel -r 用户名  删掉目录不保留目录

查询root用户信息 id 用户名
exit或者logout都可以退出root到下一层用户(前提是之前登陆过)
who am i是第一次登录到用户的信息

clear清除当前的显示
groupadd 组名 创建小组
groupdel 组名 删除小组

useradd -g 组名 用户名 比如说添加一个张无忌用户到wudang
groupadd wudang
useradd wudang zwj

usermod -g 组名 用户名 这个用户之前有组重新归类到其他组(前提是必须保证现在这个组成立)
groupadd mojiao
usermod mojiao zwj 创建mojiao 把zwj归类到mojiao

/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行含义:用户名:口令:用户标识号:注释行描述:目录:登录Shell
Shell是什么?Shell负责帮我们输入的指令与linxu内核进行翻译,因为我们的指令linux不能直接识别 我们用的bash ,欧洲一般用tcsh csh
vim /etc/passwd 看用户信息

/etc/shadow文件
口令配置文件用户名:每行含义:加密口令:最后一次修改时间:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group
组的配置文件,记录linux包含的组信息每行含义:组名:口令:组标识号:组内用户列表

如何看shell
cd /bin/
ls
进入后输入ls -l *sh

运行级别的说明:
0:关机
1:单用户
2:多用户没有网络服务
3:多用户有网络服务
4:系统未使用保留给用户
5:图形界面
6: 系统重启
常用的级别运营是3和5,也可以指定默认运行级别。
init切换指令

Centos7以前在、/etc/inittab文件中
进行了简化,如下:
multi-user.target:analogous to runlevel 3
graphical.target:analogous to runlevel 5
systemctl get-default 看运行级别
systemctl set-default TARGET.target 设置运system
systemctl set-default multi-user.target

root密码忘记如何找回?
重启界面按e进入linux16后面输入rd.break 输入后crtl+x执行
输入mount -o remount,rw /sysroot
chroot /sysroot
passwd root
输入两次后
更新密码touch /.autorelabel
输入exit
再来一次exit

man+[命令或者配置文件] 功能描述:获得帮助信息
例如 man ls
linux下的隐藏文件是以.开头,选项可以组合使用比如ls -al,ls -al /root

help 命令 (功能描述)获得shell内置命令的帮助信息

pwd 显示当前工作目录的绝对路径 
绝对路径是从根目录开始找,相对路径从当前目录开始找

ls[选项][目录或文件]
常用的ls -a 显示当前目录的所有文件和目录,包括隐藏。
la -l:以列表的方式显示信息

cd[参数]功能描述切换到指定目录
理解:可以定位绝对路径和相对路径
cd ~或者cd :回到自己的家目录 ,比如你是root,cd ~到/root
cd ..回到当前目录的上一级目录
使用案例
使用绝对案例切换到root目录    ,cd /root
使用相对路径到/root目录,比如在 /home/tom,用cd ../../root
回到目录的上一级 cd ..
回到家目录 cd ~

mkdir 用于创建目录 
mikdir -p:创建多级目录

rmdir 删除空目录,有内容的话无法删除
 rm -rf 删除所有目录的文件不提示(要谨慎)
rm -f 删除不提示这个文件
 
touch建立空文件
例如:在home文件下建立touch hello.txt

cp为指令拷贝文件到指定目录 例如:cp hello.txt bbb把hello.txt文件放在bbb的文件下
cp -r递归复制整个文件夹
使用细节覆盖不提示:\cp
例如:cp -r /home/bbb/ /opt/把bbb文件整个下的文件复制到opt里  \cp -r /home/bbb/ /opt 

mv移动文件与目录 或者 重命名、
同一文件目录下为重命名
不同文件下为移动
比如:mv cat.txt pig.txt
mv pig.txt /root/cow.txt 意思是将pig文本移动到root,并且改名为cow.txt 
将整个文件移动mv bbb/ /root/将bbb文件整个转移至root

cat 查看内容不可以修改
cat [选项]查看的文件
cat -n 显示行号
| more为管道处理
例如cat -n /etc/profile
cat -n /etc/profile | more enter[进行交互]为看下一选项 空格是翻页

more为交互一般组合使用
space 翻页 
enter 向下翻
q  立刻离开move 不在显示该文件
ctrl+f 向下滚动一屏
ctrl+b 返回上一屏
= 输出当前行号
:f 输出文件名和当前行号 

less类似于more,比more更为强大。对大型文件拥有较高的效率
空白键 向下翻一页
[pagedown]向下翻下一页
[pageup]向上翻动一页
/字串      向下搜寻【字串】的功能; n:向下查找; N:向上查找
?字串   向上搜寻【字串】的功能; n 向上查找; N: 向下查找;
q离开less这个程序

echo输出内容到控制台
echo [选项][输出内容] 
比如 echo $PATH ,$HOSTNAME

head显示文件开头的部分内容 默认显示文件前十行
head 文件
head -n 5 文件      查看文件头5行 数字可以是任意数
例如:head -n 5 /ect/profile

tail显示文件最后十行
tail -n 文件  实时追踪该文档所有跟新内容
tail -n 5    文件 查看最后5行
tail -f 文件 实时追踪该文档所有跟新内容  监控的意思
例如:tali -f /mydate.txt就监控了这个文件之后我们就在vmware输入echo”hello“ > /home/mydate.txt   不想监控了就ctrl+c

>指令和>>指令
>输出重定向和>>追加
1) ls -l> 文件  (列表的内容写入文件a.txt中覆盖写入)
2) ls -al>>文件 (列表的内容追加到文件aa.txt的末尾)
3)cat文件1 >文件2 (将文件1的内容覆盖到文件2)
4)echo ”内容“>>文件 (追加)
案例1:将 /home 目录下的文件写入到 /home/info.txt中,覆盖写入  ls -l /home > /home/info.txt [如果info不存在则自动生成。
案例2:将当前日历信息追加到/home/mycal文件中
cal >> /home/mycal
cal是显示当前的日历信息

ln 指令 软连接也称为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或者目录][软连接名]功能描述:给源文件创建一个软连接
案例:在home目录下创建一个软链接 myroot,连接到/root目录
ln -s /root/ /home/myroot
删除就用rm就可以了

history查看已经执行过的历史指令。
history 10看最近10条指令
在history可以直接执行曾用过的指令 !(指令行数)

   

date ( 显示当前的日期)
date +%Y (显示当前年份)
date +%m (显示当前月份)
date +%d (显示当前是哪一天)
date“%Y-%m-%d %H:%M:%S”(显示年月日时分秒)
年月日就是date“%Y-%m-%d”
date -s设置时间例如date -s ”2011-11-03 20:02:10“粘贴的时候引号要修改

cal查看日历
cal[选项] (不加选项,显示本月日历)
应用实例cal 2020 显示2020年的日历

find想要查找的目录
find [搜索范围][选项]
find -name<查询方式> 按照指定文件名查找文件
find -user<用户名>查找指定用户名下的所有文件
find -size<文件大小>按照指定的文件大小查找文件
案例查找/home下的hello.txt文件
find /home -name hello.txt
案例按拥有者查找/opt 用户名下的nobody文件
find /opt -user nodody
查找整个linux系统下大于200M的文件(+n 大于 -n小于 n等于单位有k,M。G)
find / -size +200M
有的话cd进入文件,觉得看的不人性化输入ls -lh

locate 快速定位文件的路径
第一次执行必须执行updatedb指令创建locate数据库

which指令, 可以查看某个指令在哪个目录下,比如 ls 指令在哪个目录下 which ls

gerp 指令和管道 | 结合使用
grep过滤查找,与管道符”|“,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep -n显示匹配行及行号
grep -i 忽略字母大小写
案例:请在hello.txt文件中,查找”yes“所在行,并显示行号。写法一:cat /home/hello.txt | grep “yes”写法二:gerp -n “yes” /home/hello.txt

gzip 用于解压和gunzip 用于压缩
gzip 文件   (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz(功能描述:压缩文件命令) 
gzip /home/hello.txt       压缩变为.gz文件
gunzip /home/hello.txt   解压

zip压缩文件/unzip用于解压         代码格式先结果在内容
zip[选项]xxx.zip 将要压缩的内容
unzip[选项]xxx.zip 将要解压缩的内容
zip -r 递归压缩,及压缩目录
unzip -d<目录>指定解压缩文件存放的目录 
zip -r myhome.zip /home/ 把home文件下所有的文件压缩成myhome.zip
unzip -d /opt/tmp /home/myhome.zip把/home/myhome.zip解压到opt/tmp
没有tmp文件的话需要创建用mkdir,不能用touch

tar指令打包 可以解压也可以压缩,最后打包后文件是.tar.gz的文件
tar[选项]XXX.tar.gz 打包内容
tar -c 产生.tar打包文件
tar -v显示详细信息
tar -f指定压缩后的文件名
tar -z打包同时压缩
tar -x解包.tar文件            -zcvf解压 -zxvf压缩
案例:tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt   把pig cat.txt压缩成pc.tar.gz
案例 :tar -zcvf myhome.tar.gz /home 把home文件压缩成myhome.tar.gz
案例:tar -zxvf pc.tar.gz  将pc.tar.gz解压当前目录
案例:将myhome.tar.gz 解压到 /opt/tmp2目录下tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
-C是因为解压到另一个文件需要的代码

ls -ahl 查看文件的所有者
chown 修改文件的所有者  (chown 用户名 文件)
useradd -g 组名 人名
groupadd 组名
groupadd 创建一个组名为monster 创建一个用户为fox,并放入到monster组中
1.groupadd monster 2useradd -g monster fox
使用fox创建文件看所在组

chgrp 修改文件(目录)所在组
chgrp 组名 文件名

改变用户所在组
usermod -g 新组名 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录 特别说明:用户需要有新目录的进入权限
例如zwj 需要从原来目录修改到wudang
id zwj
cat /etc/group
cat /etc/group | grep wudang
usermod -g wudang zwj

-rwxrw-r--
0-9为的说明
第0位确定文件类型(d,-,l,c,b)
-是普通文件
l是链接,相当于windows的快捷方式
d是目录相当于windows的文件夹
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘     cd /dev 可以看到c.b文件类型
第1-3位确定所有者 (该文件的所有者)拥有该文件的权限。---User 
第4-6位确定所属组(同用户组的)拥有该文件的权限,---Group
第7-9位确定其他用户拥该文件的权限 ---Other

rxw作用到文件
【r】代表可读写(read)可以读取观看
【w】代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件
【x】代表可执行(execute):可以被执行

rxw作用到目录
【r】代表可读(read)可以读取,ls查看该目录内容
【w】代表可写(write)可以修改,对该目录内创建+删除+重命名目录
【x】代表可以执行(execute)可以进行该目录
以-rwxrw-r--  1 root root 1213 Feb 2 09 :39  abc
可用数字表示为r=4 w=2 x=1因此rwx=4+2+1=7
0~9后的数字1    表示文件:硬链接数或者   目录的:子目录数 之间的和=0 (文件数和目录数的和)
第一个 root   用户(拥有者)
第二个 root    组(所在组)
1213是    文件大小(字节),如果是文件夹显示的是 4096字节
Feb 2 09:39

chmod指令 可以修改文件或者目录的权限
第一种方式+、-、=变更权限
u 所有者   g 所有组 o 其他人 a 所有人(u、g、o的总和)
1)chmod u=rwx ,g=rx,o=x 文件/目录名
2)chmod o+w /文件名 目录名
3)chmod a-x 文件名/目录名
案例:给abc文件 的所有者读写执行的权限,给所在组读执行的权限,给其他组读执行的权限
chmod u=rwx,g=rx,o=rx abc
案例:给abc文件的所有者除去执行的权限,增加组写的权限
chmod a-x,g+w abc
案例:chmod a+r abc 所有人都增加写的权限

数字变改权限
r=4 w=2 x=1
chmod 751 意思所有者拥有读写执行  所在组读执行权限 其他用户执行权限
案例:将/home/abc.txt文件权限修改rwxr-xr-x用数字的方式实现:chmod 755 /home/abc.txt 

chown newowner 文件/目录 改变所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组chown -R 如果是目录 则使其下所有子文件或目录递归生效
案例:将/home/abc.txt文件所有者修改为tom
chmod tom /home/abc.txt  abc.txt文件所有者改为tom
chmod -R tom /home/abc    将abc下所有文件所有者变为tom
chown -R xianzi:xianzi /home/abc 将abc文件拥有者和组都给仙子

chgrp newgroup 文件/目录  (改变所在组)
案例:将/home/abc.txt文件所在组修改为shaolin
groupadd shaolin
chgrp shaolin /home/abc.txt
chgrp -R递归
chgrp -R shaolin /home/abc     把abc下的文件和目录 所在组全改为少林

police,bandit
jack ,jerry:警察
xh,xq 土匪
1.创建组,创建用户
groupadd police  ;groupadd bandit
useradd -g police jack;useradd -g police jerry
useradd -g bandit xh;useradd -g bandit xq
2,jack创建文件,可以自己读写 本组人可以读 其他组没有权限
答:首先jack登录;vim jack.txt;chmod 640 jack.txt
3jack修改文件,其他组可以读,本组人读写
chmod 664 jack.txt或者chmod o=r,g=rw jack.txt
xh投靠警察,看看是否可以读写。
usermod -g police xh
测试看看xh是否可以读写xq是否可以,xq是否可以读写 

目录权限 r.w.x和 文件权限 r.w.x
目录权限x 是执行代表可以进入,不显示内容,但是文件权限 有rw依然可以操作
目录权限w是指其他用户是否可以对这个目录进行添加文件,或者删除文件
目录权限r是指别人进入目录可以看到文件

crond 任务调度
crontab 进行定时任务的设置
crontab -e编辑crontab的定时设置
crontab -l查询crontab任务
crontab -r删除当前用户的所有crontab任务
service croud restart    [ 重启任务调度]
设置任务调度文件: /etc/crontab
设置个人任务调度。执行crontab -e命令
接着输入任务到调度文件
如 */1 * * * * ls -l /etc/ > /tmp/to.txt命令
第一个* 是一小时当中的第几分钟0~59
第二个*是一天当中的第几个小时0~23
第三个*是一个月当中的第几天1~31
第四个*是一年当中的第几个月1~12
第五个*是一周当中的星期几0~7
输入 */1 * * * * ls -l /etc/ > /tmp/to.txt命令
cd /tmp/to.txt
就算删除每隔一分钟也会显示可以用cat 或者more去查

*代表任何时间,比如第一个*就代表一小时每分钟都执行一次
,代表不连续的时间,比如“08,12,16* * *命令”代表每天8点,12点,16点都执行一次命令
- 代表连续的时间范围。比如“05 * * 1-6命令”代表在周一到周六的凌晨5点0分执行命令
*/n代表 每隔多久执行一次。比如“*/10 * * * *命令”,代表每隔十分钟就执行一遍命令
案例
45 22 * * *在22点45分执行命令
0 17 * * 1 在每周的17点0分执行
0 5 1,15 * *每个月1号和15号的5点0分执行命令
40 4 * * 1-5 周一到周五的 4点40分执行
*/10 4 * * * 每天4点每10分钟执行一次命令
0 0 1,15*1每个月1号15号,每周1的0点0分都会执行命令。注:星期几和记号最好不要同时出现,因为他没定义的都是天,非常容易让管理员混乱

案例:每隔一分钟,就将当前的日期信息,追加到/tmp/mydate文件中
*/1 * * * *date >> /tmp/mydate

案例:每隔一分钟将当前日期和日历都追加到/home/mycal文件中
首先在home下建立vim my.sh文件
cal >> /home/mycal
date >> /home/mycal 保存
修改root对my.sh的执行权限
 ./my.sh执行后就看到mycal的时间
需要用crontab -e 中写入 */1 * * * * /home/my.sh 

案例:每天凌晨2.00将mysql数据库 testdb,备份到文件中。提示:指令为
mysqldump -u root -p密码 数据库 > /home/db.bak
crontab -e
02 * * * * mysqldump -u root -proot testdb > /home/db.bak

at命令 一次性定时计划任务
at[选项]【时间】
ctrl +D 结束at命令的输入
ps -ef 检测当前正在运行的进程
ps -ef | grep atd  可以检测atd是否在进行 
atd可以执行指令也可执行脚本。每隔60s执行,只会执行一次

at -m 当指定任务被完成后,将给用户发送邮件,即使没有标准输出
at -I   atq的别名
at -d atrm的别名
at -v 限时任务将被执行的时间
at -c 打印任务的内容到标准输出
at -V 显示版本信息
at -q<队列>  使用指定的队列
at -f<文件> 从指定的文件读入任务而不是从标准输入读入
at -t<时间参数> 以时间参数的形式提交要运行的任务
atrm [编号] 删除以设置的任务

1.  at指定时间的方法(小时:分钟)例如:04.00  假设时间过去的话,则到第二天去执行
2.  使用midnight(深夜),noon(中午) ,teatime(下午茶时间,一般是下午四点)等比较模糊的词语来定时
3. 按12小时即时制来执行,0~12AM(PM)
4.例如:指定的日期要在指定的时间后面04:00 2023-03-1    指定格式为month day(月日),或者mm/dd/yy(月/日/年)或者dd.mm.yy(日.月.年)
5.相对即时法 now+count time -units ,now就是现在的时间,time -units时间单位,这里能是minutes(分钟)、hours(小时)、days(天)、weeks(星期) 。count是时间单位
例如:now + 5 minutes
6.可以用today ,tomorrow来指定

案例:两天后下午5点执行 at 5pm + 2 days 然后输入两次ctrl+d可以执行  atq用来查询
输出写错按Ctrl+backspace删除

案例:明天下午17点,输出时间到指定文件 /root/date100.log
at 5pm tomorrow  
at >date > /root/date100.log

案例:2分钟后输入指定文件内 比如 /root/date200.log文件
at now +2minutes
at> date > /root/date200.log
等待2分钟在root下可以cat查询文件
 
脚本也是可以执行的,必须确保脚本存在,可执行。就可以输入地址去操作

linux分区
lsblk或者lsblk -f(看的更全面) 查看分区
硬盘分两种 IDE SCSI 主要是SCSI硬盘
IDE硬盘:驱动标识符为hdx,这里的hd是所在分区设备类型,x是(盘号)数字(a是基本盘,b是从属盘,c是辅助主盘,d是辅助属盘)前四个分区用1~4表示从5开始就是逻辑分区。
例如:hda3 表示第一个IDE硬盘上的第三个主分区或者扩展分区,hdb2是第二个IDE硬盘上的第二个主分区或者扩展分区

SCSI硬盘表示sdx~,SCSI是用“sd”表示分区所在设备类型,其余和IDE硬盘的表示方法一样
sd0是光驱

挂载第二块硬盘sdb到根目录下的newdisk目录下
1.虚拟机添加硬盘        在centos里设置添加硬盘,重启过后。lsblk命令可见sdb
2.分区                        分区命令fdisk /dev/sdb(m显示命令列表、p显示磁盘分区同fdisk -l、n新增分区、d删除分区、w写入并退出) 说明:开始分区后输入n,然后新增分区,然后选择p,分区类型为主分区,两次回车剩余空间最后输入w写入分区并退出,若不保存退出输入q   做完用lsblk可以看到磁盘有了sdb1 分区是分区号的选择是分几个区最多四个。uuid看不到说明没看到格式化
3.格式化         mkfs -t ext4 /dev/sdb1(ext4是分区类型)
4.挂载         将一个分区与一个目录联系起来   mount 设备名称 挂载目录      例如:mount /dev/sdb1 /newdisk
                                卸载删除    umount 设备名称 挂载目录     例如:umount /dev/sdb1 或者umount  /newdisk
注意reboot后会失效挂载,挂载只是临时
注意reboot后会失效挂载,挂载只是临时
5.设置可以自动挂载          永久挂载是指:修改/etc/fstab实现挂载 ,添加完后mount -a立即生效        vim /etc/fstab 记住UUID修改文件即可 UUID=835e1b82-6851-4cd7-acbe-44dbc10652a7 /newdisk                ext4    defaults        0 0

df -h查询系统整体磁盘的使用情况
du-h查询指定目录的磁盘占用情况 ,du-h[目录]查询指定目录
du -s指定目录占用大小汇总
du -h带计量单位
du -a含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
案例:查询/opt文件下的子目录等于一
du -h --max-depth=1 /opt
要是想把文件带上的话
du -ha --max-depth=1 /opt
原先基础上更加明确汇总的话
du -hac --max-depth=1 /opt

磁盘工作实用指令
统计/opt文件夹下的个数 ls -l /opt | grep "^-"
再次统计数量 ls -l /opt | grep "^-" | wc -l

查询目录数量ls -l /opt | grep "^d" | wc -l

统计opt下的所有目录
ls -lR /opt | grep "^d" | wc -l
统计opt下所有文件
ls -lR /opt | grep "^-" | wc -l
注意“^ ”后面写入文件形式就是只查找 比如^- 就是一般文件 ^d目录,wc -l就是统计汇总数量

以树状图显示出来 tree 目录名 ,没有的话在线安装输入yum install tree

为什么linux中的浏览器可以上网
cmd中ipconfig vmnet8 IPV4 可以看到192.168.198.1
linux中ifconfig可以查询上网地址  192.168.198.135
cmd可以ping通虚拟机,当虚拟机ping windos的时候windos需要关闭防火墙才能接受反馈
无线网卡也是可以上网的也就是说主机有两个上网地址
虚拟机-vm8-无线网卡(代理)-互联网网关-互联网网址

linux直接修改配置文件来指定ip,并可以连接到外网(程序员推荐)
编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置的静态的,比如:ip(192.168.xx.xx)

固定ip
固定ip地址代码:vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改代码BOOTPROTO=static(静态分配)
修改完后后面写代码  
#IP地址
IPADDR=192.168.198.198
#网关
GATEWAY=192.168.198.2
#域名解析器
DNS1=192.168.198.2
保存后打开vmware编辑-虚拟网络编辑器-vmnet8  reboot后生效

设置主机名和hosts映射
1.方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
2.指令hostname 查看主机名
3.修改文件在/etc/hostname指定
4.修改后,重启生效

设置host映射 如何通过主机名能够找到(比如ping)某个linux系统
windows 在C:\Windows\System32\drivers\etc\hosts 文件即可
案例:在windows中hosts 写入192.168.198.198 maqima(linux主机名) 用cmd 检测
linux在 /etc/hosts文件指定 
案例:在linux用vim /etc/hosts 写入192.168.198.1 DESKTOP-CNCMT83(windosw设备名称)直接shell 去ping 地址,记得关防火墙

DNS解析机制-现在浏览器的缓存寻找,然后再看系统的缓存中有无这里可以用cmd,ipconfig/displaydns去找。最后是hosts文件查询-公网dns去找

以windows-任务管理器-PID(进程号)
程序运行到内存就是进程,程序(静态),进程(动态)
进程是分为前台和后台,前台是可以看到的,可以进行交互
运行在后台看不到的就是后台,比如mysql

ps命令查看目前系统中有哪些正在执行,以及他们执行的状况,可以不加任何参数
PID进程识别号
TTY终端机号
TIME此进程所消耗CPU时间
CMD正在执行的命令或进程名
ps-a 显示当前终端的所有进程信息
ps-u 以用户的格式显示进程信息
ps-x 显示后台进程运行参数  -------一般来说都是组合使用ps -aux
USER 是进程用户    %cpu 占用内存百分比   %MEN 该进程占用物理内存的百分比  VSZ 占用虚拟内存大小   RSS 占用物理内存大小 TTY 终端   STAT 当前运行状态(S表示sleep休眠,r表示运行状态,s- 表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行 D-短期等待 ,Z-僵死进程,T-被跟踪或者被停止等等)  START 执行的开始时间   TIME占用的cpu时间    COMMAND 启动这个进程的指令(进程名)过长会截断显示

案例:比如想看sshd服务 代码 ps -aux |  grep sshd (sshd可以通过网络在主机中开启shell的服务)

ps -ef 是以全格式显示当前所有进程,
ps -e显示所有进程 -f 全格式
ps -ef | gerp xxx

UID:是用户ID
PPID:   进程ID
C cpu用于计算执行优先级的因子。数值越大,表示进程是cpu密集型运算,执行优先级会降低,数值越小,表示进程是I/O密集运算,执行优先级会提高

终止进程kill 和killall
某个进程需要停止或者已消耗很大系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务。
kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9表示强迫进程立即停止

案例:踢掉某个非法用户
ps -aux | grep sshd(sshd可以看到登录用户的父子进程ID)之后直接杀掉
kill 进程名,这里记得砍掉的是[priv],因为用户行显示的是他的子进程,[priv]显示的是杀掉用户的父进程

案例:终止远程登陆服务sshd,在适当的时候重启sshd服务
ps -aux | grep sshd
里面/usr/sbin/sshd    kill 进程号
重启代码 /bin/systemctl start sshd.service

案例:终止多个gedit(gedit文本编辑器),演示killall
打开centos主文件夹,开两三个txt文本,killall gedit(包括进程也可以用killall 进程名删掉)

案例:强制杀掉一个终端
打开 centos 终端 
ps -aux | grep bash
kill -9 进程号  [-9 是强制进程停止]    也可以自己杀自己

查看进程树pstree
pstree -p 显示进程的PID
pstree -u 显示进程的所属用户
可以看到进程关系

service服务本质就是进程,运行在后台的,通常是监听端口,等待其他程序的请求,比如(mysql,sshd, 防火墙),因此我们成为守护进程。
例如Xshell 通过22端口连接 sshd服务
mysql客户端 通过3306端口 连接mysql

service管理命令
service 服务名 [ start | stop | restart | reload | status](启动,停止,重启,重载,查看状态)| 表示可选
在centos7.0后很多都服务不再用service,而是systemctl
service指令管理在 ls-l /etc/init.d 查看
service network status 用service服务 查看网络状态
service network stop 就是后台客户端与前台切断联系

setup 可以设置service 启动的项目

运行级别(之前有讲)init 3 和 init 5比较常用
0 系统停机,系统默认运行不能是0,否则不能正常启动
1 单用户工作状态,root 权限 用于维护系统,禁止远程登录
2 多用户状态(没有FNS),不支持网络
3 完全多用户状态(有NFS),登录后进入控制台命令模式
4 系统未使用,保留
5 X11控制台,登陆后进入图形GUI模式
6 系统正常关闭并且重启,默认运行级别不能设置为6,不然不能正常启动

开机流程
开机--BIOS--/boot--systemd进程1--运行级别--运行级对应服务
在/etc/inittab 查看运行级别级别代码
systemctl get-default 看查运行级别
systemctl set-default 运行级  设置运行级别 
运行3 multi-user.target
运行5 graphical.target

chkconfig 指令
通过chkconfig 命令可以给服务器的各个运行级别设置自 启动/关闭
chkconfig 指令管理服务在/etc/init.d查看 
chkconfig --list[| grep 服务名]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off

systemctl 管理指令
基本语法:systemctl [start | stop | restart | status] 服务名
systemctl 指令管理的服务在/usr/lib/systemd/system 查看

systemctl设置服务自启动状态
1 systemctl list-unit-files [ | grep 服务名] (查看服务开机的启动状态,gerp 可以进行过滤)
2 systemctl enable 服务名(设置服务开机启动)控制级别三和五
3 systemctl disable 服务名 (关闭服务开机启动)
4 systemctl is-enabled 服务名 (查询某个服务是否自启动)

比如想看防火墙状态,关闭重启的防火墙的话
ls -l /usr/lib/systemd/system | grep fire-
可以看到firewalld.service 防火墙的名称是这个
systemctl status firewalld
也可指直接systemctl is-enabled firewalld
systemctl is-enable sshd service
案例:查看防火墙状态
systemctl status firewalld
systemctl stop firewalld(设置时临时设置)
要是永久关闭或者启动的话需要用systemctl [enable | disable]服务名

netstat -anp | more查看网络端口的指令

firewall指令(重要)
打开端口 firewall-cmd --permanent --add-port=端口号/协议
关闭端口 firewall-cmd --permanent --remove-port=端口号/协议
重新载入才能生效 firewall-cmd --reload
查询端口是否开放 firewall-cmd --query-port=端口/协议

动态监控进程
top与ps指令很相似,他们都是用显示正在执行的进程。top与ps最大的不同之处在于top在执行一段时间可以更新正在运行的进程
top[选项]
top -d 秒数 指定的top命令每隔几秒更新,默认是3秒
top -i 使top不显示任何闲置或者僵死的进程
top -p 通过指定监控进程ID来仅仅监控某个进程的状态

top输出后
top代表当前时间
up 是系统运行时间,运行多长
users 用户数量
load average 负载均衡 三个平均值不 能超过0.7 超过70%负载过大
tasks 任务数
zombie 僵死的进程
us 用户 sy系统 id空闲
KiB Mem 和Kib Swap 是内存 后面显示的是总内存和空闲内存 usef是用了多少, buff是缓存的内存总量,cached 缓冲交换区总量

交互操作说明
P  以CPU使用率排序,默认就是此项
M 以内存的使用率排序
N 以PID排序
q 退出top

案例:监视特定的用户
top进入后
输入u 回车
在输入用户名

终止指定的进程,比如我们结束tom用户的登录
top进入后
输入k
删除用户的bash的PID
最后输入数字9 回车就把用户T了出去

每隔十秒系统自动更新
top -d 10

查看网络情况netstat
netstat [选项]
netstat -an 按一定顺序排列输出
netstat -p 显示哪个进程在调用(可以组合相加anp)

详细看netstat -an | more
1proto 协议  2 local address 本地地址 3 foreign address 外部地址 4 establish 已经建立的

增加一个tom用户然后 输入netstat -an | more 就是会多一个端口,logout tom 然后机会发现一个超时等待的机制,这是tcp协议的三次握手四次断开机制
案例:查看sshd服务信息 netstat -anp | grep sshd

rpm用于互联网下载包及安装工具。
rpm包简单的查询指令
查询已安装的rmp列表rpm -qa | grep xx

案例:看火狐的包
rpm -qa | grep firefox
firefox-68.10.0-1.el7.centos.x86_64
68.10.0是版本号
.el7.centos.x86_64适用的操纵系统是centos7 64位系统
如果是 i686.i386表示32位系统,noarch表示通用64和32

rpm -qa:查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep xxx

rpm -q 软件包名:查询软件包是否安装
案例:rpm -q firefox

rpm -qi 软件包名 :查询软件包信息(大小,安装时间,版本情况)
案例:rpm -qi firefox

rpm -ql 软件包名:查询软件包中的文件
案例:rpm -ql firefox

rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log

卸载rpm包基本语法
rpm -e rpm包的名称      (erase删除的意思)
例如:删掉火狐
rpm -e firefox
删除文件包的时候要是有提示表示连带的程序会出现故障,强制删除的话用
rpm -e --nodeps xxx

安装rpm包
rpm -ivh rpm包全路径名称
参数说明
i=install安装
v=verbose 提示
h=hash 进度条

安装卸载火狐
apm -e firefox
将光驱中pakages打开里面有火狐的包复制到主文件夹的opt目录,地方自己选,随后用apm -ivh 文件的路径全名
rpm -ivh /root/opt/firefox-68.10.0-1.el7.centos.x86_64.rpm

yum是一个shell前端的软件包管理器,可以自动处理依赖关系的软件包
并且安装,远程仓库

yum list查看yum服务器的软件包
yum list | grep xx列表 查看是否有需要的软件包
yum install xxx 下载安装

例如删掉的火狐
rpm -e firefox 
yum list | grep firefox
yum install fire fox

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值