2.Linux的一些常见命令
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)
目录处理命令
作用:打印当前工作目录(绝对路径)
- 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表示递归
范例:
- 将目录/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
- 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 创建软链接
功能描述:生成链接文件
三:文件类型命令
- file
语法:file 文件名或者目录
功能描述:显示文件的类型
范例:
file /etc/passwd
file /bin/cat
四:权限管理命令
1.chomd指令
功能描述:改变文件或目录权限
(change the permissions mode of a file)
- 语法1:# chmod [{ugoa}{+-=}{rwx}] [文件或目录]
其中
u 表示该档案的拥有者,
g 表示与该档案的拥有者属于同一个群体(group)者
o 表示其他以外的人,
a 表示这三者皆是。
$ find /etc -name init -exec ls -l {} \; 在/etc下查找init文件并显示其详细信息
-exec 命令 {} \;对搜索结果执行操作
语法2:# chmod [mode=421 ] [文件或目录]
-R递归修改
只要记住: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
其他一些常见命令:
- history命令
登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history 登录进shell后执行的命令只会记录在缓存中,不会记录在 ~/.bash_history,只有用户退出时才会才会追加到~/.bash_history
history -a:把命令追加到~/.bash_history中
history –c :清空历史命令
快捷操作
!#:调用历史中第#条命令
!Str:从后向前找到最近一个Str开头的命令
!!:重复运行上一条命令
- 用户管理命令:who
语法:who 功能描述:查看登录用户信息 范例: $ who
- 用户管理命令:w
语法:w 功能描述:查看登录用户详细信息 范例: $ w
- 统计命令: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(>&):将一个标准错误输出重定向到标准输出