
LINUX
文章平均质量分 75
匿_名_用_户
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux shell:按行读取文件,有变量操作时,避免使用管道符?
Linux的Shell程序时,如果需要按行读取,常见的有两种办法,但是如果涉及到变量的赋值操作,则两种方法是有区别的。以下两面的wc1.sh和wc2.sh为例子,两个程序都试图统计文件的行数:wc1.sh#!/bin/shlet i=0cat /etc/passwd | while read linedo let i=i+1doneecho "$i"wc2.sh#!/bin/shlet i=0while read linedo let i=i+1don原创 2020-07-28 20:00:54 · 568 阅读 · 0 评论 -
Linux/unix:使用ln命令创建链接文件(symbolic links)
Linux中的链接文件(symbolic links)类似于Windows中的快捷方式,创建命令如下:ln -s 完整的源文件名(要求已经存在) 完整的链接文件名(要求不存在)其中要求源文件名已经存在,并且要求源文件名和链接文件名最好都是带路径的完整文件名示例1:在/tmp下创建一个名子为1.txt的链接文件,要求指向/data/1.txtHOST01:/data # ls -l 1.txt-rw-r--r-- 1 user01 grp01 11 Oct 18 2019 1...原创 2020-06-08 09:14:27 · 1700 阅读 · 0 评论 -
Linux: 通过SUID权限来实现“封装”
Java中有“封装”的概念,简单来讲,就是把类的属性和方法设置为private/protected,这样只能在类的内部访问这些属性和方法,并提供public方法来调用private方法或者获取/修改private属性。在linux权限中,有时也会遇到类似的问题,比如你希望其他用户能够对你的文件做一些统计工作,但又不想让他们获取文件的内容,这时候就可以写一个程序来进行统计工作,让其他用户调用原创 2017-08-30 22:01:33 · 494 阅读 · 0 评论 -
linux: 僵尸进程
上一篇文章(http://blog.youkuaiyun.com/qingsong3333/article/details/77756042)讲了如何使用fork()函数产生一个的子进程,如果控制不好子进程与父进程的关系,则可能产生僵尸进程1. 如果父进程先于子进程结束,那么子进程的PPID就会变为1,直到子进程结束,子进程的状态正常。下面的例子中,子进程运行15s,父进程运行3s:qingson原创 2017-08-31 22:59:12 · 369 阅读 · 0 评论 -
linux/unix编程:启动新进程
这里介绍三种启动新进程的方法: system()库函数、exec()家族函数、fork()函数1. 启动另外一个进程可以通过库函数system完成,它会启动一个新的shell,并在新的shell里启动一个进程。效率比较低#include int system (const char * string);示例如下:顺序启动了两个qingsong@db2a:~/linu原创 2017-08-31 22:19:08 · 1238 阅读 · 0 评论 -
基准测试工具sysbench简介
基准测试工具sysbench简介sysbench是一个跨平台的基准测试工具,可以测试CPU、文件I/O、线程、内存、数据库性能等。简要说明$ man sysbench SYSBENCH(1) sysbench User Manual SYSBE原创 2017-09-16 22:41:01 · 812 阅读 · 0 评论 -
使用http_load工具测试Web吞吐量
使用http_load工具测试Web吞吐量http_load并行地运行多个http fetches以测试Web server的吞吐量。它只需要一个进程,不会对client造成太大影响。使用之前,需要准备一个文件,里面是URL列表。还需要指定如何开始连接(是指定rate或者指定paralle),以及指定如何退出(是指定fetch总量,还是指定时间)1. 下载与安装下载地址:h原创 2017-09-16 22:32:22 · 1966 阅读 · 0 评论 -
linux中的SUID和SBIT 权限
关于SUID,需要先参考上一篇文章:http://blog.youkuaiyun.com/qingsong3333/article/details/77726074SUIDSUID权限和SGID是作用类似的,不过SUID不是针对二进制程序的owner起作用,而是对所属组起作用。当其他用户执行此文件时,会暂时获得文件所属组的权限。现在把wordcount的SUID权限改为SGID,效原创 2017-08-30 22:14:26 · 988 阅读 · 1 评论 -
Linux空白行:行号显示、空白行数统计、删除空白行
这里的空白行,泛指只有一个换行符的行。空白行的行号显示:cat -b 选项,可以不在空行前面加行号。nl命令也能实现类似的效果:root@db2a:/tmp# cat -b count.sh 1 #!/bin/bash 2 for i in u g o a 3 do 4 for j in + - = 5原创 2017-08-20 23:01:48 · 17639 阅读 · 0 评论 -
Linux使用sed对文档进行增、删、改、查
Linux使用sed对文档进行增、删、改、查qingsong@db2a:/tmp$ cat test.txt This is line 1This is line 2This is line 3This is line 5This is line 6This is line eightThis is line 9This is line 10原创 2017-08-23 21:46:50 · 1661 阅读 · 0 评论 -
Linux中最常见的文本查找与处理工具
findfind - search for files in a directory hierarchy最常见的用法是 find -name ,意思是在目录以及子目录下查找名为的文件,目录是否查找符号链接、根据权限、用户名、修改时间(mtime -n/+n)、访问时间(atime -n/+n)、创建时间(ctime -n/+n)、文件大小、文件类型。而且可以对查找到的文件执原创 2017-08-15 23:27:16 · 1259 阅读 · 0 评论 -
Linux:awk常用语法介绍
Linux:awk常用语法介绍awk脚本的结构基本如下所示,awk脚本通常由3部分组成。BEGIN,END和带模式匹配选项的常见语句块。这3个部分都是可选项,在脚本中可省略任意部分:awk ' BEGIN{ print "start" } pattern { commands } END{ print "end" } ' fileawk命令的工作方式(1) 执行BEGIN原创 2017-08-26 23:37:02 · 666 阅读 · 0 评论 -
linux:使用shell读写MySQL数据库
linux:使用shell读写MySQL数据库本文用一个示例,简单演示了如何使用shell脚本读写MySQL数据库。主要工作如下:1. 创建数据库samplecreate database sample;2. 创建表employeedrop table if exists employee;create table employee(EMPNO char(6原创 2017-08-27 23:12:34 · 1608 阅读 · 0 评论 -
linux: 找到磁盘/目录中最大的n个文件
linux: 找到磁盘/目录中最大的n个文件du加上了-a选项,可以看到所有的目录和文件大小,按照大小排序,就可以得到最大的n个文件了:下面的例子中du的-k选项表示文件大小显示为KB,之后按照大小排序,显示前n行:root@db2a:~# du -ak /tmp | sort -nrk 1 | head -n 10275210 /tmp53060 /tmp/test2原创 2017-08-27 23:08:43 · 3965 阅读 · 0 评论 -
awk内置变量之FNR/NR、FS/OFS、NF、ORS/RS
awk有一些内置的变量,本文主要讲述与 行分割符、列分割符、行号、列号有关的变量本文用到的测试文件如下:qingsong@db2a:~$ cat ipa.txt inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0inet addr:192.168.16.128 Bcast:192.168.16.255 Mask:255.2原创 2017-11-03 21:33:57 · 2200 阅读 · 0 评论 -
awk中变量的作用域
说明awk中变量作用域之前,先看几个测试测试1:fun1()没有参数,里面的变量x和BEGIN里的x是同一个变量qingsong@db2a:~$ cat test1.awk BEGIN { x = "Good" fun1() print "X in BEGIN is", x}function fun1() {原创 2017-11-13 21:13:53 · 1052 阅读 · 1 评论 -
awk内置变量之FILENAME、ARGC、ARGV、ENVIRON
本篇文章主要简述以下环境变量:ARGC number of command line arguments.ARGV array of command line arguments, 0..ARGC-1.ENVIRON array indexed by environment variables. An environment string, var=value is sto原创 2017-11-03 22:38:44 · 4907 阅读 · 0 评论 -
SUSE Linux 修改主机名
在文件/etc/init.d/after.local中添加一行(如果文件不存在,则创建):hostname node01则node01为修改后的主机名参考:https://blog.youkuaiyun.com/rokii/article/details/6316443...原创 2019-08-09 23:15:49 · 751 阅读 · 0 评论 -
Linux/UNIX:使用加密之后的字符串修改用户密码
需求: 有时候需要在脚本里面使用root用户直接修改某个用户的密码,这种情况下有两个要求:1. 不能有交互2. 脚本里不能出现明文密码那么可以先用openssl passwd先将明文密码加密,然后使用chpasswd的-e选项修改,示例如下例如想要将用户qingsong的密码修改为myPasswd,可以先使用如下命令:node01:~ # openssl passwd -sa...原创 2018-12-24 22:37:19 · 1446 阅读 · 0 评论 -
AIX: ftp文件时报错 No space left on device/filesize limit exceeded
问题描述:AIX操作系统,从FTP获取文件时报错 No space left on device/filesize limit exceeded解决: 检查了文件系统剩余空间以及ulimit -a的输出,确认不是这两个的问题。使用mount命令,看到文件系统类型为JFS的。文件获取到1.99999999G左右时,就报错了。解决方法是删除并重建文件系统。 建的时候要么建JFS2的,要么建一个支持大...原创 2018-07-03 18:16:46 · 1589 阅读 · 0 评论 -
双系统:Windows7下安装Ubuntu18.04 (解决报错:GRUB installation failed)
目地是安装win7+ubuntu 18.04的双系统。刚开始的时候使用的U盘作为启动盘,但安装ubuntu的最后会报下面的错误, GRUB installation failed:网上的办法都试过了,都不好使,简直要崩溃。还好后来找到一种办法,不用通过U盘来安装,链接如下:https://blog.youkuaiyun.com/ouyangying123/article/details/77413105上面的...原创 2018-06-30 00:39:21 · 22412 阅读 · 11 评论 -
SUSE LINUX上缩减/缩小LV(logical volume 逻辑卷)大小
原因:某文件系统过大,需要将其缩小,以为VG腾出空间。在下面的例子中,有一个vg,名为rootvg,它由三个pv组成,上面有两个lv: lvdb2 和 lvoracle,现在的目标是把 lvoracle 从20G缩小到12G,这样就能腾出8个G的空间了。node01:~ # vgs VG #PV #LV #SN Attr VSize VFree rootvg 3 2 ...原创 2018-05-29 21:48:28 · 12413 阅读 · 0 评论 -
Vmware虚拟机下Redhat linux 7.2 网卡开机自动启动
问题描述:在Vmware WorkStation里安装了带有图形界面的Redhat linux 7.2,每次重启OS之后,网络都不通。可以通过菜单 Application ->System Tools ->Settings -> Network来手动设置为ON,如下图所示。现在要求是随开机自动启动。解决:1. 先手工起动,如下图:2. 看下对应的网卡名为eno16777736:[...原创 2018-02-23 22:48:25 · 3815 阅读 · 0 评论 -
SUSE, ftp登录报错: Refused user root for service vsftpd
问题描述:SUSE LINUX,root用户通过ftp登陆到服务器失败: pam_listfile(vsftpd:auth): Refused user root for service vsftpddb2b(192.168.187.139)机器:db2b:~ # ftp 192.168.187.138 Wrapper for lftp to simulate compatib原创 2018-02-05 15:55:14 · 9838 阅读 · 0 评论 -
umount: device is busy
问题: umount命令遇到报错: umount: /usr/test01: device is busy.解决:可以使用fuser的-m选项看一哪些进程在占用,在允许的情况下,将进程杀掉,就可以umount了。示例:testenv:~ # df -hFilesystem Size Used Avail Use% Mounted on/d原创 2018-02-05 15:01:57 · 623 阅读 · 0 评论 -
Linux shell:使用AWK产生随机数/随机字符串
有时候做测试,需要一些随机数,awk中的rand()函数就可以产生随机数rand()说明如下:rand()函数返回[0,1)之间的浮点数int( n * rand() ),返回[0,n)之间的整数,也就是0~n-1之间的随机数int( n * rand() ) + 1,返回1-n之间的随机数注意,这里的int()是一个函数,不是表示整形,所以一定要加上括号,它的作用是取原创 2017-11-05 13:47:53 · 6490 阅读 · 0 评论 -
Linux: 文本查找包含某个关键字的段落(awk实现)
Linux: 文本查找包含某个关键字的段落(awk实现)AIX中的grep命令的"-p"选项可以查找包含某个关键字的段落(我们这里把段落定义为由空行分开的记录,段与段之间有至少一个空行),比如下面的文本中有两段:$ cat test.txtHello,worldThis is a file with two paragraph.下面的命令可以查找db2dia原创 2017-09-22 23:04:24 · 14239 阅读 · 0 评论 -
Linux文本处理:从不规则列/非固定列中截取关键字-方法2
之前的一篇文章中提到了使用grep -o来从不规则列/非固定列中截取关键字的方法,链接如下http://blog.youkuaiyun.com/qingsong3333/article/details/77342085在学习了awk之后,发现awk可以使用内置变量+内置函数实现相同的功能,还是以之前的那个log为例子:某数据库的log.txt中,每访问一次表,就会记录一条信息"TableId原创 2017-11-04 16:17:34 · 1115 阅读 · 0 评论 -
awk内置变量之SUBSEP
本篇文章主要简述以下内置变量:SUBSEP used to build multiple array subscripts, initially = "\034".介绍SUBSEP之前,需要先知道awk中的“二维数组”,awk中没有二维数组,所以只能使用一维数组来模拟,下面的例子模拟了一个二维数组,并打印每个数组的下标和值。其实是创建了一维数组,下标分别为1SUBSEP1, 1原创 2017-11-04 12:30:47 · 2481 阅读 · 0 评论 -
awk内置变量之OFMT、CONVFMT、RLENGTH、RSTART
本篇文章主要简述以下awk内置变量:OFMT format for printing numbers; initially = "%.6g".CONVFMT format for internal conversion of numbers to string, initially ="%.6g".RLENGTH length set by the last call to t原创 2017-11-03 22:49:36 · 2897 阅读 · 0 评论 -
linux shell:使用trap来处理信号
linux shell:使用trap来处理信号shell脚本可以使用trap来处理信号命令语法如下: trap 'signal_handler_function_name' SIGNAL LISTSIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,qingsong@原创 2017-08-27 23:06:13 · 3025 阅读 · 0 评论 -
Linux shell 中的关联数组
Linux shell中的关联数组关联数组是这样的数组,它的每个数据元素与一个键相对配对,该键用于识别数据元素。由于散列函数用来创建关联数组中的指定元素,并在关联数组中查找指定元素,因此关联数组通常称为散列。比如想设置一个数组,名为age,根据人名可以查找对应的年龄LiLei 28HanMeimei 27Lily 26Lucy 26声明qingsong@原创 2017-08-27 23:03:43 · 800 阅读 · 0 评论 -
Linux shell:文本的按行逆序和字符串逆序
Linux shell:文本的按行逆序和字符串逆序假定有以下文件:qingsong@db2a:/tmp$ cat file.txt abcde hello,world12345!按行逆序即第一行和最后一行交换、第2行和倒数第2行交换,以些类推。方法1,使用tactac命令是cat命令的反写,效果也正好相反,从最后一行开始打印文件qingsong@db2a原创 2017-08-27 22:55:52 · 12974 阅读 · 4 评论 -
Linux 使用tar命令打包/解压文件
tar命令的第一个参数必须是一个函数名(或者简写),而且只能有一个函数,常见语法如下:NAME tar -- The GNU version of the tar archiving utilitySYNOPSIS tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delet原创 2017-08-22 19:14:23 · 1481 阅读 · 0 评论 -
Linux中使用gzip来压缩/解压 *.gz文件
gzip 是linux中常见的压缩/解压工具,最常见的使用对象是*.gz格式的文件,这里简单介绍下它最常见的用法,GZIP(1) General Commands Manual GZIP(1)NAME gzip, gunzip, zcat - compress or expand filesSYNOPSIS gzip [ -acdfhklLnNrtv原创 2017-08-21 23:41:47 · 208037 阅读 · 2 评论 -
UNIX/Linux中的文件描述符 && 为何删除DB2的容器之后表空间仍然可以访问
大多数UNIX文件I/O只需用到5个函数open,read,write,lseek,close。当使用open或者create函数打开或创建一个新文件时,内核向进程返回一个文件描述符,文件描述符是一个非负整数(也就是open/create函数的返回值,如果小于0,则出错)。当读、写文件时,read/write函数使用参数的是文件描述符,而非文件名。UNIX/LINUX shell中,文件描述符0代原创 2017-08-24 22:59:26 · 1070 阅读 · 0 评论 -
Linux使用mdadm模拟RAID5磁盘阵列
Linux使用mdadm模拟RAID5磁盘阵列RAID 磁盘阵列RAID可以通过一个技术(软件或硬件),将多个较小的磁盘整合成为一个较大的磁盘,除了数据存储之外,还有数据保护的功能,这里简介一下RAID 0, 1, 5,并模拟RAID 5RAID-0 (等量模式, stripe):性能最佳数据平均分布到多个磁盘中, 没有冗余,任何一个磁盘坏掉都会导致数据永久丢失。但性能原创 2017-08-24 22:45:36 · 3105 阅读 · 0 评论 -
shell中的算术运算
linux: bash shell中的算术运算1. letlet可以执行基本的操作,变量前不用加$。仅支持整数qingsong@db2a:/tmp$ nb1=4qingsong@db2a:/tmp$ nb2=5qingsong@db2a:/tmp$ let result=nb1+nb2 qingsong@db2a:/tmp$ let result++qingso原创 2017-08-24 22:36:41 · 2056 阅读 · 0 评论 -
shell脚本:不显示输入的密码
shell脚本:不显示输入的密码在linux shell脚本中,如果想要不显示输入的内容,比如“密码”,可以使用stty的-echo选项,表示禁止将输出发送到终端。最后的stty echo一定要加,否则即使执行完shell之后,什么输入也都看不到。#!/bin/bashecho -n "Please enter your password:"stty -echoread pa原创 2017-08-24 22:29:52 · 7996 阅读 · 0 评论 -
Linux中的atime, ctime, mtime
含义:mtime: modification time,指内容被修改时间ctime: status change time, 文件inode节点发生变化,包括属性被修改时间,比如owner或者权限的改变,内容被修改也会导致ctime变化。 注意:ctime不是create time,linux中貌似无法看到create time。atime: access time, 访问时间原创 2017-08-20 22:58:25 · 465 阅读 · 0 评论