一、ls指令
语法
ls[选项][目录或文件名]
功能
显示文件的属性
常见用法
ls 只显示文件名
ls -l 显示文件名和文件属性 (可用别名 ll 代替)
ls -l -a 显示隐藏文件
ls -ld 查看指定目录属性
补充知识
1、文件 = 文件属性 + 文件内容
文件属性包括文件大小,文件创建时间,文件名称等。文件属性是数据,所以在文件内容为空时文件依然在磁盘中占据内存。
2、任何目录下都有两个隐藏目录 . 和 ..
. 是指当前路径
.. 是指上级路径
并且以 . 开头的文件都是隐藏文件
二、pwd指令
语法
pwd
功能
显示当前所在路径
三、cd指令
语法
cd 目录名
功能
改变工作目录,将当前目录改变到指定目录下。
常见用法
cd .. 返回到上级目录
cd /root/111/test.txt 到指定路径(绝对路径)
cd ../test.txt 到指定路径(相对路径)
cd - 返回到最近访问的目录
cd ~ 到家目录
补充知识
1、为什么路径具有唯一性?
因为任何一个文件只有一个父目录。
2、想要执行一个可执行程序时要在当前目录下访问改文件
./a.out 在当前路径下执行a.out程序
3、Linux整个文件目录结构是一棵多叉树
4、普通文件在权限中是以 - 开头
目录是以d开头
四、touch指令
语法
touch[选项]...[文件名]...
功能
创建多个新文件,可更改文档或目录的日期时间,包括存取时间和更改时间。只能创建普通文件。
常见用法
touch filename
五、mkdir指令
语法
mkdir [选项] dirname
功能
创建一个目录。
常见用法
mkdir dirname
mkdir -p a/b/c/d -p选项能在当前路径创建一个大目录里面包含多个目录。a/b/c/d表示在a目录中有一个b目录,在b目录中有一个c目录等。
补充知识
1、用 tree dirname 可以将一个名为dirname的目录用树的形式打印出来
2、文件的ACM属性
用 stat filename 来显示一个名为filename的文件详细属性
其中Access Modify Change需要了解一下
Access:文件最后的访问时间。
Modify:文件内容最后修改时间。
Change:文件属性最后修改时间。
六、alias指令
语法
alias myname='commandname'
功能
把linux中一个默认的指令(commandname)取一个别名(myname)。
举例
上面在讲 ls 指令时有一个 ls -l 指令可以用 ll 来替代就是因为 ll 是 ls -l 的别名。
补充知识
1、which指令
在上图我们使用了 which ll 指令,which 指令是用来查找一个指令在系统中所处的路径,一般用来查找是否有这条指令,或者也可用找到的路径(例如上图中找到的路径就是 /usr/bin/ls)来直接执行 ll 指令。
2、重新认识指令
在which指令介绍中我们提到用路径也可以直接执行指令,那这是为什么呢?
其实指令的本身就是程序,存在与 /usr/bin 路径下面(usr表示系统目录,bin表示二进制文件),不论是在 linux 还是在 windows 下面安装或卸载的本质就是把可执行程序拷贝或删除在系统目录中。那么在 windows 上面我们可以点击可执行程序让它工作,在 linux 上我们找到指令的所在路径也可以执行指令。
七、rm指令
语法
rm [选项] [文件/目录名]
功能
删除一个文件或目录。
常见选项
-f 在root账号下删文件要谨慎,他会问你是否要删除(回答y/n)加上 -f 可直接删除。
-r 因为目录是树状结构,删除目录要用递归,-r 是告诉他要用递归删目录。
补充知识
在 linux 中用户一般分为root(超级用户,权限大)和普通用户(权限小)。
八、man指令
语法
man [选项] [名字]
功能
man作为一个手册可以查询一些指令,库函数的用法。
常见用法
man手册分成九个板块,我们这里只了解前三个。
第一个是查询可执行程序和指令。
第二个是查询系统调用。
第三个是查询C库函数。
九、cp指令
语法
cp [选项] 源头 目的地/重命名
功能
拷贝文件或目录到其他目录。
常见用法
1、拷贝文件
cp test.txt ../ 把一个名为test.txt的文件拷贝到上级目录。
2、拷贝目录
cp -rf dir / 选项 -f 是防止系统问你是否拷贝,选项 -r 表示递归拷贝目录。拷贝名为dir的目录到根目录。
补充知识
源头记src,目的地记dst
dst可以是一个带路径的文件名,这样的作用是不仅拷贝还重命名。
src 和 dst 都可携带绝对/相对路径进行拷贝。
十、mv指令
语法
mv [选项] 源头 目的地/重命名
功能
剪切一个文件到目标目录。
常见用法
1、对文件重命名就是剪切旧名字文件到当前目录 mv oldname newname
2、把文件目录剪切到其他目录下 mv src dst
3、mv log.txt ../111.txt 把一个名为log.txt文件剪切到上级路径并且重命名为111.txt
十一、cat指令
语法
cat [选项] [文件名]
功能
查看小文件。
常见用法
cat -n 文件名 额外显示行数。
cat -s 文件名 把连续的空行变成一的空行。
补充知识
1、echo 是一个指令,用来在显示器文件写入文本。
2、> 符号是输出重定向,< 符号是输入重定向。
echo 默认从键盘文件中读取数据输出到显示屏文件。
所以 echo > filename 表示从键盘中读取数据输出到文件中(用>来进行输出的重定向)
cat 默认从键盘中读取数据显示到显示屏文件上。
所以 cat < filename 表示从普通文件中读取数据显示到显示屏文件上(用<来进行输入的重定向)
3、>的功能
echo "..." > filename 表示先清除文件中内容,把"..."写入文件,若文件一开始不存在就先创建。
> filename 表示创建一个空文件。
>> 追加重定向,>>像c语言中以"a"方式打开文件,在文件后面写入。
>像c语言中以读"w"方式打开文件,清空文件再写文件。
4、总结
command > filename:输出重定向
command >> filename:追加重定向
command < filename:输入重定向
十二、more指令
语法
more [选项] [文件名]
功能
查看大文件,用回车来进行逐行阅读。
常见用法
more -n filename 带行号的阅读文件。
/字符串:向下搜索“字符串”的功能。
?字符串:向上搜索“字符串”的功能。
q:退出阅读。
十三、less指令
语法
less [选项] [文件名]
功能
查看大文件,用键盘上下键进行逐行阅读。
常见用法
/字符串:向下搜索“字符串”的功能。
?字符串:向上搜索“字符串”的功能。
q:退出阅读。
补充知识
1、head -行数 文件名 查看文件头几行
tail -行数 文件名 查看文件最后几行
2、| 管道符号
用来多级指令的级联,用于数据传输。
head -8010 big.txt | tail -11 先取出big.txt前8010行,将数据通过管道再取新文件最后10行数据。
3、wc -l 文件名 统计文本行数。
十四、时间指令
1、date指令
功能
显示时间。
常见用法
date +标记 时间的格式化输出。
标记列表
%H 小时
%M 分钟
%S 秒
%X 相当于%H:%M:%S
%d 日
%m 月
%Y 年
%F 相当于%Y-%m-%d
date +%s 输出时间戳。
date +%F_%X -d@1382478395 将1382478395时间戳转换成格式是%F_%X的时间。
举例
2、cal指令
功能
打印日历。
常见用法
cal 显示当前月的日历。
cal -y 显示当前年的日历。
cal -3 显示当前月的前一个月,当前月,后一个月的日历。
举例
十五、find指令
语法
find [路径] [选项] [文件名]
功能
在系统树形结构中查找文件。
常见用法
find pathname -name filename
常用选项 -name 按文件名查找。
十六、grep指令
语法
grep [选项] [关键字] [文件名]
功能
行文本过滤器,在文件中查找关键字所在的行,并打印。
常见选项
-n 显示行号。
-v 找到文本中不包含关键字的行。
-i 关键字不区分大小写。
十七、压缩解压缩指令
1、zip/unzip指令
功能
zip 对多个文件或目录进行打包压缩。
unzip 对压缩包进行解压缩。
常见用法
zip -rf name.zip file1 file2... 把多个文件file1,file2...压缩成名为name.zip的压缩包。
unzip name.zip -d pathname 把名为name.zip压缩包解压缩到pathname路径下(-d选项标明路径)
2、tar指令
功能
对多个文件或目录进行打包压缩,并且对压缩包进行解压缩。
常见选项
-c 创建一个压缩文件。
-x 解压缩一个压缩文件。
-z 使用压缩算法。
-f 使用档名,压缩文件的名字要紧跟在-f选项后面。
-v 把压缩过程显示出来。
-C 解压缩到指定目录。
举例
tar -czf test.zip dir 把dir目录压缩成test.zip压缩文件。
tar -xzf test.zip -C / 把test.zip压缩文件解压缩到根目录。
十八、uname指令
语法
uname [选项]
功能
获取电脑和操作系统相关信息。
常见用法
unname -r
3.10.0-1160.92.1 内核版本
el7 centos 7
x86_64 cpu架构
十九、shell命令以及运行原理
首先我们要明确大部分的指令是文件,存在于磁盘中。在我们执行某种指令时,不是直接让操作系统来执行指令,而是要先交给外壳程序。
shell就叫外壳程序
那什么是外壳程序?
介于用户与操作系统之间的软件命令行解释器。
那为什么要有外壳程序?
1、用户不善于与操作系统内核进行交流。
2、外壳程序可以对用户的命令进行检查,保护操作系统内核。
外壳程序作用
把用户命令翻译给内核处理。
把内核处理结果翻译给用户。
shell是外壳程序的统称,我们常用的bash就是一种外壳程序。
一般shell程序不会亲自执行,它会创建子进程来执行,shell只需等待结果。