2.Linux的一些常见命令

1.首先了解一下相对路径和绝对路径的概念

关于路径:

  相对路径,绝对路径

  相对路径:首先要有一个参照物(一般就是当前的工作路径)

  相对路径的写法:通常会用到 ./ 表示当前目录下

 ../ 表示上一级的目录下

  绝对路径:绝对路径不需要参照物,直接从根‘/’开始寻找对应路径

  1. 基础指令:

一:目录处理命令

1.ls指令(list)

作用:显示文件目录

  用法1: #ls

  列出当前工作目录下的所有文件/文件夹的名称(不加操作对象的表示自身)

 

  用法2: # ls 路径 

  列出指定路径下所有文件/文件夹名称

 

  用法3:# 选项 路径

  含义:列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。

 常见的语法:

    1.#ls-l 路径

       2.#ls-la 路径

       -l:表示list,表示以详细的列表的形式进行展示

       -la:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)

       列出的文件显示的意义:

       第一列指文件的类型:

       - 表示改行文档类型为文件

       d 表示改行文档类型为文件夹

       在Linux中隐藏的文件一般都是以.开头

       用法4.#ls -lh 路径

       含义:列出指定路径下的所有文件/文件夹的名称,以列表的形式并且在显示文档

        大小的时候以可读性较高的形式显示。

2.pwd指令(print working directory)

目录处理命令

作用:打印当前工作目录(绝对路径)

  1. cd命令:

 

作用: #cd   (change directory,改变目录)     用于切换当前工作目录的

 语法: #cd 路径

 

 补充:Linux有一个特殊符号“~”,表示当前用户的家目录

 切换的方式:#cd~

4.mkdir指令   (make directory)创建目录

 语法1:#mkdir 路径(路径,可以使文件夹名称也可以是包含名称的一个完整路径)

 注意:ls列出结果颜色的说明:蓝色表示文件夹,黑色的表示文件,绿色的表示其权限为拥有所有权限

 语法2:mkdir -p  路径

 

 含义:当一次性创建多层不存在的目录是,添加-p参数,否则会报错。

-p  递归创建  范例: $ mkdir -p /tmp/Japan/boduo

 $ mkdir /tmp/Japan/longze /tmp/Japan/cangjing

 

5.cp指令

指令:cp(copy指令:复制)

  作用:复制文件/文件夹到指定的位置

  语法:# cp 被复制的文档路径  文档被复制到的路径

  语法:cp -rp [原文件或目录] [目标目录] 

  -r  复制目录 

-p  保留文件属性 

 -i 覆盖文件前询问用户 

   -v   显示指令执行过程 

功能描述:复制文件或目录

  注意:

1.Linux在复制过程中是可以改名字的,但是不建议。

  2.当使用cp命令复制文件夹时,要使用 -r  否则文件夹将被忽略

-r表示递归

范例:

  1. 将目录/tmp/Japan/cangjing复制到目录/root下

# cp -r /tmp/Japan/cangjing  /root

2、将/tmp/Japan目录下的boduo和longze目录复制到/root下, 保持目录属性

# cp -rp /tmp/Japan/boduo  /tmp/Japan/longze  /root

6.mv指令

功能描述:剪切文件、改名

-f  如果重复则直接覆盖  -i 覆盖前询问用户 

 -v  显示执行过程信息 

(移动,剪切)

 语法:# mv  需要移动的文档路径   需要保存的位置路径

注意:移动过后文件将不再原来的位置,变化的只是文件/文件夹的位置

 1.移动文件:

 # mv linux1.txt  /linux.txt(移动并改名为linux.txt)

 2.移动文件夹

 # mv /home/linux123/yunwei/   /(名字可以写可以不写,不该名字可以不写)

 补充:只改名字(相当于重命名),所以可以把mv命令当做重命名来用 

 #  mv /yunwei  /henniu

7.rm指令

  -r  删除目录,递归删除 

