您的位置:首页 > 运维架构 > Linux

Linux常用命令(笔记)

2018-01-05 09:25 197 查看

1.文件与目录管理

1.操作命令

删除 : rm -r file/dir

复制 : cp -r source destination

移动 : mv source destination

创建文件或修改文件时间 : touch file

创建目录 : mkdir -p dir 注:-p表示递归

删除目录 : rmdir -p dir 注:-p表示删除上层空的目录

显示当前目录 : pwd -P 注:-P表示如果是当前是连接目录,则显示真实目录

查看文件与目录 : ls -adl dir 注:-a:表示显示全部文件(包括隐藏文件);

-l:表示显示文件的属性及权限;-d:表示仅列出目录,不列出文件

2.查看文件命令

cat tac 从开头第一行或从最后一行开始显示

head tail 只看开头或结尾几行

more less 分页查看,less可以向前看,more只能向后看

nl 显示行号

od 以二进制的方式读取

3.修改权限命令(-R表示递归)

1.文件所有者 : chown -R 所有者/所有者:用户组 file/dir
2.文件用户组 : chgrp -R 用户组 file/dir
3.文件权限 : chmod -R u=rwx,g=rx,o=rx 文件(user/group/other)
chmod -R 777 文件 (r:4 w:2 x:1)
chmod a+x/a-x 文件(a指all,+指添加权限,-指减去权限)


4.解压

tar [-z|-j|-J] [xv] [-f 既有的 tar 檔名] [-C 目录] <==解压缩


2.管道命令

1.cut
cut -d "分隔字符" -f field filename(field取数字,表示选取第几段)
cut -c 字符区间  filename(取出固定字符区间,用于排列整齐的讯息)
2.grep
grep [-cinv] [--color=auto] '搜寻字符串' filename
-c:显示字符串出现的次数;-i:忽略大小写;-n:显示行号;-v:反选
3.wc
wc -lwm filename
-l:行数;-w:字数(word);-m:字节数
4.uniq
uniq [-ic]
-i :忽略大小写字符的不同;   -c :进行计数
5.sort
sort -t ':' -k 3 -n -r
(以第3区段排序,-n表示以数字来排序,-r表示反向排序)
6.tee双重重定向( 会同时将数据流分送到文件与屏幕)
tee [-a] filename
-a:以累加 (append) 的方式,将数据加入 file 当中!
7.split(将大文件分成几个小文件)
split -bl filename perfix
-b:按照文件大小分区,可以加b,k,m等单位;-l:按照行数分区
perfix指小文件的文件名前缀,如xxxaa,xxxab
8.xargs
xargs -epn command
-e:end of file;-p:每次执行命令是询问;-n:每次执行几个参数
注:很多指令其实并不支持管道命令,因此我们可以通过 xargs 来提供该指令引用 standard input 之用


3.Shell Script

1.执行方式

source a.sh; (source是在父bash中执行,其他两个则是在子bash中执行)

bash/sh a.sh; (sh相当于bash的POSIX标准模式 (等效于bash的 –posix 参数)一般的,sh是bash的“子集”,当出现bash特有的语法时,sh执行可能会出现语法错误)

./a.sh; (小数点执行时,文件必须是可执行的)

2.判断式

1.test

2.[ ]

注:1.判断文件类型
-e(是否存在)/-f/-d/-L/(是否为文件/目录/链接)..
2.判断文件权限
-r/-w/-x/..
3.判断两文件之间的比较
-nt/ot(判断哪个新或旧)/-ef(是否指向相同inode)
4.整数之间的判断
-eq/-ne(相等/不等)-gt/-lt(>/<)-ge/-le(>=/<=)
5.判断字符串
-z/-n(是否为空/不空) ==/!=
6.多重判定
-a/-o/!


3.默认参数

$0,$1,$2,…可以一次获取执行命令的文件名以及之后的参数

$#:代表文件名后接的参数个数

$@/$*:代表文件名后接的所有参数

4.if条件语句

if [ 条件判断式 ]; then
//todo
elif [条件判断式]; then
//todo
else
//todo
fi


5.利用 case ….. esac 判断

case $变量 in
"1")
//todo
;;
"2")
//todo
;;
*)
//todo
;;
esac


6.循环语句

while [ ]
do
//todo
done


until [ ]
do
//todo
done


for var in con1 con2 con3 ...
do
//todo
done

for ((i=0;i<4;i++))
do
//todo
done


4.区别$(), $(()),${},(())

1.$()与两个`都是用来执行命令,其执行结果再用于外部命令

2.${var}与$var一样,都是获取变量的值

3.$(())用来整数运算;还可以将其它进制转换成十进制,如$((2#110))

4.(())可以重新定义变量值,如((a++))

5.变量内容的删除,取代和替换

1.变量内容的删除

1.${var#*/} 与\${var##*/}
2.\${var%/*} 与${var%%/*}

注:#与%表示选取的部分(如*/和/*)最短的那个,##与%%表示选取的部分最长的那个;#与##表示删除选取部分及前面的内容,%与%%表示删除选取部分及后面的内容


2.变量内容的取代

${变量/旧字符串/新字符串}==>第一个旧字符串会被新字符串取代
${变量//旧字符串/新字符串}==>全部的旧字符串会被新字符串取代


3.变量内容的替换

变量设定方式str没有设定str为空字符串str不为空时
var=${str-expr}var=exprvar为空var=${str}
var=${str:-expr}var=exprvar=exprvar=${str}

4.取子串

${var:0:4}==>从var中从0开始,取4个字符。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux