第2章 linux系统安装与基本操作
- 安装VM+centos
- 查看硬盘
计算机-管理-存储-磁盘管理
更改驱动器和路径 名称,让用户访问有个入口 删除了就无法访问。如果有程序在读数据,删了就报错。
- windows中用盘符,linux中用文件夹起名
要想访问数据,就要给硬盘分配的空间起名字
windows的根是盘符 cd 回到根上
linux只有一个根
- 既然有图形化,为何还留命令行?
命令行节省资源开销只是附带,财大气粗可以不在乎。最关键的地方是,命令行比较明确错误化,而图形化界面会让你在发生错误的时候感觉困惑(我IP地址配置的明明填写正确了为什么上不了网?结果使用命令行查ipconfig发现,ip地址没获取到。)。这才是命令行带来的核心需求,为什么没有淘汰掉,甚至无法淘汰掉的原因所在,因为我们需要错误的明确化来进一步处理与分析,否则的话这个世界将充满错误,而我们一直稀里糊涂探不到根源所在。
- linux文件夹命名
/usr 像windows的系统盘,放很多系统文件
/home 像windows的用户放数据的地方,存放很多用户数据的目录,创建的账户都在这下面
/boot 引导计算机的系统用的,windows的引导文件默认放到系统盘根下隐藏的
/tmp 在windows中有放临时文件的,linux也有
/var/log 放日志的文件,windows中,计算机管理-事件查看器-windows日志-属性 比如:
%SystemRoot%System32WinevtLogsSetup.evtx
- %SystemRoot% 为环境变量
cmd命令 set %SystemRoot% 可以查看它的值
- linux中用文件夹名分配硬盘分区的名称
windows中给分区命名的是C D E F是字母,linux中为文件夹名,都是给分区起名字,一样的道理。
比如将第一个分区命名为/boot,第二个分区命名为根(/),/boot比较特殊,它在第二个分区里可以访问到它,而它实际是命名成了第一个分区的名称,从第二个分区里访问第一个分区中的内容
- 挂载 mount,目录名叫挂载点mount point
在windows中给分区分配盘符,linux中给分区分配文件夹名,有个专业的叫法,叫挂载
- /dev device设备
linux中一切皆文件,/dev专门放各种硬件信息,存放表示硬盘以及分区的文件
- 硬盘
IDE /dev/hd
SATA /dev/sd
centos6开始不管什么接口通通 /dev/sd 命名
a,b,c....z,aa等字母表示设备的数量
ls /dev/sda
lsblk //列出块设备list block 硬盘,光盘都是块设备
- 分区
用数字表示
MBR分区策略:主,扩展,逻辑分区
主分区:一个硬盘上最多4个,不能再分了。右键-将分区标记为活动分区,用来引动操作系统用的。4个主分区只能有一个是活动状态(数字表示为:1-4)
扩展分区:我想分4个以上的分区怎么办?扩展分区就引入了。最多一个,划分更小的分区,这些更小的分区就叫做逻辑分区(数字表示为:1-4),扩展加主分区一共计数4个编号
逻辑分区:可以单独用来格式化,存放数据(5,6……)
fdisk -l /dev/sda 查看硬盘分区信息
- windows中也有类似的挂载功能
计算机管理-存储-磁盘管理-D盘-更改驱动器号和路径--删除D盘符-添加-加一个其他盘的文件夹
从其他盘的文件夹访问D盘的数据
- 分区规划
/ 实际生产中看业务环境
/boot 1G
du -sh /boot 看目录存放的数据有多大
/data 专用于实验用的多划分一个分区出来,系统本身不带
swap 交换分区 (内存数据和硬盘数据进行交换) 物理内存的1.5-2倍(8G内存及以下)
centos7.5 给2G centos6.10 给1G 不然太少了会报错
- 虚拟内存技术
windows中内存不够了会报内存不足,它有一个pagefile.sys分页文件,内存不够时可以把这个文件拿来当内存。性能肯定差很多很多,毕竟在硬盘上,比报错空间不足强很多,能用。如果你自己评估自己的内存够用,这个技术可以关闭。还是那句话,令人困惑的图形化界面,你点了关闭不使用,实际情况如何,咱道行不够也看不出来图个心理安慰。
计算机-属性-高级系统设置-性能(设置)-高级-虚拟内存(更改)
windows用文件来表示虚拟内存,而linux中直接用分区来表示,就是swap交换分区
VMware workstation操作
- VMware workstation安装程序光盘映像文件(ISO)
如果有自己的分区规划需求,给哪些盘分哪些区,挂载到哪里,个性化命名等(比如/sec875挂载点),就不要用这一项,这项是ISO文件自带分区好的。选择稍后安装操作系统。
- 最大磁盘大小
这是模拟的大小,分配200G都没事。将虚拟硬盘存储为单个文件。.vmdk就是模拟出来的200G硬盘
-
centos7 2G内存2核心 centos6 1G内存2核心
桥接:大家相互连接 NAT:你可以连别人,别人连不了你
-
虚拟网络编辑器
桥接-选择网卡 有物理和无线两块网卡,不要选错了
- 获取发行版
centos
https://wiki.centos.org/Download
mirrors.aliyun.com
mirrors.sohu.com
mirrors.163.com
举例:阿里云镜像站 /centos6.10/isos/ DVD1和DVD2两张盘 7.5是一张盘 Everything
将官网给的sha1sum哈希值复制出来
- 找一个存在的linux系统,虚拟机设置-CD/DVD-挂载最新下载的ISO文件-计算哈希值,右下角光盘在闪
sha1sum /dev/sr0
得到的结果与官方的对比,不一样则下载过程中有问题,数学被破坏没法用。
- mspaint 画图工具
- 选择仅主机模式时
centos6和7之间有一台虚拟的交换机,在VM内部。在VM和宿主机之间有一张网卡,叫VMnet1。仅主机模式,连的就是VMnet1网卡。打开网络和共享中心-更改配置器设置。与其他主机就没法连接
- 桥接模式
连的就不是VMnet1,而是VMnet0(也就是本地网络的物理网卡,被映射成VMnet0)。肉眼可见,已经从宿主机连接出来到外面的交换机上面了。
ctrl+alt+回车 全屏/回来
ctrl+alt 弹出鼠标
虚拟机中装centos和实际业务环境是一样的,企业都在用虚拟机技术。
- windows计算机名和linux有本质区别
windows计算机名一样会冲突,而linux不检查计算机名。体现在了 root@计算机名
- ctrl+alt+F1-F6可以看见安装过程发生什么事
- 选择Create Custom Layout自己创建分区
- 看内存配置
cat /proc/meminfo
shift+pageup上下翻滚浏览
- 看分区
cat /proc/partitions
- 安装完成以后做备份,拷目录就行
快照有时会出问题,文件坏了快照也恢复不了。
- reboot重启
- 运行模式(切换界面)
runlevel
free -h 查内存
init 3 切换到纯字符界面
init 5 切换到图形界面
startx 开启图形化软件
init 6 重启
init 0 关机
reboot 重启
halt 关机不断电 poweroff 关机并断电
ctrl+alt+F1-F6 不关闭图形切字符界面,终端登陆,多用户登陆
chvt 1-6 使用命令切换终端
liunx并发的多用户工作系统
终端窗口tty
/dev/tty/0 查看从哪个终端登陆过来的
/dev/pts/0 在图形化界面中的终端名称叫pts
- 如果发现没有分配IP地址,网卡设置启动
nmcli commection modify ens33 connection.autoconnet yes centos7专属
- 在windows用软件连接linux进行管理
secureCRT 8.0或者Xshell(Xmanager安装完成后出来一个Xshell)
- whoami查看当前用户,who am i
- 看管理员还是普通用户,UID为准,不是root名字
0 :管理员 非0:普通用户
id -u 查看UID
- 交互式接口
GUI:图形用户接口
基于X协议
GNOME(C,图形库gtk)
KDE(C++,图形库qt)
XFCE(轻量级桌面)
CLI:命令行接口
- 内核版本 uname -r
- 查CPU lscpu
- 查内存free -h
- 查硬盘lsblk
- 查网卡mii-tool eth0
- 生产环境中的服务器追求的是稳定,所以版本较老
- 多少人登陆,谁在登陆who
shell
输入的命令都是英语单词,计算机最终识别的是二进制,谁帮把命令给转换执行了呢?shell背后帮做这些事,它是命令解释器,把人理解的语言命令解释成计算机理解的二进制语言。英译过来变成了壳,翻译后严重形成了畸形,这种情况下就不要翻译了,就用原文shell。
- 有多种软件支持shell,cat /etc/shells
不同的操作系统默认的shell不一样,centos默认是bash
查看当前用的shell类型 echo $SHELL echo ${SHELL}
- 不同的shell(以后都默认为在说shell软件)有不同的特性与功能
比如 > 在bash中有创建文件的功能,在csh中就不支持
cat /etc/shells查看各种shell
/bin/csh 运行csh
> test 发现csh报错,不认识此命令
exit 退出运行的shell,回到以前的shell中
exit logout再退就退出系统注销了
- 清屏ctrl+l clear
- /sbin/nologin shell
有的软件在后台运行,不需要用户登录,用的shell类型就是nologin
- 查看完整的主机名hostname
- 提示符格式echo $PS1
提示符说的是root@计算机名 ~ 这个东西,可以改这个东西,不会永久保存,退出再进就恢复了
$PS1=sec875
要保存下来,就得写到文件里
ls /etc/profile.d/
nano /etc/profile.d/env.sh //env是环境的意思,这个名字可以随便起,把$PS1=sec875,写到文件里
gedit 图形化记事本
nano /etc/gdm/custom.conf
[daemon] //守护进程
AutomaticLoginEnable=true
AutomaticLogin=root //下次开机时,自动登录
cat /etc/motd //登录后提示信息
rz //上传
df //查看光盘路径
rpm -ivh 光盘路径
rpm -ivh 光盘路径/Packages/lrzsz- tab补全
rz
ls
mv motd-keyboard /etc/motd
- 执行命令
shell程序找到键入的命令所的可执行程序或代码,并由其分析后提交给内核分配资源将其运行
- 两类:内部命令,外部命令
help查看内部命令
enable查看内部命令
type pwd查看是否为内部命令
enable -n pwd禁用内部命令
pwd 发现还能执行
type pwd 发现确实被禁用了,前面带了星号
系统先执行内部命令,发现没有内部命令再去找外部命令
- 为什么有了内部命令,还要再准备一个一样的外部命令?
ll /bin/pwd
内部命令是依赖于shell的,不同的shell没有内部命令就会导致执行失败,因此准备一个外部命令
type -a pwd列出所有内部,外部命令的列表
基于观察的寻人法比基于提问的寻人法准确的多。究其缘由在于,我们通过提问的方式来寻找物以类聚的人,而非真正对的人。深思问与答,如果答对改变的其实是自己的心理(此人不错),如果答错(此人不适合)。从此例发现,看准人在于他是否改变了你的心理。
既然核心是改变你的心理,那么触发点就太多了。除了运用问与答。请问一下自己,他长年累月的在写笔记,积累阅读,超群的见解等是否和问与答同样可以改变你的心理认知呢?如果可以,恭喜你,组团招人的眼力就提高了。
我们要明白一个道理,很多问题问在那些年薪百万的专家身上,他们一样答不出来,难倒去否认专家吗?臣妾怕。。
思考知道创宇总裁在回国的时候,为什么要亲自去找一个其他专业出身的余弦,而不通过问一些专业性的问题去招人呢?事出无常必有妖。亲密无间,光速成长,已梦想为触发点驱动专业性成长,忠诚度。我觉得,一个重要的团队,这些东西比其他的都重要。无形的让自己的资产从本质上得到建设,因为人是复杂的,KPI无法统计出这些指标。当然,赵老板,“你这招比画饼更牛!直接了当的收买人心啊,还成本为0,招人的开销都省去了,哈哈”。当然,如余弦的组团篇所言,其他行业的人也不需要这么做,因为他们组建的是黑客团队,对成员的要求非常高,才剑走偏锋。总不能每个行业都得这么做吧。
- which reboot确切的知道某个外部命令以后,使用它查看路径
- whereis reboot列出的更多更详细
- ls /bin usr/bin全都是外部命令
外部命令每次运行都要去磁盘上面找到相应的路径
- 外部命令怎么知道路径在哪?
不是一个个目录去翻,靠一个变量来找
echo $PATH
- 执行过一次外部命令,下次再执行是不是没必要再去找了,记在内存中
这个执行一次就记在内存中的过程,就叫hash。把路径记录在内存的哈希表里。
whereis ls
type whereis //执行过一次以后,发现前面写着一个hashed
hash -l显示hash缓存中,记录下来的命令
hash 也可以显示记录下来的命令
- 如果某些操作导致缓存中的命令路径与真实的命令路径不一致,以后都会提示命令找不到,但命令确实存在于$PATH中,这个时候需要清除所有缓存的命令路径
hash -r cat清除缓存中所有记录的命令路径
- 起别名执行命令
hash -p /bin/ls lsls //起别名
hash -l //加l参数才能看见别名
hash -d lsls删除别名
hash -t ls显示命令路径
- hash以后会经常用,这个使用的技术就叫缓存技术。
type ls可以查看有没有别名