-f  强制执行 

 功能描述:删除文件

 范例:

1、删除文件/tmp/yum.log rm /tmp/yum.log

2、删除目录/tmp/Japan/longze rm -rf /tmp/Japan/longze

语法:# rm 选项  需要移除的文档路径

1.删除一个文件

  # rm /要删除的文件

 在删除的去处提示,不想频繁的输入y或n:

 注意:可以添加-f,表示force(强制)

 2,删除一个文件夹

 # rm -r /henniu/

  # rm -rf /henniu/

  注意:删除一个目录的时候,要用到递归操作,

  也不需要确认,所以要用到-rf

 3.删除多个文档

   # rm -rf  a  linux.txt 

 4.删除一个目录下有公共特性的文件:

 rm -f linux*

 其中*表示通配符,表示通配符,只要文件以Linux开头,后续字符则不管

 

 

 

二:文件处理命令

 

1. :rmdir指令

      (:remove empty directories)

语法:rmdir [目录名] 

功能描述:删除空目录,非空删不了

范例: $ rmdir /tmp/Japan/boduo

2.touch指令

作用::修改时间戳,顺便创建空文件

 语法:# touch 文件路径  (路径可以使直接的文件名也可以是路径)

 

        范例:

 #  touch 1.txt 

 stat  1.txt 

 chmod +x 1.txt:修改属性时间 

 cat 1.txt :修改访问时间 

 vim 1.txt:修改?

.3.cat指令

语法:cat [文件名] 

功能描述:显示文件内容 

 -n显示行号  -E显示行结束符 

范例:# cat  /etc/issue

#cat  -n  /etc/services

  1. more指令

语法:more  [文件名] 

(空格)   翻页 

(Enter)          换行 

 q或Q              退出 

 b 向上翻页 

 功能描述:分页显示文件内容

范例:

#  more  /etc/services

5.less指令

语法:less  [文件名] 

功能描述:分页显示文件内容(可向上翻页)

 范例:

# less  /etc/services

6. :tail

语法:tail  [文件名] 

功能描述:显示文件后面几行 

-n 指定行数 

-f  动态显示文件末尾内容(echo “ddd”>>1) 

 范例: $ tail -n  18 /etc/services

7.ln

 语法: ln  -s  [原文件]  [目标文件]

-s 创建软链接 

功能描述:生成链接文件

三:文件类型命令

 

 

  1. file 

 语法:file 文件名或者目录 

功能描述:显示文件的类型 

范例:

file  /etc/passwd

file  /bin/cat

四:权限管理命令

 

1.chomd指令

功能描述:改变文件或目录权限

(change the permissions mode of a file)

  1. 语法1:# chmod  [{ugoa}{+-=}{rwx}] [文件或目录] 

其中

u 表示该档案的拥有者,

g 表示与该档案的拥有者属于同一个群体(group)者

o 表示其他以外的人,

a 表示这三者皆是。

$ find /etc -name init -exec ls -l {} \; 在/etc下查找init文件并显示其详细信息

   -exec  命令 {} \;对搜索结果执行操作

语法2:# chmod  [mode=421 ]  [文件或目录] 

 -R递归修改 

 

2.Linux的一些常见命令 2.Linux的一些常见命令

 

只要记住:r=4   w=2   x=1  然后用数字变现即可

.2.chown指令

   语法:chown [用户] [文件或目录] 

功能描述:改变文件或目录的所有者 

 范例:#  chown  hpe fengjie

改变文件fengjie的所有者为hpe

3. chgrp指令

语法:chgrp  [用户组]  [文件或目录] 

功能描述:改变文件或目录的所属组

范例:#  chgrp  lampbrother  fengjie

改变文件fengjie的所属组为lampbrother

五:文件搜索命令

 

1.find指令

功能描述:文件搜索

 

语法:find  [搜索范围]  [匹配条件] 

