linux看这一篇就够了

文章目录

    • 〇、系统调用
    • 一、网络管理命令
    • 二、进程管理命令
    • 三、目录和文件操作命令
    • 四、用户和组管理
    • 五、RPM YUM源(在线 离线)
      • 5.1、理清概念 centos需要epel和repo
      • 5.2、下载rpm包
      • 5.3、批量安装
    • 六、常用
    • 七、vim
    • 八、常用正则
    • 九、性能优化实战(系统调优)

〇、系统调用

【很科普】
【老师将的网络课,回味无穷】
【中断处理程序】:

  • 不同的中断有不同的中断号,每个中断号都对应了一个中断处理程序
  • 在内核中有一个叫中断向量表的数组来映射这个关系
  • 当中断到来时,cpu会暂停正在执行的代码,根据中断号去中断向量表找出对应的中断处理程序并调用
  • 中断处理程序执行完成后,会继续执行之前的代码

一、网络管理命令

  • ping ifconfig arp traceroute route nslookup nbtstat netstat net

二、进程管理命令

  • w top ps kill pkill killall
  • “四大名捕”

三、目录和文件操作命令

  • 文件,目录,文件内容,压缩命令总结
  • 目录操作命令:pwd,cd,ls,mkdir,du
  • 文件操作命令:touch,file,cp,rm,mv,which,find,ln
  • 文件内容操作命令:cat,more,less,head,tail,wc,grep, awk, sed, vim
  • 归档及压缩命令:gzip,bzip2,tar

四、用户和组管理

  • id usermod useradd userdel groupadd

五、RPM YUM源(在线 离线)

利用yum下载rpm包并批量安装
CentOS7在线安装MySQL5.7—开启远程访问权限
Centos7安装Python3.7
Centos7下python虚拟环境的搭建

5.1、理清概念 centos需要epel和repo

centos是redhat的开源版本,是企业linux系列的,没有yum功能,所以需要配置epel。
配置了epel,又需要配置repo,以使得软件源有软件,且软件是较新的较全的。

5.2、下载rpm包

#### 方法一:downloadonly

1.yum自动下载RPM包及其所有依赖的包至/root/rpm目录:
    
- yum install yum-plugin-downloadonly  
 
- yum install --downloadonly --downloaddir=/root/rpm <package-name>
#### 方法二:yum-utils中的yumdownloader
1.安装yum-utils
- yum -y install yum-utils
2.使用yumdownloader下载软件包httpd
- yumdownloader httpd
#### 方法三:利用yum的缓存功能
默认情况下,yum在安装软件包后会自动清理软件包,修改配置,使yum不再清理软件包
- vim /etc/yum.conf中修改keepcache = 0改为keepcache = 1
- /etc/init.d/yum-updatesd restart
- yum -y install httpd
_这时软件包已经安装下载,目录为/var/cache/yum_

5.3、批量安装

把所有的rpm包放在一个目录下

  • rpm -Uvh --force --nodeps *rpm

六、常用

  • 学习命令

  • 批量杀进程

  • date

  • nc:网络工具中的瑞士军刀

  • pushd和popd

  • crontab

  • tcpdump

  • tcpdump离线

  • lsof 命令是 Linux 系统的扩展工具,它的含义是 list opened filedesciptor (列出已经打开的文件描述符),在 Linux 系统中,所有的与资源句柄相关的东西都可以统一抽象成文件描述符(filedescriptor,简称 fd)。一个文件句柄是一个 fd,一个 socket 对象也可以称之为 fd 等等。

lsof -i  默认也会显示 ip 地址和端口号的别名
lsof -Pni 相对应地显示 ip 地址和端口号
  • 问题一:怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

执行睡眠 :ctrl+z 挂起当前进程; fg 恢复后台 把后台任务调到前台执行-fg ; 把停下的后台任务在后台执行起来 bg
查看当前用户 id:”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助:如 man adduser 这个很全 而且有例子;adduser --help 这个告诉你一些常用参数;info adduesr;

  • 问题二:建立软链接(快捷方式),以及硬链接的命令。

软链接:ln -s slink source
硬链接:ln link source

  • 问题三:终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

终端 /dev/tty
黑洞文件 /dev/null

  • 问题四:用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)

wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。

  • 问题五:Grep 命令有什么用?如何忽略大小写?如何查找不含该串的行?

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename

  • 问题六:Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

(1)、不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
(2)、暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
(3)、就绪状态:在 run_queue 队列里的状态
(4)、运行状态:在 run_queue 队列里的状态
(5)、可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
(6)、zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
(7)、退出状态
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程

  • 问题七:利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?

ps -ef (system v 输出)
ps aux bsd 格式输出
ps -ef | grep pid

  • 问题八:怎么查看系统支持的所有信号?

kill -l

  • 问题九:搜索文件用什么命令? 格式是怎么样的?

find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name “string*”

  • 问题十:查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?

查找自己所在的终端信息:who am i
查看当前谁在使用该主机:who

  • 问题十一:使用什么命令查看磁盘使用空间?空闲空间呢?

df -hl (du 显示目录或文件的大小 df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统)
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot

  • 问题十二:通过什么命令查找执行命令?

which 只能查可执行文件
whereis 只能查二进制文件、说明文档,源文件等

  • 问题十三:怎么对命令进行取别名?

alias la=‘ls -a’

  • 问题十四:awk 详解。

grep、sed、awk + 正则
awk ‘{pattern + action}’ {filenames}
#cat /etc/passwd |awk -F ‘:’ ‘{print $1"\t"$7}’ //-F 的意思是以’:'分隔 root /bin/bash
daemon /bin/sh 搜索/etc/passwd 有 root 关键字的所有行
#awk -F: ‘/root/’ /etc/passwd root❌0:0:root:/root:/bin/bash

  • 问题十五:当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

可以使用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。
在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。
比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。
接着使用bind进行绑定。
[root@localhost ~]# bind ‘”\e[24~":“date”’
注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。
【附】也可以使用showkey -a命令查看按键对应的字符序列。

  • 问题十六:如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?

使用命令compgen ­-c,可以打印出所有支持的命令列表。

  • 问题十七:你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

使用linux命令 ’disown -r ’可以将所有正在运行的进程移除。

  • 问题十八:怎样一页一页地查看一个大文件的内容呢?

通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要.
[root@localhost ~]# cat file_name.txt | more

  • 问题十九:怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?

使用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以使用whatis zcat 去查看‘zcat’的介绍以及使用简要。
[root@localhost ~]# whatis zcat
zcat [gzip] (1) – compress or expand files

  • 问题二十:at 、crontab
  • 问题二十一:CentOS 7进程守护&监控
  • 问题二十二:备份【rsync(Remote Sync,远程同步)】
  • 问题二十三:磁盘管理全汇总

七、vim

插件:

  • 括号自动补全插件 Auto Pairs
  • 代码块注释插件 NERD Commenter
  • 添加包围符号插件 Vim Surroun

配置:

使用:

  • vi +n filename 打开文件,并将光标置于第 n 行的首部
  • vi +/pattern filename 打幵文件,并将光标置于第一个与 pattern 匹配的位置
  • D 删除光标位置到行尾的内容

八、常用正则

第一个 第二个

意义 字符
任意字符 .
字母+数字+_ \w 取反\W
数字 \d 取反\D
空白字符 \s 取反 \S
字符集合 [a-z]
重复范围 {a,b} —快捷方式 一次或多次+ 零个或多个* 零个或一个?
分组 () 取值$1 $2…

总结:尽量使用泛匹配、使用括号得到匹配目标 尽量使用非贪婪模式 有换行符就用re.S

九、性能优化实战(系统调优)

【 TalkGo 读书会第一期选择了极客时间专栏 「Linux 性能优化实战」】
【其中一哥们儿的总结】
linux看这一篇就够了_第1张图片

  • 1、找出系统中使用CPU最多的进程 top -> P 或 ps aux --sort -pcpu
  • 2、找出系统中使用内存最多的进程 top -> M 或 ps aux --sort -rss | more
  • 3、找出系统中对磁盘读写最多的进程 iostat -d -k -p /dev/sdb 或 iotop -o -d 1显示正在使用磁盘的进程
  • 4、找出系统中使用网络最多的进程 nload 或 nethogs 都直接回车就行

经验:单核心,1分钟的西永平均负载不要超过3,就可以,这就是个经验值

你可能感兴趣的:(linux)