《Linux命令行手册》学习笔记

粗略过了一遍,记录一下方便自己查询。 


利用cat连接文件

a.jpg.001      a.jpg.002

cata.jpg.* > a.jpg

利用cat创建文件

 

cat < 文件 与 cat 文件  的效果一样。

 


使用less 来分页显示

上下 jk,首尾Gg,翻页pageup,pagedown

 

配合 sort -r 倒序

 

head , tail

 

$((expression))

expression 是数值或者算术操作符

 

花括号扩展

 

命令替换

 


引号 

双引号

echo的时候 加上双引号会将引号内容当做一个参数。

因此 会使得echo 的单词分隔失效。此外路径名、波浪线、花括号扩展也会失效。

但是算数扩展和命令替换还会生效。

 

单引号

使所有扩展都失效

 


转义字符

经常用于配合双引号使用

也用于\t之类 , 表示制表符等

单引号中的\只是一个简单的字符

 

echo 命令带上-e 就能解释转移字符序列

 

 

history 与 !

history  显示出 行号 命令

可以通过 !行号 来执行

 

shell如何寻找命令

当输入ls的时候, shell会寻找 PATH中目录列表

 

而 PATH 通常定义在/etc/profile

 

最后一行 export 将环境导出到随后要运行的程序中

激活我们的修改

可以在.bashrc中添加我们的别名 如 alias ll = 'ls -l --color=auto'

只有在启动shell的时候才会读取.bashrc 之类的文件, 因此,修改此类文件后要关闭会话并重新打开的时候才会生效。 可以使用source .bashrc 强制生效

vim在编辑多个文件

vim a.txtb.txt

:n    ,  :N 分别可以跳到下一个、上一个文件。

:buffers 可以查看所有在编辑的文件

:buffer  数字  可以跳到对应文件

vim插入整个文件

:r a.txt

:r表示读取

带时间的提示符

[13:31root@VM_0_7_centostest]$PS1="[\A\u@\h \W]\$"

然后保存在/etc/profile或者~/bashrc中

颜色

修改  vim ~/.bash_profile

PS1="[\u@\h\W]\033[1;32m\A\033[1;0m \$ "

