系统和系统其实都一样,都有内核,Linux 得命令行可以直接操作系统内核,相比之下 window 为了用户简便性考虑在内核之上添加了图形窗口,命令行得方式好处就是相应块,性能好
大家都是用 mac 的,所以命令行这东西不用说了吧,我就是非常遗憾的那种不会用的,现在赶紧抓起来,把技能的短板补上来
参考资料:
命令行基本样式
先来看看命令行的基本显示,这是下面的样子:
@前的是用户名,@后面的是主机名,@本身是分隔符~表示当前目录,没有的话就是在根目录#:结尾的是超级管理员账号,拥有最大的权限$:结尾的是普通用户
在mac OS里,命令行基本数据在窗口顶层显示
想更改命令行基本显示也可以,请在配置文件中修改
想查看命令行基本显示信息的输入:
# echo $PS1
echo是打印字符的意思PS1要命令行样式的配置信息,注意大写$代表引用数据
Linux 命令
1. linux 命令分类:
首先 linux 命令分2种:普通命令、内置命令
普通命令:是Linux系统自带的,写在Linux系统文件中内置命令:是bash解释器提供的命令
用 whice + 命令 可以查看这个命令是不是内置命令,要是有结果,显示路径样式的,那说明是普通命令
2. Linux 命令格式
就好像方法一样,前面的命令就是方法名,-xx什么的就是需要传递的参数,一般都是预设的值,他们中间都要加空格,要不识别不了,就和 python 没有;一个道理
3. 查找说明、帮助
man、help、info 都可以,一般优先用man,然后是info,使用格式是:man + 命名名,比如说:man clear 查看clear命令信息
man cd 可以查看所有的命令
4. 关机、重启
shutdown 是关机、重启这一些列命令的开头,后接具体option选项,linux 命令基本都是这刚和思路走下来的,核心命令 + 内置 option 选项(取单词首字母),具体到这里我们看看:
shutdown -r now- 重启,r= rebootshutdown -h now- 关机,h= halt
除了上面带参数的命令,还有更简单的命令,直接就一个单词
halt、popweroff- 关机reboot- 重启
所以重启推荐:reboot,关机:halt
5. Linux 文件目录结构
很简单,Linux 没有 window 的盘符,所以没有什么c、d、e、f盘,Linux 中的文件都是从根目录出发的
- 命令行的
~符号后面可以看所在文件,根目录~后面没有 pwd- 可以查看当前目录
6. 切换目录
cd命令大家应该都知道了,切换目录用的,可以接相对路径和绝对路径
cd- 切换目录change direction相对路径-cd AA只能进入当前目录的子目录绝对路径-cd /Users/zbzbgo/Documents/必备软件在任何位置时都可以进入指定文件目录- 相对路径和绝对路径最大的区别就是:绝对路径是以
/开头的,没有/的都是相对路径 cd ..- 返回上一级目录,注意是上一级cd ~- 返回用户的根目录,mac 中用户根目录是这个:/Users/zbzbgocd -- 返回上一次操作目录,要是大家之前使用绝对路径操作的话就能返回上一次那个目录了,和cd ~是有区别的,类似IED的撤销操作
7. 创建目录
mldir 全称:mark directory,对于创建文件目录我们同样可以使用相对路径和绝对路径
mkdir /newTask/names/aa.txt- 使用绝对路径创建文件夹mkdir newTask- 使用相对路径创建文件夹mkdir -p /Users/zbzbgo/Desktop/newTask2- 创建多级文件夹,-p 可以不写,注意只能创建文件夹,不支持一起创建文件mkdir a b c f e- 相对路径下支持同时创建多个文件目录
8. 创建文件
touch 命令,同样支持绝对和相对路径
touch AA- 在当前目录创建名为:AA的文件touch name{1..10}.txt- 支持批处理,批量创建文件出来,{}会生成相关序列,name 是前缀
name1.txt name2.txt name4.txt name6.txt name8.txt
name10.txt name3.txt name5.txt name7.txt name9.txt
rm AA- 删除名为:AA的文件rm -rf /Users/zbzbgo/Desktop/newTask2- 删除该目录下及其子目录中的所有文件
9. 查看文件目录
ls命令,同样支持绝对和相对路径ls /- 查看根据目录ls- 查看当前所在文件目录
10. 压缩文件
tar -cvf newTask.tar newTask- 把当前目录中的 newTask 文件夹压缩成前面指定的.tar格式的压缩包tar -zcvf newTask2.tar.gz newTask- 压缩成.tar.gz格式的压缩包tar -xvf newTask.tar- 在当前目录下解压压缩文件tar -xvf newTask.tar -C b- 在指定目录下解压压缩文件
11. 文件移动和复制
test1.txt test2.txt- 将test1.txt重命名test.2txttest1.txt test/test2.txt- 将test1.txt移动到当前目录下的test目录下并重命名为test2.txttest1.txt test2.txt- 复制test1.txt并粘贴到当前目录下,然后重命名为test2.txtcp test1.txt test- 复制test1.txt并粘贴到当前目录下的test目录下
12. 系统命令
ping 192.163.124.21- 检测与ip为192.163.124.21的连接是否通畅netstat -an | grep 3306- 查询3306端口的占用情况hostname- 查看当前主机名who- 显示当前用户的信息date- 显示系统时间free -m- 以mb单位显示内存组昂头ps -ef- 查看所有的进程ps -ef | grep 2868- 查看pid为2868的进程kill 2868- 结束pid为2868的进程kill -9 2868- 强制结束pid为2868的进程uname -a- 显示本机详细信息
13. Macos 切换盘符
/Volumes 根目录下的这个地址存放其他卷地址,系统卷既我们当前使用的 Mac pro 机器
➜ ~ cd /Volumes
➜ /Volumes ls
Macintosh HD Time Machine
Time Machine 就是我们外接设备
其他:
!+关键字- 可以查看上一条你执行的符合关键字的命令!!- 执行上一条命令clear- 清屏,之前命令行太多了,看着不爽,用这个命令就能把之前的都删了
一些运维思想点
10年开始国内互联网企业就开始倡导去IOE化,他们的服务器成本太高,互联网企业非常喜欢:用人来解决硬件的问题,运维+免费软件+性价比高的戴尔服务器实现IOE的效果,这就是技术人员的价值。运维虽然不能给公司赚钱,但是可以给公司省钱,一年剩几百W,那你至少能赚几W
高并发时用户数据是先积累在内存中,在一定时机后再写入硬盘
对应的用户访问服务器数据,一般服务器都是先把相关的数据放到内存里面,因为内存反应快
99% 的网站都是以读取为主,写入为辅,读写比可能大于 10:1,所以并发写一般不是大问题。数据写入内存一般是通过:Memcached、Redis等高效的内存级别软件实现的,关系型数据库一般也有读写缓存
catch和buffer的区别
catch- 也叫读取缓存区,是把磁盘中的数据读取到内存中,数据在内存的位置就叫做 catch 读取缓存区buffer- 也叫写如缓冲区,是把内存中的数据写入磁盘,这些数据在写入磁盘之前在内存中的位置就叫做 buffer 缓冲区
总结起来就一句话:读缓存,写缓冲
淘宝有一阵服务器硬盘是:SSD+SATA 配置的,此举在 SSD 价格昂贵时可以节省大量硬件成本,究其原因:是淘宝团队发展 90% 的用户经常访问的是 20% 的数据,这部分数据成为热数据,把热数据放到 SSD 里面就能获得很好访问速度了。并且有记录,通过算法划分那部分是热数据,时时调整其所在位置
iops 磁盘每秒的输入输出量,I 是 input、O 是 output
延迟和IOPS,也成IO性能图谱,我们要知道的是IO瓶颈在哪
- 1s = 1000 毫秒 = 1000 000 微妙 = 1000 000 000 纳秒
cpu的速度是最块的了,比内存都快1000倍,好比你和3岁小孩比赛跑,这那能玩到一块去呀,所以在cpu和内存之间加上了3级缓存,这3级缓存是封装在cpu内部的- 大家算算从高速缓存->内存->SSD->机械硬盘之间的带宽(每秒读写速度),延迟之间的差距,就能理解很多时候大厂搭建服务器的思路了
- 大厂的服务器还是优先把数据读取到内存中供用户访问,内存是在没地方了再去SSD读,最后才是机械盘
- 运维大的方向和原则就是:用最快的
IO给用户提供服务
顺序存储对介质压力小,读取速度更快;随机存储对介质压力更大,读取速度慢