linux与shell脚本编程
linux与shell脚本编程
OceanStar的学习笔记
这个作者很懒,什么都没留下…
展开
-
shell:变量怎么加1
【代码】shell:变量怎么加1。转载 2023-05-10 12:28:06 · 3244 阅读 · 0 评论 -
shell:数组及其遍历
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由0开始。转载 2023-05-10 12:23:06 · 864 阅读 · 0 评论 -
shell:如何保存grep 结果里面的换行符?
可以看到,换行符没有了。转载 2023-05-09 20:20:56 · 506 阅读 · 0 评论 -
centos:Failed to start cron.service: Unit cron.service not found.
输入sudo service cron start 重启下cron服务,报错:Failed to start cron.service: Unit cron.service not found.写错了,应该是sudo service crond start ,少了一个d转载 2022-06-28 14:50:48 · 2482 阅读 · 0 评论 -
centos:error while loading shared libraries: xxx.so.x“ 错误的原因和解决办法
今天在执行一个protobuf程序时,提示error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory错误。google了一下,是由于找不到lib这个文件。解决办法:一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享...转载 2019-04-26 17:03:40 · 2576 阅读 · 0 评论 -
shell:查看一个端口是否被占用
后台运行进程:nohup ./main > /dev/null 2>&1 &查找占用端口的进程netstat -anp | grep 4333已知道进程名,如何找出相应进程ps -aux|grep ./main | grep -v grepps -aux | grep ./auto_startup.sh | grep -v grep...转载 2018-07-07 22:25:22 · 3832 阅读 · 1 评论 -
shell:command -v用法
在Linux中,command -v 可以判断一个命令是否支持,如果一个脚本需要,或者还要家if判断,则示例如下:if command -v python >/dev/null 2>&1;then echo "yes"else echo "no"fi脚本运行后,如果系统支撑python,则运行结果为yesif command -v docker >/dev/null 2>&1;then echo "yes"else ec转载 2021-01-05 17:54:24 · 4265 阅读 · 0 评论 -
Linux:tar 命令显示进度条
实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作。传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小。pv 的安装一般的软件管理工具都有提供:centos 下 yum install pvubuntu : apt-get install pvmac:brew install pvpv 的详细用法可参考:https://linux.die.net/man/1/pv压缩mac:tar -cf - questi转载 2021-01-29 19:36:31 · 4676 阅读 · 0 评论 -
Linux:查看和关闭后台运行程序的方法
1、运行.sh文件直接用./sh 文件就可以运行,但是如果想后台运行,即使关闭当前的终端也可以运行的话,需要nohup命令和&命令。(1)&命令功能:加在一个命令的最后,可以把这个命令放在后台执行(2)nohup命令功能:不挂断的运行命令2、查看当前后台运行的命令有两个命令可以用,jobs和ps,区别是jobs用于查看当前终端后台运行的任务,换了终端就看不到了。而ps命令用于查看瞬间进程的动态,可以看到别的终端运行的后台进程。(1)jobs命令功能:查看当前终端后台运行的转载 2021-01-14 19:25:06 · 8395 阅读 · 0 评论 -
netdata:shell脚本获取当前操作系统(linux)的信息
检测内核#!/usr/bin/env sh# -------------------------------------------------------------------------------------------------# detect the kernelKERNEL_NAME="$(uname -s)"KERNEL_VERSION="$(uname -r)"ARCHITECTURE="$(uname -m)"echo "NETDATA_SYSTEM_KERNEL转载 2021-01-05 17:49:49 · 1402 阅读 · 0 评论 -
linux的systemd与init的区别
介绍init以前的Linux启动都是用init进程。启动服务:$ sudo /etc/init.d/apache2 start# 或者$ service apache2 start缺点:启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。systemd在较新的linux系统上,都使用systemd 取代了init,成为系统的第一个进程(PID 等于转载 2020-12-24 20:37:34 · 5757 阅读 · 2 评论 -
Linux上统计文件夹下文件个数以及目录个数
统计文件夹下文件的个数可以试着在终端运行ls -l,可以达到如下结果还可以这样转载 2020-08-27 15:57:17 · 25711 阅读 · 5 评论 -
Shell:换行符
tar -zcvf cutimge_20200827.tar.gz cutimage/转载 2020-08-27 14:30:57 · 1811 阅读 · 0 评论 -
Generating /run/initramfs/rdsosreport.txt 问题
问题:输入ls /dev/mapper以我的电脑为例:此时会出现3个文件。其中rhel-root文件是我们下面所要用的文件。ls的目的就是为了让大家能知道自己带“-root”文件的前缀是什么,因为我之前在查这个错误的时候,别人使用“centos-root”输入命令,我学着他的样子,却被提示我没有“centos-root这个文件”,ls后才发现我的是“rhel-root”文件输入xfs_repair /dev/mapper/rhel-root -L注意:一定要重视第1步!先知道自己是cen转载 2020-08-24 08:52:30 · 921 阅读 · 1 评论 -
虚拟机CentOS启动报错-entering emergency mode解决办法
解决方法只需要在这里的shell键入一条命令:xfs_repair -v -L /dev/dm-0执行完成后即可重启,恢复正常。此命令的作用是强制清除日志,不会删除自己的文件转载 2020-08-19 11:59:03 · 2961 阅读 · 3 评论 -
centos:Yum安装软件时被PackageKit锁定
https://blog.csdn.net/nangy2514/article/details/99851866转载 2020-07-30 20:01:10 · 1186 阅读 · 0 评论 -
shell:获取当前文件路径,获取某个文件夹下的所有文件名
curPath=$(readlink -f "$(dirname "$0")")echo $curPath #或者curPath=$(dirname $(readlink -f "$0"))echo $curPath转载 2020-07-07 08:51:39 · 3048 阅读 · 0 评论 -
centos虚拟机扩展磁盘空间
1 第一步 在vmware中将虚拟机关机后,鼠标右键设置,直接点击扩展加自己想要扩展的数量就可以了,这个比较简单不多说2 第二步 设置后进系统查看空间大小变化,实际并没有什么变化,我用的命令是df -h,我就蒙B了,上网一顿找,总算找到一个靠谱点的文章,但文章后半部分不对,我又结合另一个文章实现了这个针对centos版本的扩容,来吧,上操作。开始真正的操作1,执行命令:lsblk 进行查看 ,发现我在虚拟机中扩展的空间在sda中,综合各种说法,说白了就是这个sda并没有进行分区,所以现在这块的空间属转载 2020-07-02 14:43:03 · 783 阅读 · 0 评论 -
IntelliJ IDEA全局内容搜索和替换
使用IDEA过程中,有时会在整个项目里或指定文件夹下进行全局搜索和替换,这是一个很方便功能。使用方法如下:一、全局搜索1、使用快捷键Ctrl+Shift+F打开搜索窗口,或者通过点击Edit–>Find–>Find in path打开搜索窗口2、搜索界面如下,主要分为上中下三部分,上部主要为搜索条件(要搜索的内容、范围、方式等),中间部分为包含搜索内容的文件列表,点击单个文件可以在下面部分预览文件内容。3、搜索范围包括整个项目In project、模块module、指定目录direc转载 2020-07-02 10:02:22 · 1285 阅读 · 0 评论 -
centOS7上普通用户切换root用户,相互切换
当前普通用户登录,想要切换为root用户,需要输入命令su需要输入root密码。输入时候屏幕不会显示,直接输入完了,回车即可回车后,即切换到root用户下想要从root用户切换到普通用户,只需要输入:su 用户名即可切换到普通用户!!...转载 2020-07-01 10:11:17 · 1066 阅读 · 0 评论 -
Shell中的特殊变量$?-查看上一条Shell命令的退出状态码(exit status)
shell 中运行的每个命令都使用退出状态码(exit status)来告诉shell 它完成了处理。退出状态码是一个 0 ~ 255 之间的整数值,在命令结束运行时由命令传给shell。你可以捕捉这个值并在脚本中使用。查看退出状态码Linux 使用了?专属变量来保存上个执行的命令的退出状态码。你必须在要查看的命令之后马上查看或使用? 专属变量来保存上个执行的命令的退出状态码。你必须在要查看的命令之后马上查看或使用?专属变量来保存上个执行的命令的退出状态码。你必须在要查看的命令之后马上查看或使用?变量。转载 2020-06-30 18:06:08 · 2485 阅读 · 0 评论 -
将一个文件夹下的所有文件和文件夹更改用户和用户组
chown -hR username:groupname ./目录名其中:h表示对符号链接也起作用;R表示对所有子文件也起作用;后面的用户名和组名用冒号分割;最后是要修改的目标文件夹;如有疑惑,在终端 man chown...转载 2020-04-16 10:24:53 · 1233 阅读 · 0 评论 -
linux:文件解压缩 Linux_tar 归档中找不到
今天在解压tar.gz包时遇到的错误:一定要加上那个-C 参数 表示更换目录的意识-C –directory DIRchange to directory DIRtar -zxvf jdk.tar.gz -C /usr/local/javatar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解...转载 2020-03-02 12:58:17 · 2939 阅读 · 1 评论 -
Windows与Linux之间文件传输
一、获取WinSCPwindows上装上Winscp程序,使用这个程序通过sftp协议把本地的文件传输到linux服务器上。下载地址编写脚本# WinSCP.exe /console /script=sample.txt# Automatically answer all prompts negatively not to stall# the script on errors# ...转载 2019-12-17 12:10:45 · 246 阅读 · 0 评论 -
shell之变量与环境变量
文章目录变量赋值与打印获取变量长度环境变量如何查看环境变量变量赋值与打印#!/bin/bash #文件名:variables.sh fruit=apple count=5 echo "We have $count ${fruit}(s)" #因为shell使用空白字符来分隔单词,所以我们需要加上一对花括号来告诉shell这里的变量名是fruit,而不是fruit(s)执行We...原创 2019-03-07 14:32:12 · 394 阅读 · 0 评论 -
linux下安装软件
文章目录利用aptitude管理软件包利用aptitude安装软件包利用aptitude更新软件包用 aptitude 卸载软件Linux发行版基本上采用了包管理系统来控制软件和库的安装。PMS利用一个数据库来记录各种相关内容:Linux上已经安装了什么软件每个包安装了什么软件每个已安装软件包的版本。软件包存储在服务器上,可以利用本地linux系统上的PMS工具通过互联网访问。lin...原创 2019-03-10 12:25:00 · 133 阅读 · 0 评论 -
Linux:文件管理命令总结
文章目录查看文件内容查看文件类型:file查看文件内容查看文件类型:file$ file arguse.sql arguse.sql: UTF-8 Unicode textarguse.sql是一个文本(text)文件。该文本文件的字符编码是UTF-8 Unicode$ file DesktopDesktop: directory目录文件...原创 2019-03-10 11:32:48 · 378 阅读 · 0 评论 -
Shell之终端输入输出&&调试脚本
文章目录在终端输出echoprint在终端输出终端是什么样子的?ocean@ubuntu:~$root@ubuntu:~#小结:(1) 终端提示符的形式有两种,如下username@hostname$ root@hostname #$表示普通用户,#表示管理员用户root(2)尽量不要使用root权限操作,推荐平时普通用户,需要权限时sudo切换第一个脚本$ s...原创 2019-03-07 13:53:35 · 3345 阅读 · 0 评论 -
shell:定时周期性执行脚本
应用场景:需要脚本在每天的同一时间运行或者每周一次、每月一次。使用方法:cron,是一个Linux定时执行工具,可以在无需人工干预的情况下运行作业。文章目录示例原理如何使用开启关闭croncron时间表cron目录。示例编写测试脚本脚本 time .sh$ cat time.sh #! /bin/bashecho $(date +%s) >> /home/ocea......原创 2019-03-14 14:38:01 · 43318 阅读 · 6 评论 -
Ubuntu下查看CPU、内存和硬盘详细信息
CPU型号grep “model name” /proc/cpuinfo |awk -F ‘:’ ‘{print $NF}’数量lscpu |grep “CPU socket” |awk ‘{print $NF}’或lscpu |grep “Socket” |awk ‘{print $NF}’每个CPU的核数lscpu |grep “Core(s) per socke...转载 2019-03-08 16:03:18 · 6843 阅读 · 0 评论 -
linux资源限制配置文件/etc/security/limits.conf
文章目录文件描述符是什么?和文件句柄有啥区别?linux系统对文件描述符的限制有两个级别为什么要限制打开的文件描述符?配置文件系统级别进程级别查看系统当前打开的文件描述符数量查看某个进程打开的文件描述符数量根据用户创建的进程数排序文件描述符是什么?和文件句柄有啥区别?文件描述符是linux/unix操作系统中特有的概念。相当于windows系统中的文件句柄。一个意思不同叫法。Linux系统中...转载 2019-03-08 15:54:13 · 3212 阅读 · 0 评论 -
shell:文件描述符与重定向
文件描述符是与输入和输出流相关联的整数,最广为人知的文件描述符是标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。默认情况下,正常输出(stdout)和错误信息(stderr)都会显示在屏幕上。脚本可以使用大于号将输出重定向到文件中。文章目录重定向stdin重定向stdout原理重定向stderr自定义文件描述符文件描述符是与某个打开的文件或数据流相关联的整数。...原创 2019-03-07 16:06:10 · 547 阅读 · 0 评论 -
shell之定时执行一次性的脚本
背景:某些任务需要在某个特定时间点执行,并且只执行一次解决:at实验环境:ubuntu18.10准备1、安装$ sudo apt-get install at2、可以改变运行状态$ /etc/init.d/atq status $ /etc/init.d/atq start$ /etc/init.d/atq stop$ /etc/init.d/atq resta...原创 2019-03-15 10:36:20 · 1258 阅读 · 0 评论 -
shell之条件判断
文章目录if条件test命令数值比较字符串比较文件比较复合条件测试使用双括号使用双方括号caseif条件if commandthen commandsfi if commandthen commandselse commandsfi if command1then commandselif command2then more commands...原创 2019-03-11 09:41:48 · 258 阅读 · 0 评论 -
shell之时间总结
在linux系统内部,日期被存储成一个整数,其取值为自1970年1月1日0时0分0秒①起所流逝的秒数。这种计时方式称为纪元时或Unix时间文章目录一年中的第几天,第几周,一周中的第几天前后时间,加ago就是前,没有ago就是后输出固定格式的当前时间计算一组命令花费的时间从1数到40比较时间$ date +%s #打印纪元时1551947757$ date --date "Wed m...原创 2019-03-07 17:14:32 · 397 阅读 · 0 评论 -
shell循环
文章目录for ... in ...whileuntilbreak&& continue处理循环的输出实例系统中有哪些可执行文件for … in …基本用法#!/bin/bash for test in alibaba baidu tenxiu didido echo "the next state is $test"doneecho "Thes last s...原创 2019-03-11 11:18:07 · 220 阅读 · 0 评论 -
shell处理用户输入
文章目录命令行参数读取参数读取脚本名确定参数是否存在特殊参数变量参数统计: $#抓取所有参数: $ *和$@移动变量:shift处理选项查找选项处理简单选项分离参数和选项处理带值的选项getopt命令用户输入read命令行参数读取参数bash shell会将一些称为位置参数的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$...原创 2019-03-11 14:46:03 · 7513 阅读 · 0 评论 -
shell如何在脚本中重定向
文章目录重定向输出临时重定向【不懂】永久重定向重定向输入创建自己的重定向创建输出文件描述符创建输入文件描述符重定向输出可以在脚本中用stdout和stderr文件描述符在多个位置生成输出,只要重定向相应的文件描述符就行了临时重定向【不懂】永久重定向重定向stdout#!/bin/bash exec 1>testout #exec会启动一个新shell并将stdout文件...原创 2019-03-11 17:54:04 · 3981 阅读 · 2 评论 -
centos:bash: ./test.sh: 权限不够
背景:执行golang编译的可执行文件,出现错误:bash: ./test.sh: 权限不够[root@sakura xiangpeng]# ./test.shbash: ./test.sh: 权限不够[root@sakura xiangpeng]# chmod 777 ./test.sh[root@sakura xiangpeng]# ./test.shhello world或者使...转载 2019-04-13 20:01:37 · 6097 阅读 · 0 评论 -
linux中查看命令的命令
文章目录type -- 命令的类型which -- 显示可执行程序的位置help&&man&&apropos&&info -- 显示帮助alias--给命令起别名type – 命令的类型命令有4种形式可执行程序shell内部命令shell函数命令别名$ type typetype is a shell builtin$ typ...原创 2019-03-18 12:44:34 · 396 阅读 · 0 评论