Linux命令行介绍
Linux Shell 简介
Shell 的意思是“外壳”,在 Linux 中它是一个程序,比如/bin/sh、/bin/bash 等。它负责接收用户的输入,根据用户的输入找到其他程序并运行。比如我们输入“ ls”并回车时, shell 程序找到“ ls”程序并运行,把结果打印出来。
Shell 有很多种实现,我们常用 bash。
Linux命令提示符
Linux命令格式
Linux 命令一般由三部分组成:
- command 命令;
- options 选项;
- parameter 参数;
目录/文件操作命令
pwd
cd
cd 命令有些缩略用法:
$ cd - // 进入上次目录, 比如先进入 a 目录再进入 b 目录,执行此命令后即回到 a 目录
$ cd ~ // 进入家目录
mkdir
rmdir
ls
cp
复制目录时,常用如下命令:
$ cp -rfd dir_a dir_b
r: recursive,递归地,即复制所有文件
f: force,强制覆盖
d:如果源文件为链接文件,也只是把它作为链接文件复制过去,而不是复制实际文件
rm
删除目录时,常用如下命令:
$ rm -rf dir_a
r: recursive,递归地,即删除所有文件
f: force,强制删除
cat
touch
改变文件的权限和属性
- chgrp:改变文件所属用户组
- chown:改变文件所有者
- chmod:改变文件的权限
chgrp 改变文件所属用户组
chgrp 【 -R】 dirname/filename ...
-R:进行递归的持续更改,也连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在更改某一目录内所有文件的情况。
chowm 改变文件的所有者
chown [-R] 账号名 文件或目录
chown [-R] 账号名:组名 文件或目录
范例:
chown bin install.log
chown book:book install.log
改变文件所有者和用户组的这两个命令的应用场景:复制文件,由于复制行为会复制执行者的属性和权限,因此复制后需要改变文件所属用户、用户组等
chmod 改变文件的权限
文件权限有两种设置方法:数字类型改变权限和符号改变权限。
首先说明各个权限对应的数字:
- r: 4 或 0
- w: 2 或 0
- x: 1 或 0
这 3 种权限的取值相加后,就是权限的数字表示。例如:文件 a 的权限为“-rwxrwx—”,它的数值表示为:
所以在设置权限时,该文件的权限数字就是 770。
使用数值改变文件权限的命令如下:
chmod [-R] xyz 文件或目录
符号类型改变文件权限方式:
使用 u、 g、 o 三个字母代表 user、 group、 others 3 中身份。此外 a 代表all,即所有身份。
范例:
chmod u=rwx,go=rx .bashrc
也可以增加或去除某种权限,“ +”表示添加权限,“ -”表示去除权限:
chmod a+w .bashrc
chmod a-x .bashrc
查找/搜索命令
find
find 命令格式为:
find 目录名 选项 查找条件
范例1:
$ find /home/book/dira/ -name " *.txt "
说明:
- /home/book/dira/指明了查找的路径。
- “ -name”表明以名字来查找文件 。
- “ test1.txt”,就指明查找名为“ test1.txt”的文件。
查找指定目录下面所有以“ .txt”结尾的文件,其中“ *”是通配符
范例2:
find /home/book/dira/ -name "dira"
说明: 查找指定目录下面是否存在“ dira”这个目录或文件,“ dira”是名称。
grep
grep 命令的作用是查找文件中符合条件的字符串,其格式如下:
grep [选项] [查找模式] [文件名]
假设 dira 目录的 test1.txt 和 dirb 目录的 test1.txt 都含有如下内容: aaaAAAAAA abc abcabcabc cbacbacba match_pattern nand->erase。
通过查找字符串,希望显示如下内容:
- 所在的文件名----grep 查找时默认已经显示目标文件名
- 所在的行号------使用-n 选项
范例:
//在 test1.txt 中查找字符串 abc grep -rn "abc" * 在当前目录递归查找字符串 abc
$ grep -n "abc" test1.txt
注意:可以加入-w 全字匹配。
可以在 grep 的结果中再次执行 grep 搜索,比如搜索包含有 ABC 的头文件,可执行如下命令:
$ grep “ABC” * -nR | grep “\.h”
上述命令把第 1 个命令“ grep “ ABC” * -nR”通过管道传给第 2 个命令。即第 2个命令在第 1 个命令的结果中搜索