linux命令详解

命令语法介绍

命令   【参数】 【文件或路径】

rm       -f                  /etc/hosts

注:命令和参数至少一个空格(可以多个连着写)      路径不带空格           

1,中括号[]表示可选,即命令的参数和与路径是可选的,

2,参数选项表示使用一个命令的不同的功能。

用命令练习下

先说下 windows/linux盘符合目录的结构

  windows  是分盘符 有C,D,E 盘,  linux  只有一个盘符  /  它为所有的目录的顶点 

创建一个目录命令

  mkdir /data(根下)    mkdir data(桌面)

  查看可以是   ls     更精准的是   ls -ld data

             -l(long)长格式   d (查看目录)  

  drwxr-xr-x. 2 root root 4096 10月 13 04:07 data

  有时候需要进入目录创建文件或者目录可以用    ;(两个命令一起使用) 如:

  cd data;mkdir qing.txt

切换目录:

  cd  change  directory 改变目录的路径  如:

  cd ~      cd data

  cd /etc/sysconfig/network-scripts/ifcfg-eth0

相对路径和绝对路径

  从 / 开始的路径是绝对路径

  不从 / 开始是相对路径

  显示当前路径     pwd     print work directory 

  打印工作路径    (显示当前路径)

touch命令   (摸,触摸)

  没有创建,有就修改文件的时间属性。如:

  touch zhang.txt

  cd data;touch zhang.txt

  cd data;mkdir zhang

创建完文件了我们怎样写内容呢?

vi 编辑器

  常规操作;

  执行 vi zhang.txt进入文件,

  点击  a 或者  i 进入编辑模式,写入想要写的内容如:这是美好的一天。

  写完以后按sec按:wq 保存退出,write quit

  不想保存是 :q      强制退出 :q!

这里会有人说vim 编辑器了     vi和vim的区别:

  vi 是简单的记事本,

  vim 是复杂的编辑器,在以后写shell或者python用的比较多,有高亮,缩进等功能。

  在平常情况下没什么区别。

我们只是想加一个内容感觉用这个vi有点复杂所以我们可以用 echo 命令(打印的意思,吃啥打啥)

echo 命令(有点危险)如想在zhang.txt里面写东西,(里面本来是有定西会覆盖原有的文章)

  如果没有就创建,有就覆盖

  一个     >                          意识是输出重定向,会清楚原有的数据    

  echo '覆盖新的内容'>zhang.txt

  两个  >>   意识是追加重定向         追加内容        只在末尾追加

  echo '追加'>> zhang.txt

   注了解:追加多行可以在编辑器上写好,在粘贴上去。如:

  echo 'zhang

  yao

  qing'>>zhang.txt

  另一种多行追加方式:

  cat >>/data/zhang.txt<<EOF

  追加的内容,

  多行。。。

  多行。。。

  EOP     

注:>> 写到那个文件,

  << EOF     EOF  是成对出现的,如果和要追加的内容有一样的单词还有问题。

  

  cat >>text.txt<<EOF
  zhang
  yao
  qing zhang.txt
  EOF

>  表示数据的流向,

0>标准输入(stdin)

1>标准正常输出(stdout)

2>标准错误输出(stdrr)

有了echo以后输入多个字符时,可以分组如:

  echo 1 2 3 4 5 6 7 8 >zhang.txt     输入1 2 3 4 .......

  xargs -n 2 <zhang.txt  

结果  1 2

    3 4

    .....

  xargs   从标准输入中获取内容创建和分组,  有一个参数  -n   是分组

cp 复制                   copy

没有参数时  只拷贝文件

  -r  是递归拷贝

  -a 是带提示拷贝

  -p 连同档案的属性复制过去,而非使用默认属性

如:cp zhang.txt /tmp           拷贝单个文件

  cp -r data /tmp    默认是不能拷贝目录的,但是加上 -r   ( r 是递归  )

rm      (remove  删除目录和文件 )   

  - r   递归   用于删除

  -f   强制(force)

  -i   询问用户是否确认删除,用  y n

如: rm zhang.txt      删除文件

  rm -f zhang.txt      不带提示的删除文件

  rm -rf data        递归删除目录

注:删除命令要慎用,非常的危险,删除前一定要备份。  也可以放到/tmp目录里面

mv     移动文件或者目录

  如 :mv zhang.txt /tmp    移动文件

    mv data tmp 移动目录

(重要命令)    find      查找   -type  文件类型(f(file)) ,d  (directory), c(charactor),b(block),s(socket),l(link),     -name '文件名 '    ,-mtime    时间,按时间查找,时间数字

  +7 以前  ,    7 第七天     -7    最近7天  。     

如:  查找特定的文件。

  find /data -type f -name '*.txt'           在data目录下查找名字是以.txt结尾的文件。

  想结合 mv 使用如:

  mv `find /data -type f -name '*.txt' /tmp    插到的文件移动到 /tmp    遵循mv 的规则,前面用反引号。

  

返回上级命令    cd ..   或者 cd ../      (两个点)

(重要命令)     grep  过滤内容    -v 排除的内容,

  例如:grep -v text zhang.txt    在zhang.txt里面排除text文本,显示其他的。 

head       头,

   默认是显示前10行。-n

   head -2 text.txt    只去前2行。

tail    尾, 尾巴

  输出文件的后n行,默认10行,-n       习惯-5  

  如: tail -3 text.txt   输出倒数3行

连续创建目录   mkdir -p /aa/bb/cc/dd     递归创建。      

      -p      是递归创建

  创建完了可以用 tree 命令查看树状图,

    yum install tree -y    这个需要先安装tree

    如: tree /aa

    结果是树状图。

问题:现在有个需求是,/tmp/test.txt  拷贝到 /mnt    不让它提示。

两种方法:

  cp /tmp/test.txt /mnt/

  /bin/cp /tmp/test.txt /mnt

  unalias cp (不要用,练习用,临时起效,重启恢复原来)         unalias   取消别名

注:为什么要这样呢。(别名的作用)

  alias   查看和设置别名

  unalias   取消别名

  如 : alias rm='echo not commed does use'

  通过 alias  命令查看,危险的命令默认都是会提示,让人确认的。

  1,系统为一些危险的命令加一些保护的命令,防止人为误操作。

  2,把很复杂的命令或者字符串变成一个简单的命令,或者字符串。

问题:只查看test.txt文件(100行)内第20到第30行的内容

sep = sequence    序列

sed stream editor        流编辑器     linux 三剑客老二,实现对文件的正删改查。

  -n 代表行   p  代表打印

awk   老大       三剑客    过滤,输出内容 

awk 'NR'>19&&NR>31 text.txt          NR 是行号。

grep    老三    三剑客             过滤内容

grep 20 -A 10 text.txt      除了20行之后的多少行

grep 20 -B10 text.txt      除了20行之前的多少行

grep 20 -C 10 text.txt  除了20行前后多少行

原文地址:https://www.cnblogs.com/littlesky1124/p/9781413.html