实例

 # find  /etc -name  init

在目录/etc中查找文件init  - iname不区分大小写 

#  find  /  -size  +204800

在根目录下查找大于100MB的文件

 +n大于 -n小于 n等于 

#  find  /home  -user  user1

在根目录下查找所有者为user1的文件

-group根据所属组查找

 #  find  /etc -cmin -5

在/etc下查找5分钟内被修改过属性的文件和目录

-amin访问时间 access

-cmin文件属性 change

-mmin文件内容 modify

 

 #  find  /etc -size  +163840 -a -size  -204800

在/etc下查找大于80MB小于100MB的文件

-a两个条件同时满足(and)

-o两个条件满足任意一个即可(or) 

 

 #  find /etc -name init -exec ls -l {} \;

在/etc下查找init文件并显示其详细信息

-exec 命令 {} \;对搜索结果执行操作

2.which指令

功能描述:搜索命令所在目录及别名信息

语法: which  命令 

范例:#  which ls

3. :whereis指令

语法:whereis [命令名称] 

功能描述:搜索命令所在目录及帮助文档路径 

 范例:# whereis ls

4. locate指令

语法:locate  文件名 

 功能描述:在文件资料库中查找文件 

 范例:$ locate inittab

5. :grep指令

语法:grep  -iv [指定字串] [文件] 

功能描述:在文件中搜寻字串匹配的行并输出

-i不区分大小写

 -v排除指定字串 

范例:# grep  mysql  /root/install.log

 

 

其他一些常见命令:

  1. history命令

 登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history 登录进shell后执行的命令只会记录在缓存中,不会记录在 ~/.bash_history,只有用户退出时才会才会追加到~/.bash_history

history -a:把命令追加到~/.bash_history中

history –c :清空历史命令

快捷操作

!#:调用历史中第#条命令

!Str:从后向前找到最近一个Str开头的命令

!!:重复运行上一条命令

  1. 用户管理命令:who

 语法:who  功能描述:查看登录用户信息  范例: $ who

  1. 用户管理命令:w

语法:w  功能描述:查看登录用户详细信息  范例: $ w

  1. 统计命令:wc

 -c 统计字节数

 -l 统计行数

 -m 统计字符数。这个标志不能与 -c 标志一起使用

-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-L 打印最长行的长度

5. 裁剪命令:cut

cut命令是一个选取命令,其功能是将文件中的每一行字节、字符、字段 进行剪切,选取我们需要的,并将这些选取好的数据输出至标准输出

其语法格式为

 cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]

使用说明

 cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和 字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一

主要参数

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除 非也指定了 -n 标志。

 -c :以字符为单位进行分割。

-d :自定义分隔符,默认为制表符。

-f :与-d一起使用,指定显示哪个区域(第几列)。

使用最多的就是 -d  -f  组合使用

-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一 个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被 写出;否则,该字符将被排除。

 cut命令主要是接受三个定位方法

  • 字节(bytes),用选项-b
  • 字符(characters),用选项-c
  • 域(fields),用选项-f

5.排序命令sort

sort [-bcfMnrtk][源文件][-o 输出文件]

补充说明:sort可针对文本文件的内容,以行为单位来排序。

参 数:

 -b 忽略每行前面开始出的空格字符。

 -c 检查文件是否已经按照顺序排序。

-f 排序时,忽略大小写字母。

 -M 将前面3个字母依照月份的缩写进行排序。

-n 依照数值的大小排序。

-o<输出文件> 将排序后的结果存入指定的文件。

-r 以相反的顺序来排序。

 -t<分隔字符> 指定排序时所用的栏位分隔字符。

 -k 选择以哪个区间进行排序。(-t  -k 一起使用

例子:sort -n -k 2 -t ‘:’ facebook.txt)

 -u  全局去重

6. uniq 命令

作用:删除文件中的重复行

