shell常见命令


shell常用命令

more

查看文件里的内容

  • return键:换行
  • 空格键:下一页
  • b: 后退,上一页
  • /pattern:查找文档中pattern
  • q:强制退出

ls

展示文件夹内内容

  • ls:输出文档基本属性
  • ls -l: 长数据串行出,包含档案的属性等等数据
  • ls -a:全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来,隐藏文档以一个点开头
  • ls -F:根据档案、目录等信息,给予附加数据结构,例如: *:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案;
  • ls -R:连同子目录内容一起列出来
  • ls -Rl:结合了R和l的功能,列出所有目录包括子目录的属性
  • ls -lFa:组合功能,列出所有文件以及隐藏文件的属性以及附加数据结构

mkdir

命令创建目录

  • mkdir 目录名:在当前路径下创建目录
  • mkdir newdir/sub1 newdir/sub2 newdir/sub3:同时创建多个已存在目录的子目录
  • mkdir -p newdir/sub1:当newdir不存在的时候也能创建

cd

切换当前目录

  • cd ~/SAN/unixlab1:采用绝对路径的方式切换路径
  • cd unixlab1:采用相对路径的方式切换路径
  • cd ..:切换到上一级目录
  • cd /:切换到根目录

rmdir

删除目录

  • rmdir newdir:删除当前文件夹下的newdir,当其不包含子目录时删除
  • rmdir newdir/*:删除newdir中的所有文件

cat

连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。部分功能与more类似

  • cat test1: 查看test1中内容
  • cat -n test1:不仅显示内容,同时显示内容的行序号
  • cat test1 test2 > newtest:连接两个文件test1和test2的内容到newtest,注意此过程也包含创建newtest文件

cp

复制作用

  • cp test1 test1b:复制test1文件,同时存在内容相同的文件test1和test1b,若test1b存在,就会被覆盖
  • cp -i test1 test1b:询问是否复制,y为执行
  • cp -R subdir1 subdir4:递归持续复制,用于目录的复制行为
  • cp test* subdir1:将以test开头的所有文件,复制到subdir1中,但是test*文件还是存在原来的位置,与第一行复制文件的区别是,subdir1是目录,并且已经存在产品

mv

移动目录或者重命名

  • mv test3 newtest3:当不存在newtest3,将test3文件重命名为newtest3
  • mv test1 test2:由于test2存在,将test1覆盖test2
  • mv subdir4 dir4:将目录subdir4重命名为dir4,当dir4不存在时
  • mv newtest3 unixlab1:移动文件,将文件newtest3移到目录unixlab1中,前提为unixlab1存在
  • mv dir4 unixlab1:移动目录,将目录dir4移到目录unixlab1中

rm

作用为删除

  • rm test4:删除文件
  • rm -i *:采用通配符的方式删除掉所有的文件,不包括目录,i表示是询问是否删除
  • rm -r subdir1:强制删除,可以删除文件或者目录

file

查看文件类型

  • file test1:显示为"test1:ASCII text",为txt类型
  • file dir4:显示为"dir4:directory",为目录类型
  • file *:显示该目录下所有文档类型

find

  • find -name newtest3 (-print):找出文件名为newtest3的文件
  • find -name 'test':找出所有名字包含test字符串的文档,包括文件和目录
  • find -name 'file*' -type d:查找的文档为目录类型

pwd

显示当前路径

  • pwd

du

显示目录所占的内存

  • du:显示当前路径下的目录,目录中的子目录,总文件所占的内存
  • du -s:显示总文件所占的内存,结果"20 ."
  • du -s *:显示目录和每一个文件所占的内存

chmod

权限的更改
rwx:分别问读、写、可执行的权限
ugo:分别为文档拥有者,一组的人,和其余的人

    • chmod o-r test2:给other其余人减去read的权限
    • chmod g+w test1:给group一组的人添加写的权限
    • chmod go-r newtest3*:给group和other减去读的权限
    • chmod 754 test2:分别给ugo给754权限,7对应着111,即给所有的权限

grep

该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等,比如可以加在ps, tail, cat后面

  • grep Not ed-500.txt:在uk-500这个文档行中查找Not所在的记录并显示出来
  • more ed-500.txt | grep Not:用管道连接more和grep两个命令,结果与上个命令相同
  • more ed-500.txt | grep “Not”:结果与上个命令相同
  • grep “West Ward” ed-500.txt:能正确查找出West Ward
  • grep West Ward ed-500.txt:第一行会报错,因为不能正确解读空格的意思,只能查找出West##

文件重定向

  • 执行程序grep West Ward ed-500.txt,会将默认的错误结果输出到控制台屏幕上,因为STDERR的默认位置为控制台
  • 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回​​到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
  • 需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

参考链接:http://www.runoob.com/linux/linux-shell-io-redirections.html

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。
  • grep West Ward ed-500.txt > myAddresses:将输出重定向到myAdresses文件中,但是错误输出还是在控制台
  • grep West Ward ed-500.txt > myAddresses 2>&1:将STDOUT和STDERR都输出到myAdresses文件中
  • grep West Ward ed-500.txt > myAddresses 2> myErrors:将错误输出到myErrors文件中

Piping的使用

  • more ed-500.txt | grep “Manr”:在uk-500.txt文件中查找“Man”
  • more ed-500.txt | grep “Man” | wc -l:查找“Man”之后统计个数
  • more ed-500.txt | grep “Man” | sort > man.txt:将查找的结果按照所在记录的首字母排序,并输出到文件man.txt中
  • more ed-500.txt | grep “[Not|Man]” :查找了所有包含在[]中的字符,而非字符串
  • more ed-500.txt | grep [Not|Manr] :-bash: Man]: command not found grep: Unmatched [ or [^,因为shell想要解读 “grep [Not” ,但解读不出来, “|” 视为一个管道连接 “Man]” 命令,因此报错

正则表达式中特殊字符

  • * : 代表任意字符(0到多个)
  • [ ] : 中间为字符组合,仅匹配其中任一一个字符
  • ^string:表示以string开头的字符
  • string$:表示以string结尾的字符
  • . :表示单个字符

grep

  • 它在一个或多个文件中搜索字符串模板。

转译字符 \

  • grep "St." ed-500.txt:其中的点表示的是任意单个字符
  • grep "St\." ed-500.txt:其中.表示的就是一个点,字面的意思

使用$存放变量值

  • export count=23 grep $count ed-500.txt:其中$count指的是23,查找23
  • grep ‘$count’ ed-500.txt:查找结果什么都没有,‘’防止了将$进行转换,查找的任然是$count

echo

  • echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

显示普通字符

  • echo "It is a test":结果 It is a test

显示转义字符

  • echo "\"It is a test\"":结果 "It is a test"

显示换行

echo -e "OK! \n" # -e 开启转义
echo "It is a test"
结果:
OK!
It is a test

显示不换行

echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
结果:
OK! It is a test

原样输出字符串,不进行转义或取变量,用单引号(')

  • echo '$name\"':结果 $name\"

显示命令执行结果,注意反引号(`)

  • echo `date`:结果Thu Jul 24 10:08:46 CST 2014,
  • 注意: 这里使用的是反引号 `, 而不是单引号 '。结果将显示当前日期
  • 反引号(`) 位于键盘的Tab键的上方,起命令替换的作用。命令替换也就是shell能够将一个命令的标准输出插在一个命令行中任何位置。

参考链接:https://www.runoob.com/linux/linux-shell-echo.html

单引号(')和双引号(“)

  • 如果没有单引号或双引号,shell会把空格后的字符串解释为命令。
  • 单引号和双引号的区别。单引号告诉shell忽略所有特殊字符,而双引号忽略大多数,但不包括$、\、`。

实例:

testvalue=100
echo 'The testvalue is $testvalue'
The testvalue is $testvalue
echo "The testvalue is $testvalue"
The testvalue is 100

参考链接:https://blog.csdn.net/beginning1126/article/details/8633900


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM