我们学Linux指令,其实就是和学windows一样,学习Linux的操作
一、Linux下基本指令
ls 指令
- -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
- -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
- -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
- -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
- -l 列出文件的详细信息。
- -t 以时间排序。
- -R 列出所有子目录下的文件。(递归)
上面的我可能不会全部讲完,大家可以自己尝试一下。
但是在说这个之前我们先来讲一个小指令,pwd。
pwd
pwd会展示当前路径。
我们来试一试:
我们输入pwd加【回车】我们可以我们现在我们处于root路径。
这时我们输入ls【空格】-a【回车】,来看看root路径下有什么文件(ls和选项这将一般为一个空格但也可以是多个)
我们发现有蓝色的和白色的,还有“.”".."这两个也是蓝色的,这个是什么,我们向不说,但是根据我们的学习windows类比,我们可以猜测这个可能是目录或者文件夹。
再来测试ls -l
-l 列出文件的详细信息。
那么我们思考一下能不能ls -l -a来显示所有问价你的详细信息呢?
答案是可以的
而且我们发现ls -a -l的结果也一样
也可以这样写
所以我们可以得出这个结论:
ls指令的选项可以依次传递多个,可以拼接在一起,顺序可以随意。
隐藏文件
关于-a:
再Linux中,以.开头的文件,我们称之为隐藏文件。
现在我们来举个例子:
首先我们要知道一个指令:mkdir
mkdir指令(重要)
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
mkdir –p test/test1 : 递归建立多个目录
touch指令
上面我们讲了这些,那么我们该怎么新疆一个普通文件呢?这里我们得提到了touch指令
语法 :touch [ 选项 ]... 文件 ...功能 : touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
-a 或--time=atime或--time=access或--time=use只更改存取时间。-d 使用指定的日期时间,而非现在的时间。-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。-m 或--time=mtime或--time=modify 只更改变动时间。-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t 使用指定的日期时间,而非现在的时间。
pwd命令
语法 : pwd功能 :显示用户当前所在的目录
cd命令
语法 :cd 目录名功能 :改变工作目录。将当前工作目录改变到指定的目录下。
cd .. : 返回上级目录cd /home/litao/linux/ : 绝对路径cd ../day02/ : 相对路径cd ~ :进入用户家目cd - :返回最近访问目录
Linux的目录结构
yum install -y tree
tree /
- 这个多叉树的叶子节点,一定是空目录或者普通文件
- 任何一个父节点,可能存在多个子节点
- 任何一个子节点,一定只有一个父节点
绝对路径与相对路径
所以我们前面可以通过/root/dir1找到这个目录,因为路径具有唯一性。
而上面这种从根目录到指定文件的路径我们称为:绝对路径。
我们可以通过绝对路径创建文件
我们也可以通过绝对路径找到文件
- 一般命令行操作时,比较喜欢用相对路径
- 绝对路径,在任何路径下,都能找到指定的文件 —— 配置文件中使用
我们可以把路径和上面的指令结合
回到cd命令,我们观察这些目录下,我们能得出什么?
通过观察我们可以得到如下结论:
Linux下,任何一个目录,都存在..和.,新建的空目录也一样。
我们接着来
cd -跳转到最近的上一次路径
cd ~ 跳转到的都是root目录,这个是root用户的家目录
类比的话
这个就是Windows下的用户的家目录。
Linux用户登录,默认所处的路径,就是自己的家目录
上面我们说了root用户的根目录就是/root
如果我们是普通用户呢?(这里我就不做演示了)
那么普通用户的家目录也可以用 cd ~
来看,一般就是/home/xxx(xxx为用户名)
这个叫做普通用户的家目录
下面是一些知识点:
- Linux用户登录,默认所处的路径,就是自己的家目录
通过上面的路径知识和指令我们可以通过mkdir -p创建一整段路径:
例:
mkdir -p 可以创建一串路径,而且支持对已有路径创建新的路径
rmdir指令 && rm 指令(重要):
语法 : rmdir [-p] [dirName]适用对象 :具有当前目录操作权限的所有使用者功能 :删除空目录
常用选项:-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
常用选项 :
- -f 即使文件属性为只读(即写保护),亦直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
我们可以通过rmdir删除空目录
例子:
此处由于我是root用户所以会有再次确定。我们可以通过rm删除文件或目录
我们还可以通过rm -r 来递归式删除非空目录
例:
man指令(重要)
语法 : man [ 选项 ] 命令常用选项-k 根据关键字搜索联机帮助num 只在第 num 章节找-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下q 退出,他会继续往后面搜索,直到所有章节都搜索完毕。解释一下 , 面手册分为 8 章1 是普通的命令2 是系统调用 , 如 open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件 )3 是库函数 , 如 printf,fread4 是特殊文件 , 也就是 /dev 下的各种设备文件5 是指文件的格式 , 比如 passwd, 就会说明这个文件中各个字段的含义6 是给游戏留的 , 由各个游戏自己定义7 是附件还有一些变量 , 比如向 environ 这种全局变量在这里就有说明8 是系统管理用的命令 , 这些命令只能由 root 使用 , 如 ifconfig
例:
可以通过方向键翻页,按“Q”退出
man的手册,可以通过man man查看
我们也可以用man 查C语言之类的但是我们要安装一些东西
我们输入:
yum install -y man-pages
安装好后,我们就可以用这个查C语言函数
cp指令(重要):
语法 : cp [ 选项 ] 源文件或目录 目标文件或目录功能 : 复制文件或目录说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息常用选项 :-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在-i 或 --interactive 覆盖文件之前先询问用户-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
在Linux我们可以用nano函数类似写记事本(注意这个也要安装)
yum install -y nano
例:
然后ctrl+x回车保存
我们也可以运行
gcc test.c -o xxxx
把代码编译成可执行程序,然后运行
这里我们再来讲cp指令
我们就把mytest拷贝如dir目录里了
cp指令整体类似rm我们可以通过cp -r把目录递归式拷贝入另一个目录。
但是cp -rf在root用户下也仍需要确认,大家可以自己试一试。
二、Linux的一些热键(方便大家尝试今天所学)
1.Tab键(快速按两次)
1.会自动展示当前字符开头的指令,自动补齐
2.展示当前目录下的路径,自动补齐
2.ctrl+c
失控的状态,直接ctrl+c终止