uniq 命令读取由 InFile 参数指定的标准输入或文件。该命令首先比较相 邻的行,然后除去第二行和该行的后续副本。重复的行一定相邻。(在 发出 uniq 命令之前,请使用 sort 命令使所有重复行相邻。)

 -c 在输出行前面加上每行在输入文件中出现的次数。

 -d 仅显示重复行。

 -u 仅显示不重复的行

7.tar命令

语法:tar选项[-zcf]   [压缩后文件名] [目录] 

-c打包  -v显示详细信息  -f指定文件名  -z打包同时压缩 

功能描述:打包目录 

 压缩后文件格式:.tar.gz

范例:  $ tar  -zcvf Japan.tar.gz  Japan 

将目录Japan打包并压缩为.tar.gz文件

tar命令解压缩语法: 

-x解包  -v显示详细信息  -f指定解压文件  -z解压缩 

范例:$ tar  -zxvf Japan.tar.gz

六:网络命令

 

 

1. 网络命令:wall

语法:wall  [message] 

功能描述:发广播信息 

范例: # wall  ShenChao is a honest man!

2.ping命令

语法:ping选项 IP地址 

 -c指定发送次数  -w 

功能描述:测试网络连通性

 范例: #  ping 192.168.1.156

3.ifconfig命令

语法:ifconfig网卡名称 IP地址 

功能描述:查看和设置网卡信息 

范例:# ifconfig eth0 192.168.8.250 

 ifconfig eth0 up 

Ifconfig eth0 down(CRT挂) 

 ifconfig eth0 192.168.120.56 netmask 255.255.255.0

已经被ip命令取代

 

4. :last命令

语法:last 

功能描述:列出目前与过去登入系统的用户信息 

范例:# last

语法:lastlog

功能描述:检查某特定用户上次登录的时间 

 范例:# lastlog # lastlog -u 502

5.netstat命令(重要)

(已经被ss命令取代)

语法:netstat [选项] 

功能描述:显示网络相关信息

选项: 

 -t: TCP协议 

-u: UDP协议 

-l: 监听 

 -p: 显示相关链接的程序名 

 -n: 显示IP地址和端口号 

范例:  #  netstat –tlun 查看本机监听的端口  #  netstat –a 查看本机所有的网络连接  #  netstat –au 查看本机所有udp端口  #  netstat –lt(lu) 查看本机所有监听tcp(udp)端口

# netstat  -anpl

   # netstat  -anplt

 

其他命令

1、shutdown命令 

 [[email protected] ~]# shutdown [选项] TIME 

选项:

 -c(cancel):取消前一个关机命令

 -h(halt):关机

-r(reboot):重启

TIME

 now:立刻

+m:相对时间表示法,从命令提交开始多少分钟之后,例,+3 hh:mm:绝对时间表示,指明具体时间

 

其他重启命令

# reboot

# init 6

2.重定向

重定向使用场景

1.当屏幕输出的信息很重要,而且我们需要将他存下来的时候;

2.背景执行中的程序,不希望他干扰屏幕正常的输出结果时;

3.一些系统的例行命令(例如写在/etc/crontab 中的文件)的执行结果 ,希望他可以存下来时;

 4. 一些执行命令,我们已经知道他可能的错误讯息,所以想以『 2> /dev/null 』将他丢掉时;

5.错误讯息与正确讯息需要分别输出时。

重定向符号

 >:输出重定向到一个文件或设备 覆盖原来的文件

 >>:追加

<:输入重定向

输入输出标记

标准输入:代码为 0 ;或称为 stdin ;使用的方式为 <

标准输出:代码为 1 ;或称为 stdout;使用的方式为 1>

错误输出:代码为 2 ;或称为 stderr;使用的方式为 2>

标准错误重定向符号

2>: 将一个标准错误输出重定向到一个文件或设备 覆盖原来的文件

2>>:追加

2>&1(>&):将一个标准错误输出重定向到标准输出