\033[1;32m表示字体淡绿色    \033[1;0m\表示字体正常色

范围

字体颜色\033[1;30m  黑色 到 \033[1;37m 白色

背景色\033[0;40m  黑色 到 \033[0;47m 白色

 

echo -e "\033[背景;字体颜色m 字符串\033[0m"

eg : echo -e"\033[30m 黑色字 \033[0m"

find

查找 路径下 名称为 某个前缀 大于30M 的文件

 

action

 -exec command {} ;

这里{} 是指当前路径名, ;是必须的结尾

-ok 会在执行前询问

 

多次执行

 

xargs--show-limits获取最大参数数量

$xargs --show-limits

Your environmentvariables take up 2301 bytes

POSIX upper limit onargument length (this system): 2092803

POSIX smallestallowable upper limit on argument length (all systems): 4096

Maximum length ofcommand we could actually use: 2090502

Size of commandbuffer we are actually using: 131072

快速创建类似的目录/文件

 mkdir -p testdir/dir-{00{1..9},0{10..99},100} 

touchtestdir/dir-{00{1..9},0{10..99},100}/file-{a..z}

{00{1..9},0{10..99},100}   理解为 001-009 ,010-099,100三段

 

 

-regex 正则查找文件

 

stat : ls的加强版

gzip,gunzip , bzip2,bunzip2

bzip更慢质量更高

gunzip -c  xx.gz |less 查看

zcatxx.gz |less

 

tar归档

tar -zcvf  归档并压缩  gzip

tar -zxvf    解压   gzip

zip压缩+归档,主要用于与windows交互

rsync同步

rsyncsource destination

source 和 destination必须有一个是本地

远程 由 rsync://[user@]host:[:port]/path指定

 

$$ 为当前bash进程

可见 , 当前进程 运行了子程序

 

grep

 

-n 显示行号

-v 不匹配

 -L 不包含的文件

-l 包含的文件

 

没有\d 此外{ } 需要转移

 

这里可以直接 find ./-regex "[0-9]" -ok delete  

设置LANG

为了防止某些错误

vim/etc/profile

LANG=en_US.UTF-8

LANGAGE=en_us

对文本的处理

diff :逐行比较文件

!表示被改变的行

 

comm:逐行比较两个文件

 

uniq 报告并忽略重复行

只能检测相邻的行

sort 对文本行排序

 

-n 基于数值排序

 

-k 对 指定的字符排序 这里 -k 2 表示对第二个字段排序

-t 表示 指定分隔符,默认空格或者制表符

 

 

多键值排序

sort -k3.7nbr 0k 3.1 nbr -k 3.4nbr ls.txt

ls.txt

abc  123  11/25/2008

abc2  123 10/20/2007

 

 

path-对源文件进行diff操作

 


打补丁后 c1变成了c2的样子

tr 替换/删除字符

 

删除相邻的重复

 

sed

替换,  2s表示只对第二行替换

 

-n选项和p命令一起使用表示只打印那些发生替换的行:

来自 <http://man.linuxde.net/sed>

 

除了匹配行的其他行

 

去掉注释


写入文件:w命令  

在example中所有包含test的行都被写入file里:

sed -n '/test/w file' example

来自 <http://man.linuxde.net/sed>

 

 

 

变量

read 来读取

 

declare -i 声明 整数变量

              -a 声明array

              -r   readonly

 

 

#、##变量内容的删除替换

注意 从左的话 就要指定 最左端的/ ?

  从右边 就要指定最右端的 bin?

删除匹配的内容

#删除最短, ##删除最长

 

 

%与%%类似。 不过是从右往左

删除最后一个

这里从: 到 bin止


保留第一个

 

/  、//替换 一个和全部

 

new_var={old_var-default} 若old_var不存在,则default值,否则为$old_var

 

:-    如果是空或者空字符,都为default内容

 

new_var={old_var+default},若old_var不存在 则new_var为空,否则为default

当为+:的时候,old_var不存在或者为空,new_var为空,否则default

new_var={old_var=default}与 - 的区别在于,old_var是否设置。 详细参考《鸟哥的Linux》p316

new_var={old_var?expr},若old_var不存在 则输出expr

new_var={old_var:?expr},old_var不存在或者为空字符串则输出expr

 

 

获取字符串长度

${#param}

 

字符串分片切割

${param:begin:end}  

 

编码转换

iconv -f 旧编码 -t 新编码 文件 -o 输出到新文件

繁体转简体

iconv -f UTF8 -tbig5 cn.txt |  iconv -f big5 -t gb2312 |iconv -f gb2312 -t utf8 -o cn2.txt

 

简体转繁体

iconv -f UTF8 -tgb2312 c.txt |  iconv -f gb2312 -t big5 |iconv -f big5 -t utf8 -o cn.txt

 

格式化输出

nl , cat -n 输出行号

 

fold设置行长度

连续的字符不会被切断

 

printf

 

ftp

ftp ftp.gnu.org

anonymous

cdgnu/diction

ls

get xx

bye

 

./configure && make && make install 编译

./configure 后生成Makefile

Makefile描述了生成最后可执行程序时各部件之间的依赖关系

make后 生成了许多-o的文件  这里是Makefile里面指定的。

 

make clean 后清除了

 

移除后 再make就生成了

 

make install后 出现在/usr/local/bin中

 

make install后的程序卸载:

可以直接 rm $(whichxx)

 

Makefile里有没有uninstall这一节,如果有的话,就可以用

make uninstall

如果没有的话,你修改一下Makefile,把cp改称rm -rf就行了

其他

进制

分别为 16 2 8 10 进制

 

位运算和 数字的三元表达式

 

数组

 

多个命令执行重定向

 


进程替换

<(list)

list为一系列命令

 

把awk的输出赋值到变量

利用进程替换 

效果如图:

 read i j <  <(echo "$(echo "123 456" |awk '{printf "%d %d\n",$1,$2}')")
echo "$i_$j"


猜你喜欢

转载自blog.csdn.net/thewindkee/article/details/80737480