博文

目前显示的是 八月, 2019的博文

bash学习随笔

操作系统的内核是管理计算机硬件的。我们需要通过shell来跟内核沟通。 操作系统里必有shell。 输入命令后,Ctrl+u,删除光标前的命令串,Ctrl+k,删除光标后的命令串。Ctrl+a 让光标移动到最前方,Ctrl+e,光标移动到最后面。 变量myname=123  myname=${myname}567 echo $myname=123456. cd /lib/modules/$(uname -r)/kernel   或者cd /lib/modules/`uname -r`/kernel 变量赋值时,使用双引号可以使 $变量名 生效,使用单引号时只能成为普通文本。 read -p "Please keyin your name:" -t 10 name   -p接文本说明,-t接等待时间。 /etc/skel/.bashrc 个人配置文件备用。login-shell 读取/etc/profile,然后/etc/bashrc->~/.bashrc  nologin-shell,直接读取/etc/bashrc->~/.bashrc cat  > catfile < ~/.bashrc 把 ~/.bashrc的内容输入到cat命令里,然后导入到catfile. <<代表结束符,当输入 << "end" 里的end时,结束输入。 # ls /tmp/vbirding && echo "exist" || echo "no exist"   ls: 无法访问'/tmp/vbirding': 没有那个文件或目录  no exist   &&和||的顺序需要注意。执行判断的话一般是上面这个顺序。

文本编码和不同系统的换行符转换问题

iconv -f ? -t  ?  ? -o ? iconv -f big5 -t utf8 vi.big5 -o vi.utf8          /进行big5编码的文本转换为utf8编码的文本 iconv -f utf8 -t big5 vi.utf8.繁体 | iconv -f utf8 -t gb2312 |iconv -f gb2312 -t utf8 -o vi.utf8.简体 /繁体转换简体 字体切换。utf8编码的繁体转换为big5编码,再转化为GB2312简体编码,再转化为utf8编码的简体。有这么一个转化的步骤。 DOS和Linux的换行符 利用软件dos2unix 进行换行符的转换。DOS的换行符为CRLF,linux为LF,CR为^M。如果是在Windows上编写的脚本,复制到linux下可能就无法正常运行了。 dos2unix -kn 1.txt 2.txt 2.txt是转化后的新文件。-k代表保留文件原本的mtime. -n代表保留旧的文件,转化的内容输出到2.txt。

awk学习总结-printf格式化,模式

1 printf命令 printf "%s \n" 123 456 123 456 printf "%s %s %s\n" 123 456 789 098 123 567 123 456 789 098 123 567 运行命令输出如上。%s为格式替换符,用来处理后面的每一个参数。默认输出是不换行的。 其他格式替换符总结如下: %s 字符串 %f 浮点格式 %d,%i 十进制整数 %o,不带正负号的八进制值 %x,不带正负号的十六进制值,使用a-f表示10-15.%X表示大写。 当带有数字时,如%12.3f,代表输出宽度为12个字符的宽度,右对齐,.3代表精度为小数点后3位。 当带有正负号时,+代表输出正数前面的正号。-代表左对齐。 2 printf动作 对于awk来说 awk '{printf "%s %s/n",$1,$2}' file 指定的格式与被格式化的文本之间用逗号隔开。 格式替换符与被格式化的文本的数量需要一致。  其他用法与printf命令一致。 awk -F: 'BEGIN{printf "%-15s\t%s\n","用户名","用户id"} {printf "%-15s\t%s\n",$1,$3}' /etc/passwd  用户名      用户id root            0 daemon          1 bin            2 sys            3 sync            4 games          5 man            6 lp              7 ...

awk 学习总结-变量/分隔符

图片
1 awk 语法 awk [options] 'Pattern{Action}' file awk 对文件处理方式为逐行扫描处理 举例:awk '{print "用户名:" $1,$3}' /etc/passwd 变量用逗号隔开 $0为全行,NF为被分隔符分割的数量,$NF为最后一行,$NF-1为倒数第二行,以此类推。 2 awk 模式 Pattern 特殊模式   awk 'BEGIN{print "aaaa","bbbb"}' file  #在处理file之前提前打印指定内容。awk 'END{print "aaaa","bbbb"}' file # 在处理file之后打印指定内容 3 分隔符 FS :field separator OFS:output field separator 默认输入/输出分隔符为空格,即awk以空格为准对每一行进行分割。 设置输入分隔符有两种方式,-F='#'     -v FS='#' 变量间有逗号,输出时以空格分隔。 4 变量总结 变量使用前需要加参数 -v FS OFS,输入输出 NR 行号,当前文本处理的行号 FNR ,处理多个文件时分别显示行号 RS ,输入行分隔符,默认是指定回车而换行, -v RS=" ",指定遇空格换行,换而言之,指定了空格为换行符。 ORS , 输出行分隔符,需要换行则输出回车,-v ORS="***",需要换行时则输出***,替代了之前的回车。 ARGC与ARGV ,数组变量,ARGV[0]代表awk,ARGV[1]代表文件1,ARGV[2]代表文件2,以此类推。ARGC代表数组的参数数量,即ARGV的长度。 自定义变量,(1)awk -v myvar="23w" 'BEGIN{print myvar}'  输出23w (2)awk 'BEGIN{myvar="23w";print myvar}' 输出23w ...

linux开机卡住

        Linux开机无法启动,进入紧急模式( emergency mode ),通常是由于动了硬盘导致/etc/fstab里的配置无法正常挂载,所以我们要对该文件进行更改。比如我们可以删除丢失的硬盘对应的那一行的配置语句或者更改硬盘对应的设备名。如果发现/etc/fstab文件不可写,执行下面语句: mount -n -o remount,rw /         之后修改/etc/fstab配置文件,再进行启动。