ls指令:
tree:把当前目录开始 以树形展开
ls -l -a lesson1
默认情况下,ls 目录 :会显示目录里面的内容
-a :列出目录下的所有文件,包括以.开头的隐含文件
ls -l -a -d lesson1
-d:只显示目录相关的属性
which ls:查看特定指令的系统路径
->指令本质也是Linux上的一些程序 —本质上也就是文件也就是Windows下的.exe或者可执行的程序
上图中的alias就是别名的意思 有点像c中的 i = i + 1
也就是把’ls --color=auto’去赋值给ls
如下图,使用alias
这个创建back只在当前登录中有效,只在本次目录中
ll指令:
ll指令就是ls -l的别名
-l:以list形式显示文件更多的属性
-n的时候把特定用户名转化为数字 – 用户id和组id
pwd指令
显示当前所处的路径
cd指令
cd做路径切换(change address)
一直回可以回到根目录:/
Linux目录:多叉树,其中的叶子结点一般是普通文件或空目录,非叶子结点充当多叉树中某一个节点
几乎所有的操作系统,管理文件的方式基本都是采用多叉树的形式–受目录的属性约束
[为什么可以采用路径的形式,进行文件定位?]
因为每一个结点都只有一个父节点,所以路径具有唯一性
绝对路径: 从根目录开始,一直访问到叶子结点或是非叶子结点,具有唯一性
ls …访问上级目录中的lesson1下的test.c
相对当前我所处的路径
pwd此时在lesson2中,上级目录是102
相对路径: 从上例中,不以根目录开始(/)
不具备唯一性
例如从不同路径开始去找test.c
./a.out :执行程序先要找到程序–就是通过路径索引
./ 表示在哪–相对路径,相对自身当前的路径
绝对路径可能与文件配置先关
cd 绝对路径/相对路径的方式进行路径切换
cd - :记录最近从哪里来的路径
用于快速切换
cd ~:当前用户所对应的工作目录
root下,whoami是root,pwd是/root
普通用户下,whoami是xxx,pwd是/home/xxx
所以用~来表示工作路径
普通用户默认所处的工作路径一定是:/home/xxx
root所对应的工作目录是:/root
touch命令
1、用于创建普通的文本文件,不能创建目录
2、也可以更改最近创建的时间–修改时间(默认是修改所有时间)
在touch一个已经有的文件,可以更新时间
可以看到上图时间有Access,Modify,Change三种
再次touch以后会发现三种时间都进行了更新,更新某一种时间可以用-a 等指令,以后会讲解此处的时间
mkdir指令(重要)
相当于在Windows下创建一个文件夹
默认创建的这个目录是空目录
因此第一条没有显示,第二条指令查看当前目录相关的属性(-d)
mkdir -p x/x/x :创建多级路径
mkdir默认可以创建一个空目录,-p选项可以创建一条对应的路径–本质上就是在路径树中,新增路径/节点
[安装tree指令]
在root权限里面输入:
yum install -y tree
如果这个指令不行输入:
yum install -y epel-release
安装tree完成后就可以查看刚刚创建的目录:
解决之前的一些问题(个人遇到)
userdel 用户名之后,ls /home还有他的原因?
userdel username只删除了用户,但是还存在目录
userdel -r username , -r表示连用户主目录一起删除
如果删除后,主目录还在可以手动删除:
rm -rf /home/username/
创建用户一般使用useradd
adduser:是一个脚本,一般不使用
添加用户的时候,是吧用户添加到/etc/passwd里面去的
删除目录
rmdir 文件名/:通常是删除的空目录
要删除一个目录:
rm -r pl :-r表示递归删除目录及其内容
在这里用rm root.txt删除的时候,会有提示信息,y表示yes,n表示no
如果不想看到提示消息直接进行删除,输入rm -f root.txt
-r:表示递归删除,可以删除目录及其内容
-f:表示强制删除
如果输入 rm -rf /home/xxx 这样子删除有风险,不能有误操作!
man指令
man vim:可以直接对vim进行查询,显示vim的各种用法
如果linux上没有man指令,进行安装:
yum install -y man-pages
之后就可以进行查询各种函数:
man 3 printf
系统调用接口:
man 2 fork
man man 可以直接对man进行查询
这里的数字含义通过上面图片查询可知:数字代表手册的编号
1:检测默认的命令(一般默认就是查询1)
3:表示库调用 一般查询c/c++相关内容
2:系统调用函数
cp指令
拷贝指令:
用法:cp src dst
此时就将test.c里面的内容拷贝到cp.c里面去
这里的dst可以为相对路径/绝对路径
此时就将test.c拷贝至上一级路径
也可以指定名字拷贝至上一级路径
以上都是拷贝的普通文件
如果想要拷贝目录怎么办?
尝试:
cp lesson2 lessone2_backup (不行)(_backup是拷贝的意思)
cp -r src dst 进行递归拷贝
但是有可能会有很多次提示让你输入y或者n
所以加上 -f 强制拷贝
cp -rf src dst
mv指令(重要)
mv是move的缩写–相当于Windows的剪切
操作对象:目录/普通文件
把test.c剪切过来
也可以当做重命名功能
Linux没有回收站
cat
可以查看文件内容
cat -n 文件名
可以显示行号
tac也可以显示文件内容
tac显示的内容与cat显示的内容完全相反
tac:逆序输出文本;cat:正序输出文本
cat输出完后自动带clear
如果想看一开头的内容
more
more 文件名:分批查看
按回车可继续往下看,并且只能向下看
more -5 文件名:只显示五行内容,在按回车可以接着访问,按q退出访问
但是more只能下翻,所以可以用less
less
less 文件名:可以按↑↓箭头,自动上翻,下翻
可以直接输入/内容,可以定位,直接搜索特定内容
大文本查看的时候,直接用less,不用more
查看小文件可以直接用cat ,大文件一般用less(more不能往上翻)
大文件:日志、别人写好的代码
.log一般是日志
head
head默认查看前十行
也可以指定只查看前五行
tail
会把末尾的十行显示出来
只看后五行
文本文件的局部查看:从头/尾
echo
默认输出一个空行
echo也可以将输出字符串显示到标准输出
按↑或者↓可以查看历史命令
大于号 接文件名,如果没有该文件直接创建文件、
输出重定向,如果目标文件不存在,会自动创建
输出重定向:本来应该显示到显示器的内容,重定向写入目标文件中
写入文件中
再一次执行输出重定向,会清空原始文件内容,然后重新写入
如果想要在原来的基础上新增内容
用>>
追加重定向:本质也是写入
cat如果不跟文件名,默认从键盘读取内容
键盘->标准输入
显示器->标准输出
按ctrl+c可以退出
cat < log.txt :<叫做输入重定向 , 把文件的内容(log.txt)作为原始数据传给对应的程序
如何查看中间区域?
比如查10-15行的内容[10 : 15]
方案1:
先拿到前15行,存放至临时变量中
这样子就把中间的内容拿出来了
方案2:
|是管道:是一种文件
管道在自然界中:是用来传输资源的
管道在计算机中:管道有入口和出口
使用管道时,默认隐式的发生了重定向
原本是显示到显示屏的,传入到管道中
时间
date可以显示时间,但是不容易看懂
Y表示year;m表示月份,M之后再说;d表示day
H表示时,M表示分,S表示秒
时间戳
从1970年1月1日零时累积到现在的秒数
date +%s
可以在linux上@时间戳 可以转换为对应的时间