Linux 命令行

306 阅读8分钟

系统和系统其实都一样,都有内核,Linux 得命令行可以直接操作系统内核,相比之下 window 为了用户简便性考虑在内核之上添加了图形窗口,命令行得方式好处就是相应块,性能好

大家都是用 mac 的,所以命令行这东西不用说了吧,我就是非常遗憾的那种不会用的,现在赶紧抓起来,把技能的短板补上来

参考资料:


命令行基本样式

先来看看命令行的基本显示,这是下面的样子:

  • @前的是用户名@后面的是主机名@本身是分隔符
  • ~表示当前目录,没有的话就是在根目录
  • #:结尾的是超级管理员账号,拥有最大的权限
  • $:结尾的是普通用户

mac OS里,命令行基本数据在窗口顶层显示

想更改命令行基本显示也可以,请在配置文件中修改

想查看命令行基本显示信息的输入:

# echo $PS1 
  • echo是打印字符的意思
  • PS1要命令行样式的配置信息,注意大写
  • $代表引用数据

Linux 命令

1. linux 命令分类:

首先 linux 命令分2种:普通命令内置命令

  • 普通命令:是Linux系统自带的,写在Linux系统文件中
  • 内置命令:是bash解释器提供的命令

whice + 命令 可以查看这个命令是不是内置命令,要是有结果,显示路径样式的,那说明是普通命令

2. Linux 命令格式

就好像方法一样,前面的命令就是方法名,-xx什么的就是需要传递的参数,一般都是预设的值,他们中间都要加空格,要不识别不了,就和 python 没有一个道理

3. 查找说明、帮助

manhelpinfo 都可以,一般优先用man,然后是info,使用格式是:man + 命名名,比如说:man clear 查看clear命令信息

man cd 可以查看所有的命令

4. 关机、重启

shutdown 是关机、重启这一些列命令的开头,后接具体option选项,linux 命令基本都是这刚和思路走下来的,核心命令 + 内置 option 选项(取单词首字母),具体到这里我们看看:

  • shutdown -r now - 重启,r = reboot
  • shutdown -h now - 关机,h = halt

除了上面带参数的命令,还有更简单的命令,直接就一个单词

  • haltpopweroff - 关机
  • 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/zbzbgo
  • cd - - 返回上一次操作目录,要是大家之前使用绝对路径操作的话就能返回上一次那个目录了,和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.2txt
  • test1.txt test/test2.txt - 将test1.txt移动到当前目录下的test目录下并重命名为test2.txt
  • test1.txt test2.txt - 复制test1.txt并粘贴到当前目录下,然后重命名为test2.txt
  • cp 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,所以并发写一般不是大问题。数据写入内存一般是通过:MemcachedRedis等高效的内存级别软件实现的,关系型数据库一般也有读写缓存

catchbuffer的区别

  • 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给用户提供服务

顺序存储对介质压力小,读取速度更快;随机存储对介质压力更大,读取速度慢