linux常用指令讲解
文章目录前言一、指令详解总结前言Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。GNU通用公共许可协议
前言
一、指令详解
1. ls 指令:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
我们可以看到在家目录下,ls将显示家目录下的所有子目录与文件
当我们进入test目录后,ls显示的是test目录下的所有子目录与文件
2. mkdir指令: 在当前目录下创建一个新目录
我们在家目录下创建了一个新目录叫new,在家目录下用ls指令能够查到
mkdir -p :递归建立多个目录 后面的每个目录要用 / 隔开
3.pwd指令:显示用户当前所在的目录
我在哪个路径下就显示哪条路径,比如现在在家目录下就显示了家目录的路径
4.cd指令:进入指定的目录下
比如进入家目录下的new目录,cd new即进入,由于new目录下并没有其他子目录或者文件所以在当前目录下使用ls指令什么也没有。
5.touch指令:创建指定的普通文件
touch是创建一个文件,mkdir是创建一个目录,在我的linux环境下,目录是蓝色,文件是白色,红色则是压缩文件。
在new目录下,我们创建了一个名为newbook的普通文件,ls查看当前目录下的文件可以看到new目录下有一个newbook的普通文件。
6.whoami指令:查看我是谁(显示用户名)
由于linux支持多个用户同时登陆使用所以在使用的过程中必须得知道自己是谁
我在当前环境下用root的身份登陆所以显示的是root,这里每个人的用户名都不一样。
7.echo指令:为某个普通文件中写入内容
echo + " " + > (>为输出重定向,即使原来文件中有内容也会先清空在写入新的内容)
我们可以看到当我们在newbook文件中写入“这里是第一行”后,然后用echo+>符号继续在newbook文件中写入新内容时原先里面的“这里是第一行”的内容没有了,这就是输入重定向的意思。
echo + " " + >> (>>为追加重定向,当原来的文件内有内容时不会清空原有的文件而是在原先内容的基础上追加。
也就是说如果我们在一个文件内写入写入内容又不想删除原先文件内的内容,这样的话就用>>的追加方式,如果写入内容的同时想清空文件内的内容则用>的方式。
<符号位输入重定向,拿cat举例,cat默认是从键盘获取数据的,但是如果加上<符号cat就会从文件获取数据
8.ll指令 : 显示当前路径的文件夹及文件的大小权限等
可以看到ll指令比ls全的多,有文件创建的时间以及大小和权限。
9. .和.. 两个快捷命令
. : .是当前路径
.. : ..是上一级路径
我们可以看到在new路径下,cd .还是在new路径, 而cd ..后回到了上一级路径root,这两个指令在进行文件拷贝或者移动的时候非常方便
10.cd ~ :cd~可以直接返回家目录。
当我们进入某一个目录太深的时候,依靠返回上一级目录回到家目录太麻烦,这个时候我们直接cd ~即可,在linux中大部分命令都需要带上空格。
11.热键Tab (命令的自动补齐)
比如说你现在要创建一个目录,但是你把创建目录的指令忘记了只记住了第一个字母m,这个时候快速tab两个即可出来以m开头的所有命令。
12.ctrl + c 终止程序运行
比如我们用tree来展示根目录的时候一直刷屏停不下来,这个时候我们就可以用ctrl + c来终止
13.tree命令:以树状结构显示linux执行的目录结构
比如我们tree d1目录就可以看到d1以及d1的子目录。
14.cat指令:查看文件夹的内容
要查看哪个文件夹的内容在cat后跟上文件夹即可。
15.gcc指令:编译一段C语言代码
我在book文件中写了一个C语言程序,然后再gcc编译的时候发现出错了原因是一开始的book文件并不是后缀为.c的文件,所以在当我将book重命名为book.c的时候编译成功了,这时候就用到了第十六个指令./a.out指令,这个指令能让C语言程序运行起来,第一个.是当前路径,/是路径分隔符,整体就是在当前路径运行程序。
16. ./a.out指令 : 让C语言程序运行起来
使用这个指令后会生成一个a.out文件。
17.stat指令:获取文件的所有属性
18.rmdir :删除空目录
当我们删除d1目录的时候提醒我们只能d1目录不为空,所以这个指令只能删除空目录。
我们重新创建了个目录empty,里面为空在rmdir后直接删除。
19. rm -r 递归删除
rm -rf 加一个f就变成了强制递归删除,这里的强制是指不会再告诉你是否要删除某某文件。
前面我们已经看到过d1是一个递归目录,当我们用指令rm -rf递归删除后d1及其他的子目录都被删掉了。
20.rm -rf./* 删除当前目录下的所有内容
可以看到使用此命令后new目录下的内容都被清空了
21.man : 查看各个指令的手册
比如查看ls指令的手册
22.printf:打印
printf在linux中也是一条指令,使用方法为printf"%d:%s\n 10 "hello"
23.cp指令 :拷贝文件到指定目录
图中将root/new/路径下的newtest拷贝到test目录中
也可以直接拷贝到上级目录我们介绍过..就是上级目录
cp -r:递归式拷贝
mv 指令:剪切移动
如图我们将家目录下的test.c文件移动到new目录中,移动后原先家目录下的test.c就不在了
mv也可以起到对文件重命名的作用
比如将刚刚的test.c文件重命名为oldtest
24.cat -n :在文本内容前面显示行号
25.cat -s :不输出多行空行
26.wc指令 :统计文本内容
27.wc -l指令: 统计文本内容的行数
28.more指令:与cat指令相似,查看文本内容
29.less指令:对文件或其他输出进行分页显示的工具,用pageup和pagedown进行翻页
进入展示页面后用q退出。
30.head指令 :默认打印文本前10行
head -5 :打印文本内容前5行
31.tail指令:默认显示文本内容后10行
tail -3 :文本后三行
32. | :管道 可以连接多个命令
比如:cat newtest | wc-l 文件内容一共几行
33. date :显示当前日期
date +%Y:显示年
date +%Y -%m :显示年月
date +%Y-%m-%d :显示年月日
date +%Y-%m-%d_%H:%M:%S :显示年月日以及具体时间
34.cal 指令:查看日历
35.sort指令:排序文本内容
36.uniq指令:对文件内容去重
37.find指令:查找某个文件的路径
~的意思是在家目录下查找,-name是通过文件名的方式后面跟上文件名。
38.alias指令:对指令重命名
如图所示我们用alias指令将ls重命名为myls。
39.grep指令:查找文件内容中含有关键字的内容
我们以f为关键字在newtest文件中查找。
grep -n :显示行号
40.>+某文件 :清空这个文件的内容
因为>为输入重定向
41. grep -v :不显示有关键字的内容
v的含义其实就是反转的意思。
grep -i :忽略大小写的显示文本内容
42.top指令: 相当于任务管理器
ctrl + c 退出
43.which指令:查看指令路径
44.whereis指令:搜索包含关键字的文档
45.zip 指令:打包一个文件夹
46.unzip指令:解压文件
可以看见刚刚删除的newtest文件又回来了
47.zip -r 指令:递归打包一个文件夹
递归的区别在于可以将文件夹内的子文件夹通通打包
48.tar指令:与zip一样都是打包一个文件夹
tar -c :压缩文件 tar -x:解压 tar -z :用gzip压缩 tar -v :压缩过程显示文件
tar -f :使用文档名 tar -t :查看文件 tar -C :默认解压到当前路径下,指明后可解压到其他路径
tar -czf的意思是使用文档名用gzip压缩文件
tar -xzf的意思是使用文档名用gzip解压文件,我们可以看到在我们将newtest文件删掉后对newtest.zip文件解压然后newtest文件又恢复了
49.uname指令:查看计算机的体系结构
uname -a 和 uname -r 可以查看到更详细的信息
50.cat /etc/redhat-release指令:查看系统内核版本的命令
51.热键ctrl + d 自动退出
52.上键和下键
数字键盘旁边的上键和下键有着翻阅以往用过的命令的功能
53.文件的权限
我们在用ll指令时可以看到各个文件的权限信息,那么这些权限信息该怎么理解呢?我们来看一张图:
文件名和文件创建的时间相信我们大家都并不陌生,主要陌生的地方在于文件拥有者和文件所属组是什么?文件拥有者就是谁创建的这个文件谁就是这个文件的拥有者,而文件所属组又是什么呢?我们都知道一个大型项目往往是由很多人一起完成的,如果一个文件只能由创建这个文件的人去打开使用那么其他人就没办法使用,所以有了所属组的概念,当你不是文件的拥有者但是你是文件的所属组的时候也可以使用此文件。而在文件属性中一共有十个字母,第一个字母是用来区分文件类型的,-:代表普通文件,文本,可执行,归档文件
d:目录 b:块设备 block磁盘 c:字符设备,键盘或者显示器 p:管道文件 s:网络socket文件
l: 链接文件 link
剩下的9个字母我们三个三个分为一组一共三组,第一组为拥有者权限,第二组为所属组权限,第三组为其他权限。拥有者权限就是文件拥有者所拥有的权限,所属组权限就是文件所属组的权限,而除了这两个以外的就是其他人,其他人也有权限。
接下来讲解如何给文件加权限或者减权限。
54.chmod指令:给文件添加或者删除权限
在添加或删除的过程中有三个字母需要认识,u代表拥有者,g代表所属组,o代表其他。a代表所有,所有就是拥有者,所属组和其他。
我们可以看到刚开始newtest文件的拥有者权限并没有可执行x权限,通过chmod命令后newtest文件的拥有者权限多出了x权限。
同时我们可以多个权限一起添加或删除如图所示。
进制法加权限
一共有三个组,每个组都由三个比特位构成rwx,当三个比特位为111说明这个组的权限是满的,而二进制的111换算为十进制是7,二进制为110说明只有rw权限没有x权限,二进制110换成十进制为6,所以我们想要给一个文件的权限修改为rwx rwx rwx 我们可以直接chmod 777 newtest
如图所示我们成功将权限修改为满权限。
55.chown指令:更改文件的拥有者
比如说我们要将文件的拥有者改为root,那么直接chown root newtest即可成功修改。
56.yum的使用(在root下或者sudo下)
比如我的系统中没有man手册,那么我们用yum install man就成功安装好了man手册。
yum list | grep ls:在yum列表中查找某软件
比如我要查的ls,查找后就将结果显示出来了
yum -y install XXX : 用yum安装名为XXX的软件
yum -y remove XXX :删除名为XXX的软件
57.更新yum源(注意你自己的yum源能正常使用的情况下不需要更新)
1.先进行备份老的yum源 Centos-Base.repo
2.wget 获取新的yum源配置文件 -- 可以通过网络搜索得到 -- centos 7 非常成熟的平台
3.mv 重命名成为Centos-Base.repo
4.yum clean all && yum makecache
57.粘滞位
为什么要有粘滞位这个概念呢?我们大家都知道linux是支持多个用户同时登陆并使用的,假如说有两个用户分别为A和B,B创建了一份文件只能B自己看,有一天A也想看这个文件但是发现自己没有权限打开这个文件而这个时候A心里不开心了既然我不能看那么你也别想看所以A把B创建的文件删掉了,这合理吗?当然不合理,所以就有了粘滞位的概念,粘滞位就是为了防止有人没有权限查看我的文件然后直接删除我的文件。
我们可以看到newtest文件的其他权限一开始为x,在我们chmod+t后变成了t,这个时候就说明我们为这个文件添加了粘滞位。
权限的总结:
总结
要简单的上手linux系统一些简单的指令是必须要掌握的,linux与windows不同,windows通过简单的图形化界面可以清楚的知道自己每一步都在干什么,而linux则需要时刻输入代码来确认自己在哪个步骤。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)