关于linux实用命令学习以及重要知识点

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xyz_dream/article/details/90314508

前言

本来这几天复习linux常用的命令,自己本来想写上一些记录的笔记。不过在github上搜到一个仓库,写得还挺全面的。和自己复习的内容所差无几,所以就没必要在博文中写出来了,重复同样的劳动,何况自己写得不比别人写得好到哪去。

仓库地址: https://github.com/Nick233333/phper-linux-gitbook

我的感悟

linux里面一些命令以及知识点,有必要写一下,对日常工作还是有所帮助。 只是会命令,不了解命令所牵扯到的知识点,那也是枉然,很多东西你都不知道怎么去做。

1.Linux运行级别以及开机启动

linux在自检,centos7启动systemd第一个进程的时候。 接下来 会去读取 /etc/inittab里面定义好的系统运行级别。
0. 关机
1.单root用户 无网络系统(一般管理员用到)
2.多用户 无网络模式
3.多用户 有网络(正常的命令行模式)
4.保留(目前没用)
5.图形化模式
6.重启
接下来确定好运行模式之后,会去读取/etc/rc.d/$runlevel.d/目录下的脚本 作为初始化脚本运行。 centos7 可以在 /ect/rc.d/rc.local中 加入自己的开机要启动的脚本命名内容。 默认rc.local没有 执行权限, 首先执行以下 chmod +x rc.local即可。 对于要开机启动某些特定服务,可以使用 systemctl enable 服务名称 。

2.Linux的文件系统之inode

参考大神阮一峰的博客:
http://www.ruanyifeng.com/blog/2011/12/inode.html
个人总结:
linux中文件的名字和文件具体数据内容是单独隔离开来的,只是通过某种"引用"或者说"地址指向"的机制把两者关联在一起罢了。 inode才是一个文件真实的唯一id。 但是要注意,这个"inode"的id仅仅只是在某个分区内是唯一的, 不能保证其他分区没有相同inode一样的节点。 所以这里要注意 ln 创建 "硬链接"和"软链接"的区别了。php中的变量名和实际数据内存地址其实也是参考这个模型(引用计数器),个人猜测。


1.硬链接是两个文件名称引用同一个inode。inode引用计数会随着每当有一个文件名称指向它,便加1 反之就减1。假如一个inode的引用计数变为0, 也就以为着文件被删除。 硬链接不支持针对目录创建, 不支持跨分区创建。


2.软链接。说白了,就是存放了所指向文件的路径罢了。 只不过linux在你访问这种类型的文件时,不会去读取它里面路径字符串, 而是 读取路径所在的内容。 所以 可以跨分区, 支持对目录创建软链接。 但是 源文件inode不会+1。

3.文本内容要注意坑

1.之前利用phpstorm远程开发,本地修改代码后,phpstorm会自动帮你上传文件到远程服务器。 但是注意,针对shell脚本,在windows上传到linux可能在linux上执行不起来。 后来搞了半天,在linux上写一句简单的echo "hello world"还是执行不起来。 通过网上查找, vim 进入命令模式 : set ff 查看文件格式显示windows。 set ff=unix立即解决。所以尽量针对 编译 shell脚本等等不要使用windows编写。

2.vim遇到 不能使用右键"粘贴"文本功能。 进入命令行模式 :set mouse-=a

3.文本内容看起来一模一样,但是脚本就是执行失败,建议hexdump test.sh 查看文本内容的16进制数据比较,肯定是不一样的。 肉眼看不出来

4.不要以文件名后缀轻易判断文件类型,linux文件类型和后缀毫无关系。有后缀只是让管理人员较为轻易的管理文件罢了。 使用 file 命令可以查看文件真实的数据类型。

4.I/O重定向问题

这个可以查看我的上一篇文章,把重定向的具体含义明明白白告诉你。
地址: https://blog.csdn.net/xyz_dream/article/details/89547687

5.涉及DNS

参考大神阮一峰的博客: http://www.ruanyifeng.com/blog/2016/06/dns.html

涉及到的命令以及配置文件:

1.host www.baidu.com #查看映射的ip地址
2.dig +trace www.baidu.com #跟踪dns解析过程
+short mojun.me #直接输出A映射的ip地址
3.nslookup www.baidu.com #查看dns信息
4.修改本地的dns服务器配置 。 vim /etc/resolve.conf
nameserver 114.114.114.114 #电信公共dns解析服务器
nameserver 8.8.8.8 #Google公共dns解析服务器

6.涉及网络层以及TCP


一.  ss / netstat  命令

两者参数差不多,不过ss命令比netstat命令快很对。  ss直接拿到内核第一手资料,netstat则多绕了一点。

#ip类型
-4  #ipv4
-6 #ipv6

#传输层
-t  #tcp
-u #udp

-n  #信息直接以数字的形式输出  默认以服务形式。  例如 22端口 显示  sshd  但是 -n参数会把 端口号信息打印为 22
而不是 sshd

-l #连接处于 listen状态的
-a #列出所有状态的连接信息

-p #进程pid
-m #所占用内存情况

一般用法:   

ss -lnt   #以数字形式的信息查询 正在listen的tcp连接信息

netstat  -lnt  #和上面ss一样   只是两个命令可能有些不一样而已

展开阅读全文

没有更多推荐了,返回首页