记住自己用的centos7版本!
Linux下的快捷键(热键)
ctrl + c【终止失控程序】
命令残缺+tab键 【命令自动补齐】
ctrl + r +历史输入命令 【搜索历史命令】
ctrl+d 【快速退出账户】
1.用户管理
添加用户
#adduser zhangsan
#passwd zhangsan
然后正常输入
退出登陆
#exit 【就完成退出】
删除用户命令
#userdel -r 用户名【便可以删除】
查看自己是谁
#whomai【便会显示用户是谁】
2.ls 指令
不加选项:只显示文件名
加选项:可以显示更多文件属性
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
🌟-a 显示LInux系统中的隐藏文件,以“.”开头的文件,为隐藏文件
#touch .test.c-----➡️所以test.c则为隐藏文件了
隐藏文件
在任意目录下,都会存在两个隐藏文件:
.(当前路径)
…(上级路径)
回到上级路径
#cd …-------➡️便回到上级路径
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
🌟-l 列出文件的属性。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别) -r 对目录反向排序。 -t 以时间排序。 -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) -R 列出所有子目录下的文件。(递归) -1 一行只输出一个文件。
打样
#ls -l
#ls -a -l
ll【常用组合命令】
3.Linux路径分隔符
“/”
windows的路径分隔符:“\”
Linux的根目录
Linux入口目录是“/”(跟目录)问题
Linux的目录结构本质是一颗多叉树!
1.每一个子节点,既可以是一个目录(再放目录或者普通文件,递归式定义),也可以是一个普通文件
2.这颗多叉树的叶子结点,一定是一个普通文件或者空目录
路径定位
我们一般“定位”,是通过路径定位的方式,找到文件的
为什么能通过路径来定位文件呢?
答:常规的路径定位是具有唯一性的!
绝对路径
/home/bit/test.c :Linux下的“绝对路径”
相对路径
ls …/lesson2.mytest.c(相对路径有时会失效)
推荐选择
如果是日常使用,我们推荐相对路径;
如果是进行添加配置文件之类,推荐绝对路径
.(当前路径)有什么用呢?
当我们生成了一个可以执行文件:a.out(可执行文件)
则 ./a.out(代表我要执行当前路径下的文件)
5 . touch 【创建文件】
#touch mytest.c
(在我们当前目录下创建了一个文件)
6.mkdir 【创建目录】
7.rm 【删除文件】
#rm test.c
8.rm -r 【递归式删除->删除目录】
#rm -r dir;
rm -rf 【强力删除】
9.pwd 【显示我当前所处的路径】
下载软件相关指令
#yum install -y man-pages;
#sudo yum install -y man-pages;
cat 【打印文件内容命令】
✳️可以打印文件内容
#cat file.txt-----➡️便打印file.txt中的文件内容了
✳️cat不适合打印长文本,只适合打印短文本
cat -n 【可以对内容带上行号】
cat不带任何时候
✳️默认会从键盘(标准输入)
退出的话按键:ctrl + c
(我们把键盘也当作文件)
more 【打印长文本】
#more file.txt------➡️则在屏幕上显示内容,按回车键是向下翻内容
less【更加推荐 打印长文本】
✳️支持按上下键可以 翻上下翻内容
head 【只提文本头】
head -20 file.txt–➡️只查看本文的前20行
tail
tail -20 file.txt—➡️只查看文本的后20行
若我想查看文本的【30000,30200】怎么做
临时文件法
head -30200 file.txt > tmp.txt—➡️现将30200行之前的放在临时文件里
再tail -20 tmp.txt
管道法
head -30200 file.txt | tail -20
“|” 管道
✳️可以传输数据资源
head -30200 file.txt | tail -20
向管道里放数据的人:head -30200 file.txt(把结果写到管道里)
向管道拿数据的人:tail -20
✳️级联多个命令,来完成流水线式的数据处理工作
cp 【拷贝】
#cp file.txt file-back.txt------➡️(拷贝一份file.txt)
✳️类似于win中的复制粘贴功能
✳️也可以指定路径的拷贝
#cp file.txt …/file.txt-1----➡️则在上级路径下就有了一份file.txt-1
✳️如果在cp的时候,要拷贝的文件,是拷贝在当前路径下,两个文件名称不能一样,拷贝到不同路径下便可以一样
✳️默认情况下是不允许拷贝目录的,若要拷贝目录则要➕上选项
#cp -r lesson3 lesson3-bak----➡️则拷贝了一份lesson3的目录在当前路径下
#cp -rf 则是强力拷贝
mv 【剪切功能/重命名功能】
#mv file.txt … -----➡️则将file.txt剪切到了上级目录下了
#mv file.txt lessons3/—➡️则剪切到lessons3的目录下了
✳️类似于剪切功能:a.可以剪切普通文件
b.可以剪切目录
✳️类似于重命名的功能:a.可以重命名普通文件
b.可以对指定目录重命名
#mv file-bak.txt file.txt-bak—➡️则file-bak.txt文件被重新命名为file.txt-bak
zip/unzip 【压缩/解压】
#zip test.zip tar_package----➡️则就形成了tar_package的压缩包test.zip
(只是压缩了一个空目录,目录里面的其他文件都没有打包进去)
#uzip test.zip—➡️便就解压了test.zip形成了tar_package
✳️默认情况下,几乎所有的解压工具解压出来的原始数据,都会放在当前路径下
zip -r 【对目录下全部文件一起压缩】
#zip -r test.zip tar_package
#unzip test.zip
unzip ➕ 压缩包名称 ➕ -d ➕ 指定路径
#unzip test.zip -d /home/whb/104–➡️则就把test.zip解压形成的文件放到指定的路径当中去了
我为什么要打包压缩呢?
✳️1.节约空间
✳️2.我们下下来的软件士压缩包,曾经提供软件的人,上传的是压缩包!
所有软件写好软件不是只有一个文件,压缩之后变成1,方便网络传输
tar 【打包 和压缩在一起】
tar czf ➕ 压缩包名称 ➕要压缩的文件
#tar czf test.tgz tar_package----➡️c:表示我创建了一个压缩包
z:表示我打包的过程中还要压缩
f:表示我要指明一个压缩包名称
则就形成了tar_package的压缩包test.tgz
tar xzf ➕ 压缩包名称
#tar xzf test.tgz-----➡️x:表示解压
便就形成了tar_package的文件
✳️默认是解压到当前路径的
tar xzf ➕压缩包名称 -C(大写) ➕ 指定路径
#tar xzf test.tgz -C /home/whb/104–➡️变解压到指定路径去了
压缩和解压其他问题
“*”
man指令 【查库的函数/命令/系统调用等】
man + 命令 【默认是查命令】
#man printf------➡️则是查printf指令
man + 3 + 命令 【则是查库函数】
#man 3 printf------➡️则是查printf的函数
man + 2 +命令 【是查系统调用】
#man 2 fork-----➡️则是查fork的系统调用接口
find 【选项可以在网上查找】
grep 【行文本过滤工具】
✳️ 他会一行一行的拿出来
#grep ‘1234’ file.txt-----➡️想把file.txt包含1234关键字的行拿出来看看
grep -i 【忽略大小写】
grep -v
✳️凡是具有关键字的文本行,去掉,保留显示没有匹配关键的行
10.cd 【切换路径】
cd可以跟上任何以绝对或者相对路径构建的路径
cd - 【返回到上一个自己在的目录】
如:从/home/tangchonghao -->cd /
则就回到 “/(根目录)”
若 cd -则能从根目录到/home/tangchonghao目录下
cd ~【快速回到home目录】
+绝对路径
+相对路径
jobs 【查看当前任务的命令】
histor 【查看历史命令】
data ➕ %s 【获取时间戳】
cal 【查看日历】
蛋哥脚本命令
#cnt=l: while [ $cnt -le 100000 ]; do echo "hello bit $cnt’‘; let cnt++; done
便可以向显示器打印100000行消息
#cnt=l: while [ $cnt -le 100000 ]; do echo "hello bit $cnt’'; let cnt++; done > file.txt
便可以向file.txt文件打印100000行hello bit了
11.其他相关文件知识
1
✳️a.如果我们创建了一个空文件,在磁盘中占据空间吗??
要占用!因为文件有属性数据->是数据!必须被保存起来
✳️b.文件=文件内容 + 文件属性
c.我们曾经或者将来要学的所有文件操作
无非两类:
1.对文件内容操作
2.对文件的属性操作
2home(家)目录
✳️不同用户都有自己的home目录
~【常用跳转到home目录】
✳️cd ~ 直接就到家目录了