Linux常用命令(笔记)

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=expr var为空 var=${str}
var=${str:-expr} var=expr var=expr var=${str}

4.取子串

${var:0:4}==>从var中从0开始,取4个字符。

你可能感兴趣的:(linux)