运维--Linux下常用指令

1. 文件压缩与解压

[tar的使用]

  • https://blog.csdn.net/user836728528852/article/details/123802581
  • http://c.biancheng.net/view/3976.html
#文件压缩
tar -cvf file.tar.gz file
#解压缩
tar -xvf file.tar.gz

2. 文件传输

(1) 文件的上传和下载

文件下载:sz
文件上传:rz

也可以通过winscp等工具进行文件的传输
(2) 服务器之间的文件传输

传输单个文件 scp target_file admin@server_ip:/targe/path 
传输单文件夹 scp -r target_file admin@server_ip:/targe/path

3. vim

3.1 批量注释
(1) 在 10 - 20 行添加 // 注释

:10,20s#^#//#g

(2) 在 10 - 20 行删除 // 注释

:10,20s#^//##g

(3) 在 10 - 20 行添加 # 注释

:10,20s/^/#/g

(4)在 10 - 20 行删除 # 注释

:10,20s/#//g

3.2 批量字符替换
(1) 将def对abc进行全局替换

:%s/abc/def/g

4. Ubuntu

搜索某个包是否可用

sudo apt-cache search libgsl 

输出如下

libgsl-dbg - GNU Scientific Library (GSL) -- debug symbols package                                                                                                       
libgsl-dev - GNU Scientific Library (GSL) -- development package                                                                                                         
libgsl23 - GNU Scientific Library (GSL) -- library package                                                                                                               
libgslcblas0 - GNU Scientific Library (GSL) -- blas library package                                                                                                      
libocamlgsl-ocaml - GNU scientific library for OCaml                                                                                                                     
libocamlgsl-ocaml-dev - GNU scientific library for OCaml 

从上述包中选择一个进行安装

sudo apt-get install libgsl-dev

5.Git

https://blog.csdn.net/zhezhebie/article/details/78496693
(1) 在当前分支下切出来新分支

git checkout -b dev-release-android11 # 这里的dev-release-android11就是新分支的名字

(2) 关联到远程仓库

git push --set-upstream origin dev-release-android11

(3) 查看是否关联成功

git branch -vv

(4) 将某个分支的所有修改合并到master
首先切换到master分支

git merge dev-name

(5) git版本回退

git log
git reset --hard 版本号

(6) 查看当前没有add 的内容修改

git diff

(7) 查看某个提交的具体修改

git show 版本号

(8) 向当前分支合并指定提交

# feature 分支上的某次commit 62ecb3要合并到master
git checkout master
git cherry-pick 62ecb3

(9) 查看任意两个版本之间的改动

git diff 版本号码1 版本号码2

(10) 比较两个版本号码的src 文件夹的差异

git diff 版本号码1 版本号码2  src

(11) 压缩多个commit为一个
https://kinboyw.github.io/2019/04/09/Git-%E5%8E%8B%E7%BC%A9%E5%A4%9A%E4%B8%AAcommit%E4%B8%BA%E5%8D%95%E4%B8%AAcommit/
(12) 查看当前分支的本地修改


(13) 远程分支的强制回滚

git checkout current_branch_name # 切换到当前分支
git reset --hard commit_id # 回滚到某次提交
git push -f origin current_branch_name # 强制回滚

(14) 查看远程所有分支

git branch --all
git checout 

(15) 切换到某个远程分支或者本地分支

git checkout 分支名称

6.Linux

https://www.myfreax.com/how-to-uninstall-software-packages-on-ubuntu/

常用指令

  • cd
  • ls
  • pwd
  • cd
  • cp src_file dst_file 拷贝文件src_file并命名为dst_file
  • mv src_filr dirpath/ 将src_file移动到dirpath文件夹下
  • mkdir target_path 创建名为target_parth的文件夹
  • touch src_file 创建一个空的文件
    • touch test.docx 就是创建一个test文档
    • touch test.sh 就是创建一个名为test的shell脚本
  • cat target_file 输出并查看traget_file的内容

基本指令

(1) 全局文件搜索

sudo find / -name dialplan 使用文件查找命令直接查找dialplan目录

(2) 获取本地的ip

cti_ip=`ifconfig |grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
grep:过滤字段

(3) 获取8021端口连接建立的数量

extablished_num=`netstat -anp | grep jdcc-run | grep -i "8021" | wc -l`

(4) 获取8021端口连接的具体ip

NR==1 是只取第一行
netstat -na|grep 8021|awk '{print $5}'|awk -F: 'NR==1{print $1}'

(5) telnet指令

当某个服务器无法连接时可以尝试使用telnet指令对服务器的指定ip进行通信
telnet 127.0.0.1 19001

(6) 查找含有某个字段的所有文件

https://www.runoob.com/linux/linux-comm-find.html
find . | xargs grep string #查找当前目录下文件内容包含字符串string的文件
find / -name file_name #查找文件名为file_name的文件

(7) nc指令向固定IP和port发送指令

nc IP Port < commands.txt

(8) 创建软连接

在当前路径下创建test,并将test软连接到/var/www路径下的test
ln -s /var/www/test test

(9) 杀掉包含所有mysql字段的进程

ps -ef|grep mysql|grep -v grep|cut -c 9-15|xargs kill -9  

(10) 对比文件夹中各个文件的不同

diff -Naur linux-2.6.8.1 linux-2.6.8.1-xyzzy

(11) 查询指令

查找目录下的所有文件中是否含有某个字符串
find .|xargs grep -ri "xxxx"
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "xxxx" -l 

(12) grep使用

https://www.runoob.com/linux/linux-comm-grep.html

(13) 批量删除
需要删除/data/local/tmp路径下以“.xml”结尾的文件

find . -name "*.xml" -exec rm -f {} \;

说明
rm -f {} : 删除时,不提示,{}表示查找到的文件

6.1 grep的使用

(1) 或操作

  • grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行
  • egrep ‘123|abc’ filename // 用egrep同样可以实现
  • awk ‘/123|abc/’ filename // awk 的实现方式

(2) 与操作

  • grep pattern1 files | grep pattern2 //显示既匹配 pattern1 又匹配 pattern2 的行。

(3) 其他操作

  • grep -i pattern files //不区分大小写地搜索。默认情况区分大小写,
  • grep -l pattern files //只列出匹配的文件名,
  • grep -L pattern files //列出不匹配的文件名,
  • grep -w pattern files //只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
  • grep -C number pattern files //匹配的上下文分别显示[number]

(4) 递归查找

grep -r -ni "target_string" target_path // -i 参数是不区分大小写

6.2 sed的使用

(1) 批量递归查找和替换目标字符串

  • 方式一:
sed -i "s/原字符串/替换后字符串/g" `grep '搜索关键字' -rl /data/目标目录/ --include "*.html"`

比如:
sed -i "s/MYSQLTP:root:123456/MYSQLTP:freeswitch:freeswitch/g" `grep "MYSQLTP:root:123456" -rl ./`
  • 方式二:
sed -i "s/yyyy/xxxx/g" |xargs grep yyyy -rnl ./

比如:
sed -i "s/MYSQLTP:root:123456/MYSQLTP:freeswitch:freeswitch/g" |xargs grep "MYSQLTP:root:123456" -rnl ./

7. freeswitch

(1) 查看freeswitch的注册信息

sofia status profile internal

(2) 查看注册分机号

sofia status profile internal reg

(3) freeswitch日志查看
https://blog.csdn.net/jiayangang/article/details/79367688

日志级别
直接F8也可以开启loglevel7
console loglevel (0~7)
打开sip详细日志
sofia profile internal siptrace on
关闭sip详细日志
sofia profile internal siptrace off

(4) 通过指定网关外呼指定号码并播放回音

originate sofia/gateway/gw1/xxxxxx &echo()
originate sofia/gateway/jdcc-test/123321654 &echo()

(5) 其他常用指令

  • 通过命令行执行fs控制台命令:fs_cli -x “reloadxml”
  • 查看sofia模块状态:sofia status
  • 查看freeswitch状态:status
  • 查看通话命令:show calls
  • 查看channel命令:show channels
  • 打开log命令:console loglevel 7
  • 关闭log命令:console loglevel 0
  • 重新加载xml:reloadxml
  • 开启全局信令追踪:sofia global siptrace on
  • 关闭全局信令追踪:sofia global siptrace off
  • 发起一个通话:originate 呼叫字符串 &fsApp
  • 挂断所有通话:hupall
  • 退出fs_cli: /bye,/exit
  • 查看注册的话机 sofia status profile internal reg
  • 查询分机号是否注册 sofia status profile internal reg num
  • 清空所有注册话机 sofia profile internal flush_inbound_reg
  • 查看已加载的module: unload mod(tab)
  • 设置最大session数:fsctl max_sessions
  • 网关reload:sofia profile external restart
  • 加载模块 reload mod_XXX
  • 设置日志输出等级:fsctl loglevel 7
  • 获取系统参数值:global_getvar name
  • 设置系统参数:global_setvar =
  • 清空所有注册信息:sofia profile internal flush_inbound_reg
  • 订阅pbx所有event事件:/event all
  • 执行js脚本:jsrun test.js
  • 最近1秒的sps:fsctl last_sps
  • 设置sps 上限:fsctl sps [int]
  • 发送info消息:uuid_send_info uuid msg

针对某个文件进行替换

sed -i ‘s/O2/O0/g’ Makefile.am

8. mysql

(1) 启动mysql
service mysql start # 首先启动mysql的服务
mysql -u root -p

重置密码
update mysql.user set authentication_string=password(‘123456’) where user=‘root’

(2) 完全卸载mysql并重新安装
https://blog.csdn.net/chudongfang2015/article/details/52154903

Redis

(1) redis修改端口
Redis在redis.conf中修改端口号后使用如下指令启动server
./redis-server …/redis.conf

gcc升级
(1) 源码编译安装
https://www.cnblogs.com/music-liang/p/12900457.html
(2) 通过yum安装
https://www.cnblogs.com/jixiaohua/p/11732225.html
Vim
(1) 多个匹配项在同一行
/.*red&.*blue

(2) 进行整行的替换
%s/foo/bar/g # 用bar对foo进行全文替换

GDB

gdb常用的调试命令
https://blog.csdn.net/Jin_Kwok/article/details/80104022
b:设置断点
n:单步运行(不跳入函数)
s:单步运行(跳入函数)
l 1,100:查看源代码

Python

python在后台运行脚本
https://blog.csdn.net/weixin_42782150/article/details/104475814

province_info.log是运行的日志
python province_main.py >province_info.log &

Tcpdump

(1) 地指定网卡抓包并保存到本地
sudo tcpdump -i 网卡 port 1234 -w mid.pcap

Sipp

如何在服务器安装sipp
https://www.techrepublic.com/article/how-to-install-the-sipp-testing-tool-on-ubuntu-server-18-04/

  • 下载对应版本的压缩包直接解压缩
  • 安装相应的依赖库
  • 执行下列编译指令
    cd /path/to/sipp
    cmake . -DUSE_SSL=1 -DUSE_SCTP=1 -DUSE_PCAP=1 -DUSE_GSL=1
    make
    cp sipp /usr/local/bin

sipp各个参数的含义
sipp -sn uac 172.31.89.4:5060 -r 1 -rp 3000 -inf data.csv -p 7098 -i 172.31.89.242 -s 8001 -sf uac_onecall.xml –m 1000 –l 900

各个参数说明:

  • 172.31.89.4:5060:远端地址和端口(在脚本中用[remote_ip],[remote_port]引入)
  • -r 1 -rp 3000:每三秒钟发一个呼 (-r 表示单位时间内发出的呼叫个数, -rp表示定义的单位时间)
  • -inf data.csv:引入数据配置文件
  • -s 8001:被叫号码(在脚本中用[service]引入)
  • -sf uac_onecall.xml:引入脚本文件,根据需要模拟的呼叫流程编写
  • -sn uac :执行默认的uac流程,如需执行自己编写的流程文件,命令中应不含此参数
  • -m 1000:发送1000次呼叫后停止并退出。
  • -trace_screen -screen_overwrite true :在保存屏幕文件时,覆盖屏幕文件(默认为true)。
  • -screen_file uac.log:设置屏幕文件的名称。
  • -r 50 是每秒发送50条SIP消息
  • -i 172.31.89.242:本地地址(在脚本中用[local_ip]引入)
  • -p 7098:本地端口(在脚本中用[local_port]引入)
  • -l 900 :设置最大的并发呼叫量
  • caps呼叫时长,当因种种原因导致现存呼叫总数达到此值时,SIPp将停止产生新的呼叫,等待现存呼叫总数低于此值时才继续产生呼叫。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023年网络建设与运维国赛的Linux部分将涉及大量与Linux操作系统相关的技术和实践。参赛选手需要具备扎实的Linux基础知识、熟悉常用Linux命令和工具,以及对网络架构和运维流程有深入了解。以下是几个可能出现的考点和相关内容: 1. Linux 系统安装与配置:选手需要了解如何安装各种Linux发行版,并进行基本配置,如网络设置、用户管理和权限控制等。 2. Linux 网络服务:主要考察选手对于各种网络服务的搭建和配置能力,如Web服务器(Apache/Nginx)、数据库服务器(MySQL/PostgreSQL)和邮件服务器(Postfix/Dovecot)等。 3. Linux 系统监控与性能优化:选手需要熟悉Linux系统的监控和调优手段,如使用top、vmstat等工具进行性能监测,优化内存管理、磁盘IO等问题。 4. Linux 安全防护与应急响应:选手需要掌握Linux系统的安全防护策略,如配置防火墙、使用SELinux进行强化等;同时,还需了解常见的攻击方式和应急响应措施。 5. Shell 脚本编写:选手需要具备基本的Shell编程能力,能够使用Shell脚本实现日常运维任务的自动化。 在比赛中,选手需要灵活运用自己的知识和技能,通过实际操作和解决问题的能力展现自己的水平。此外,对于团队竞赛,选手之间的协作能力和分工合作也是考核的重点之一。 要在2023年的网络建设与运维国赛的Linux部分取得好成绩,选手们需要提前系统学习相关知识并进行实践,注重积累经验,不断完善自己的技能和能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值