超有用的linux笔记
名词解释
根目录说明
tree -L 1
.
├── bin -> usr/bin # 英语binary的缩写,表示”二进制文件“,bin目录包含了会被所有用户使用的可执行程序
├── boot # 英语boot表示”启动“,boot目录包含与Linux启动密切相关的文件
├── dev # 英语device的缩写, 表示”设备“,包含外设,它里面的子目录,每一个对应一个外设
├── etc # etc目录包含系统的配置文件,按照原始Unix的说法,这下面都是一堆零零碎碎的东西,就叫etc好了,是历史遗留问题
├── home # 英语home表示”家“,用户的私人目录,在home目录中,我们放置私人的文件
├── lib -> usr/lib # 英语library的缩写,表示”库“,目录包含被程序所调用的库文件,以.so结尾的文件
├── lib64 -> usr/lib64
├── media # 英语media表示”媒体“,可移动的外设(USB盘,SD卡,DVD,光盘等)插入电脑时可以让我们通过media的子目录来访问这些外设的内容
├── mnt # mnt是英语mount的缩写,表示”挂载“,有点类似media目录,但一般用于临时挂载一些装置
├── opt # 英语 optional application software package的缩写,表示”可选的软件包“,用于安装多数第三方软件和插件
├── proc
├── root
├── run
├── sbin -> usr/sbin # 英语system binary的缩写, 表示”系统二进制文件“ ,包含系统级的重要可执行程序
├── srv # 英语service的缩写,表示”服务“,包含一些网络服务启动之后所需要取用的数据
├── sys
├── tmp # 英语temporary的缩写,表示”临时的“,普通用户和程序存放临时文件的地方
├── usr # 是英语Unix Software Resource的缩写,表示”Unix操作系统软件资源“,目录里安装了大部分用户需要调用的程序
└── var # 英语variable的缩写,表示”动态的,可变的“,var通常包含程序的数据,比如log(日志)文件,记录电脑了发生了什么事
挂载
所谓的挂载
就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说进入该目录就可以读取该分区的意思。这个操作我们称为挂载
,那个进入点的目录我们称为挂载点
。
shell
当谈到命令时,我们实际上指的是shell
。shell是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序
。几乎所有的Linux发行版都提供shell程序,该程序来自于称之为bash的GNU项目。bash是Bourne Again Shell的首字母缩写,Bourne Again Shell基于这样一个事实,即bash是sh的增强版本,而sh是最初的UNIX shell程序,由Steve Bourne编写。
终端
当使用图形用户界面时,需要另一种叫做终端仿真器(terminal emulator)的程序与shell进行交互。
如果我们仔细查看桌面菜单,那么很可能会找到一个款终端仿真器。在KDE环境下使用的是konsole,而在GNOME环境下使用的是gonme-terminal,但在桌面菜单上很可能将它们简单地统称为终端
。在Linux系统中,还有许多其他的终端仿真器可以使用,但是它们基本上都做同样的事情:让用户访问shell
。
硬件相关
修改主机名
查看当前主机名
hostname
临时修改主机名:
hostname new_name(新主机名)
上面的修改方式属于临时修改,系统重启后失效,如果想要永久性修改主机名,那么就需要修改配置文件
- 在CentOS6中,需要修改
/etc/sysconfig/network
文件 - 在CentOS7中,需要修改
/etc/hostname
文件
查看CentOS版本
cat /etc/redhat-release
查看CPU总核数
# 表示一颗CPU四核
grep processor /proc/cpuinfo |wc -l
grep -c processor /proc/cpuinfo
校正CentOS7时间
GPS系统中有两种时间区分,UTC就0时区的时间,CST为本地时间,如北京为早上八点(东八区),UTC时间比北京时晚八小时;
CST:Central Standard Time,UTC+8:00 中央标准时间
UTC:Universal Time Coordinated 世界协调时间
# 安装ntp软件包
sudo yum -y install ntp
# 设置ntp开机自启
systemctl enable ntpd.service
# 启动ntp服务
sudo service ntpd.service restart
如果需要配置CTS时间,需要创建如下软链接
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
如果需要配置UTC时间,需要创建如下软链接
ln -sf /usr/share/zoneinfo/Universal /etc/localtime
修改文件最大打开数
linux修改文件最大打开数量的方法,默认情况下是1024的。
我们可以使用 ulimit -n
命令查看
如果我们想临时修改,可以使用 ulimit -n 数量
来修改,不过系统重启后修改会丢失
如果想永久修改,需要修改/etc/security/limits.conf文件
修改系统端口最大监听队列的长度
在linux中,/proc/sys/net/core/somaxconn这个参数,定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128。
somaxconn限制了接收新 TCP 连接侦听队列的大小。对于一个经常处理新连接的高负载 web服务环境来说,默认的 128 太小了。大多数环境这个值建议增加到 1024 或者更多。 服务进程会自己限制侦听队列的大小(例如 sendmail(8) 或者 Apache),常常在它们的配置文件中有设置队列大小的选项。大的侦听队列对防止拒绝服务 DoS 攻击也会有所帮助。
vim /etc/sysctl.conf
# 添加
net.core.somaxconn = 1024
然后执行sysctl -p使配置生效。
修改内核内存分配策略
overcommit_memory是一个内核对内存分配的一种策略。 具体可见/proc/sys/vm/overcommit_memory下的值
overcommit_memory取值又三种分别为0,1,2
- overcommit_memory=0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
- overcommit_memory=1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
- overcommit_memory=2, 表示内核允许分配超过所有物理内存和交换空间总和的内存。
当我们启动redis服务时,会报警告,翻译为【“警告超限”内存设置为0!在内存不足的情况下,后台保存可能会失败。若要解决此问题,请将“vm.overcommit_memory=1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。】
vim /etc/sysctl.conf
# 添加
vm.overcommit_memory = 1
然后执行sysctl -p使配置生效。
vim编辑器
基本上vi共分为3种模式,分别是一般命令模式、编辑模式与命令行模式。
一般命令模式(command mode)
以vi打开一个文件就直接进入一般命令模式了(这是默认的模式,也成为一般模式)。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理文件内容,也可以使用【复制、粘贴】来处理你的文件内容。
编辑模式(insert mode)
在一般命令模式中可以进行删除、复制、粘贴等的操作,但是却无法编辑文件的内容。要等到你按下【i、I、o、O、a、A、r、R】等任何一个字母之后才会进入编辑模式。注意了,通常在Linux中,按下这些按键时,在界面的左下方会出现【INSERT】或【REPLACE】的字样,此时才可以进行编辑,而如果要回到一般命令模式时,则必须要按下【Esc】这个按键即可退出编辑模式。
命令行模式(command-line mode)
在一般模式当中,输入【
超有用的linux笔记的更多相关文章
- Linux 学习笔记之超详细基础linux命令(the end)
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 14---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 4
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 3----------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 14
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 13---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 13
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 12---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 12
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 11---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 11
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 10---------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 10
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 9
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 8----------------- ...
- Linux 学习笔记之超详细基础linux命令 Part 8
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 7----------------- ...
随机推荐
- Codeforces Edu Round 66 A-E
A. From Hero to Zero 通过取余快速运行第一步即可.由于\(a \% b (a >= b) <= \frac{a}{2}\).所以总复杂度不超过\(O(log_2n)\) ...
- Kubernetes Python Client 初体验之安装授权
最近想做一个基于flask的云平台管理服务器,利用python调用kubenetes提供的API来实现云平台的操作.笔者使用的是Windows,kubernetes集群安装在Ubuntu和Respbi ...
- JAVA死锁的检测流程
步骤一. 查询检测的进程 1.首先查看系统资源占用信息,TOP看一下 发现正在运行的JAVA项目CPU占用率很高,百分之360左右了,那么问题一定出在这个程序中 2 .也可以通过名称查询进程pid 步 ...
- java实现TCP通信(带界面)
服务端: package NetWork; import java.io.*;import java.net.*;import java.awt.event.*;import java.awt.*;i ...
- Java PDF全套笔记
java 知识pdf文档,基本涵盖了java知识点 java基础部分:https://github.com/HOSystemH/JavaFile/tree/master/JavaPDF java高级部 ...
- win32 C++制作美观按钮,告别win32 API编程中默认的灰色按钮
使用win32 API制作美观按钮,当鼠标移入/移出按钮时改变按钮背景颜色,类似HTML网页中的效果,告别win32 API编程中默认的灰色按钮,效果图见下面动图和视频. 下载地址: 按钮效果(win ...
- 使用HBase Shell命令
使用HBase Shell命令 或 使用HBase Java API完成: 列出HBase所有的表的相关信息,例如表名: 在终端打印出指定的表的所有记录数据: 向已经创建好的表添加和删除指定的列族或列 ...
- uni-app开发中的各种问题处理
特别注意: ※:在components下的组件,图片路径用 /static/img/back.png 这样的根路径形式,不要用../static 或者 ../../static 的形式,不然很坑, ...
- 图的遍历BFS
图的遍历BFS 广度优先遍历 深度优先遍历 可以进行标记 树的广度优先遍历,我们用了辅助的队列 bool visited[MAX_VERTEX_NUM] //访问标记数组 //广度优先遍历 void ...
- 精尽Spring MVC源码分析 - HandlerMapping 组件(二)之 HandlerInterceptor 拦截器
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...