一、基本常识:
1、Linux与windows的区别:
Linux操作的特点:纯命令行(linux也有图形化界面)。
windows操作的特点:也是命令行,不过面向普通用户,所以以图形化界面为主。
2、指令是可以携带选项的
3、文件的属性是数据,需要存储。
文件=文件内容+文件的属性
文件的操作=对文件内容的操作+对文件属性的操作
4、文件的类型:
d:目录
-:普通文件
5、指令就是可执行程序!
指令一定是在系统的某一个位置存在的。
指令的本质就是可执行程序,和我们自己写代码编译好的程序,没有本质区别。
指令的本质就是可执行文件,安装在了系统的某种路径下。
6、Linux下一切皆文件,比如显示器(向显示器打印->fwrite,fread(){}),键盘(向键盘进行读取->fread(){}),普通文件(fwrite(),fread())……,都可以具有读写方法。
二、指令(可以携带选项)
1. ls:显示所有文件
-l:显示文件的详细信息(ll相当于ls -l)
-a:显示所有文件(包括隐藏文件)
ls -al/ls -la/ls -a -l
-d:将目录像文件一样显示,而不是显示其中的文件。
-F:目标类型识别
*:匹配任意名称的文件
-li:查看文件的inode编号。
2、在Linux中,以.开头的文件都是隐藏文件
在Linux中,任何一个目录下都有两个隐藏文件.和..,
(cd)..表示当前路径的上级路径(回退)
(cd).表示当前路径
3、pwd:显示当前命令行所处目录(路径)
/是Linux路径分割符,第一个/代表根目录
\是windows路径分割符
目录里面能再放目录和普通文件,所以Linux的整个目录结构为多叉树,它的叶子结点是空目录或者非目录文件,路上节点是一个非空目录。
通常用路径定位文件(因为任何一个节点都只有一个父节点)(绝对路径/相对路径)。
centos系统中,所有的普通用户,用户账号都会统一放在/home(Linux和windows都有家目录概念)
4、cd xxx(路径):进入目录
cd~:直接进入家目录
cd-:进入上一次所在路径
(一般从根目录开始的都是绝对路径,反之则为相对路径)
5、mkdir xxx:创建目录(中间有空格)
-p创建一串路径
touch xxx:创建普通文件
rmdir xxx:删除空目录
6、rm:删除文件(不能直接删目录)
-r:递归式删除(目录)
-rf:递归并强制删除(目录)
-i:询问
rm * -rf:删除所有
7、tree:将文件以树状结构显示
(下载此指令:yum install -y tree)
8、man:显示手册
q:退出手册
从1~9寻找
9、cp src dest:拷贝
常识告诉我们,同一个目录下,不能存在同名文件
只能拷贝文件,不能拷贝目录
-r:拷贝目录(递归)
-i:询问
-f:强制覆盖
10、mv src dest:剪切并重命名(目录和文件均可)
11、echo+字符串:打印(指令echo默认换行,printf默认不换行)
echo x>y.txt:没有在显示器显示,这个数据被写到了文件中(向目标文件进行写入的时候覆盖写入:清空文件并写入新内容)
输出重定向:本来应该显示到显示器的内容,打印到文件中。
>y.txt:清空文件
echo x >> y.txt:追加重定向(append)
12、cat:默认从键盘读数据
cat < y.txt:本来应该从键盘文件读取,现在不用从键盘读取,从指定文件读取(输入重定向)
>y.txt:新建文件(也可用作清空文本)
-b对非空输出行编号
-n对输出的所有行编号
-s不输出多行空行
13、cat不适合看大文本,more可以(逐行下翻),不过一般用less(不加载整个文件,可随意浏览)
head -n y.txt:默认提取文本的前n行
tail:与head相对
(按q退出)
14、管道(文件):head | tail(内存级文件)
管道通常可以支持流水线工作
15、which:在指令路径下(/usr/bin)搜索指令文件
alias:临时起别名
16、find:可以在指定路径下进行文件搜索(真的在磁盘文件中查找)
find ~ -name 文件名/*/*.c:查找所有含该文件名的文件/所有文件/.c文件
find 某路径 -name 文件名/*/*.c:查找某路径所有含该文件名的文件/所有文件/.c文件
17、whereis:在系统特定的路径下查找,既可以找到可执行程序,又可以找到手册,安装包,压缩包等之类
18、grep:行文本过滤工具
-v:提取相反内容
-n:带行号
-i:忽略大小写
也可以以管道的方式运行
19、zip(压缩文件,目录需加-r递归式压缩)
unzip(解压缩)
解压缩至指定路径
zip命令安装方式:以root方式登陆,yum install -y zip unzip
20、tar
tar czf XXX ---打包压缩
tar tzf XXX.tgz ---预览
tar xzf XXX.tgz---解压解包
(.tar是打包后缀,.gz是压缩后缀,XXX.tar.gz可简写为XXX.tgz)
tar xzf XXX.tz -C---解压解包至指定路径下
21、objdump -S a.out 显示反汇编
22、热键:
[Tab]按键---具有『命令补全』和『档案补齐』的功能
Ctrl C:终止因为程序或者指令异常而导致我们无法进行指令输入。
Ctrl D:键盘输入结束,也可以用来取代exit
三、再谈指令
1、bash命令行:用户名+主机名+当前目录+命令行提示符(输入指令的过程本质就是输入字符串)
2、指令的本质就是编译好的程序和脚本,一定会在系统的特定路径下存放
我们所有的指令,最终都要在OS内部运行,但是OS使用难度比较高,用户不能直接和OS打交道,需要有图形化界面或者命令行解释器,将使用者的命令翻译给核心处理,将核心处理的结果翻译给使用者
3、命令行解释器存在的意义:
a.进行命令行解释
b.保护OS对于用户的非法请求直接拦截变相的保护了操作系统
ps:Bash和shell有啥区别?
Shell是外壳的统称,Bash是具体的一种外壳linux centos7中使用的具体的命令行显示器。