Linux基本命令

Linux是一个免费的面向开发人员的操作系统,且自由开源
那么在这里。自由这个字眼我们可以来细说一下

自由(Free):
打个比方,你拥有自由发表言论的权利,自由呼吸空气的权利,但是并不代表你可以到处去蹭去白嫖“免费的啤酒”,这里也就是说自由软件的重点不是免费,而是指自由度,也就是这个自由并不是完完全全的自由,他是有一些限制的,那么到底是什么样的限制呢,我们接着往下看
用户可以自由的执行,复制,发行,学习。修改更新自由软件等等


自由软件的特点

1.取得软件与源代码:你可以根据自己的需求来使用这个软件
2.复制:你可以自由的复制该软件
3.修改:你可以将开源的源代码进行程序修改工作
4.发行:你可以将你修改过的程序再度自由发行,并且不会与原先的编写者冲突
下面这两项注意
5.修改授权:你不能将一个授权的自由软件,在你修改后又将它取消GPL授权

GPL:版权授权声明

6.单纯销售:不可以单纯销售自由软件

  • 下面这两个的意思是,既然GPL是在互助互利的角度上去开发的,那么你自然不能将我们所有人的成果占为己有,所以在这里不可以将一个GPL软件的授权取消。
  • 但在这里如果你对该软件程序进行了大幅度修改,那么自由软件难道不能销售么?当然不是,自由软件是可以销售的,不过不可以仅仅的销售自由软件,应同时搭配售后服务还有相关手册等等,这也就是第6条所说的,不可以单纯销售自由软件程序,其实这里我们也可以理解为,你卖的不单单是产品更多的是服务,这么说也许大家更容易理解一点。
  • 目前自由软件工作者。他们所赖以维生的,几乎都是在“服务这一块上”,自由软件还是具有商业空间的

Linux的发行版

既然讲到了销售自由软件,那么这里就再来说说Linux的发行版,发行版也算是自由软件商业化的一个体现,但也有其他发行版是免费的
在这里插入图片描述如上图所看到的,Linux的发行版有很多
这里就给大家简单介绍几个,如果感兴趣的话可以看看度娘

1.centos

在这里插入图片描述

CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统。
CentOS Linux发行版是一个稳定的,可预测的,可管理的和可复现的平台,源于Red Hat Enterprise Linux(RHEL)依照开放源代码(大部分是GPL开源协议 )规定释出的源码所编译而成。
centos也是在企业中比较常见的Linux系统,比较普遍

2.Ubuntu

在这里插入图片描述

Ubuntu是一个以桌面应用为主的Linux发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了GNOME桌面环境,改为Unity。此前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。

3.红帽(RedHat)

在这里插入图片描述rhel全称“RedHat Enterprise Linux”,中文意思为“红帽企业 Linux”,是Red Hat专为企业设计的基于Linux的操作系统。RHEL 可以在桌面,服务器,虚拟机管理程序或云中运行。基于红帽企业Linux操作系统,企业可整合裸机服务器、 虚拟机、基础设施即服务(IaaS)和平台即服务(PaaS),以构建一个强大稳健的数据中心环境,满足不断变化的业务需求。
红帽的商业还挺不错的,是专门为企业所服务的

这里就给大家介绍几个比较常见知名度较高的,接下来我们就开始上正菜了


Linux文件,目录管理

前言:普通用户与ROOT

shell:翻译官
翻译人类输入的代码 ,将代码翻译成二进制给计算机内核进行识别,然后计算机的内核分配相应的资源来执行你发出的指令
计算机内核反馈的信息同样是二进制。将计算机语言再翻译成人类能够识别的语言
默认shell:都叫做bash,类似于编译器 。

在正式开始前,我们先了解一下Linux里面的文件权限的一个概念
在Linux系统中,默认的情况下,所有的系统上的账号与一般身份用户,还有root的相关信息,都记录在/etc/passwd 这个文件中,而个人的密码是记录在 /etc/shadow文件内。还有一个组名,也就是用户组是记录在/etc/group中。
这三个文件都很重要,不要随便删除这里面的文件,这里要注意一下
Linux与我们所熟知的windos系统有很大的差别
这个里面的操作,都是用命令敲出来的。Linux里面所有的一切,不管是命令还是程序都是文件,可以这么说,Linux一切皆文件
下面我先演示一下账号的登录以及显示的信息是什么意思,供大家能更快的上手

[czy@localhost ~]$ su - root
密码:
上一次登录:六 8月 26 01:11:23 CST 2023从 192.168.233.1pts/4 上
[root@localhost ~]# 

那么在这里,我们可以看到,我本来登录的是普通用户的账号
在输入 su - root 这个命令后系统提示我输入密码
在这里输入密码是不会显示出来数字的,所以有些刚接触Linux的朋友遇到这种情况不用慌,不是系统问题,而是它就是这样设置的,输入密码的时候不会显示出具体的信息。所以这个也可以侧面的看出来Linux对系统的安全性是比较看重的
su - root 这个命令的意思就是我要切换到root账户也就是管理员,因为有很多的命令都是需要管理员权限才能操作的,所以后面的系统命令讲解我都是会以root权限开始

[root@localhost ~]# su - czy
Last login: Sat Aug 26 08:00:49 CST 2023 from 192.168.233.1 on pts/1
[czy@localhost ~]$ 

如果我们要切换回普通账户的话就再次输入这个命令
要记住的是su - (这里输入的就是你所要切换的账号的名称)

[root@localhost ~]# 
[czy@localhost ~]$ 

在上图中我们可以看到两个账号显示出来的信息是不同的

[czy@localhost ~]$  
 这里的czy 就是我当前的登录用户 这里的@没有什么实际意义  
 localhost 就是你的主机名,这个应该不难理解,就跟windows的计算机名称一样的道理
 ~ : 这个符号的意思就是在当前用户的家目录里面
     我自己个人的理解就是在当前登录用户的家里面
     每个用户的家目录里面文件内容都是不一样的,后面我会给大家演示看一下便于理解
 $:这个符号的意思就是代表普通用户
    通过上图我们可以看到
    # 是root账户,也就是管理员 我们也可以通过这个符号来看登录的是不是管理员权限   

那么既然讲到普通用户跟root 这里我演示一下如何查看有多少用户

[czy@localhost ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
czy:x:1000:1000:czy:/home/czy:/bin/bash

这里所出现的cat就是我后面会讲到的一个查看命令
查看文件命令,可以查看文件内的内容
这里我是单独把我创建的用户给拎出来了,其实通过cat进入到这个文件查看,里面的信息是很多的,那么我们如何分辨哪些是用户呢,看他们后面的路径 ,上图中的两个用户信息都有/bin/bash 就靠这个来看

命令执行的方式:

[root@localhost ~]# command    [-options] parameterl parameter2 ...
               命令(可执行文件)     选项        参数       参数2

下面我们先来讲第一个命令

1.ls(列出目录的内容)

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  
这里我们要注意英文大小写字母是不一样的,一定要严格区分 
如果我们将这里的ls打成LS的话,那么系统会报错,因为没有大写的LS命令
在命令输入完成后 按下回车就会开始执行命令 
所有的命令都是文件 

ls这个命令的功能是列出目录的内容就如上图所示,前面括号内的/就是我当前所在的目录,我是在这个/目录里面打的ls命令,所以这里显示的是/目录下的目录
这里跟大家讲解一下,/这个目录是根目录,你可以理解为这是最初始的地方,所有的文件都是在/目录下

ls命令参数是指在使用ls命令时可以加上的一些选项或参数,用于修改ls命令的输出结果。
这里的ls可以增加其他的参数来执行,给大家演示一下
常用的ls命令参数包括:

ls -l :以长格式输出文件或目录的详细信息,包括文件权限、所有者、文件大小、修改时间等。

[root@localhost /]# ls -l
total 36
lrwxrwxrwx.   1 root root    7 Aug 24 19:24 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Aug 24 19:40 boot
drwxr-xr-x.  20 root root 3320 Aug 26 06:05 dev
drwxr-xr-x. 138 root root 8192 Aug 26 06:05 etc
drwxr-xr-x.   3 root root   17 Aug 24 19:30 home
lrwxrwxrwx.   1 root root    7 Aug 24 19:24 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Aug 24 19:24 lib64 -> usr/lib64

ls -a:显示所有文件和目录,包括隐藏文件和目录。

[root@localhost /]# ls -a
.  ..  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  
通过ls -a可以看到隐藏文件,所有的隐藏文件都有一个特点,那就是在文件前会有一个小点
例如这样的 .czy.txt  像这种的都是隐藏文件 

ls -h: 以人性化的方式显示文件和目录的大小,以K、M、G等单位表示。

[root@localhost /]# ls -lh
total 36K
lrwxrwxrwx.   1 root root    7 Aug 24 19:24 bin -> usr/bin
dr-xr-xr-x.   5 root root 4.0K Aug 24 19:40 boot
drwxr-xr-x.  20 root root 3.3K Aug 26 06:05 dev
drwxr-xr-x. 138 root root 8.0K Aug 26 06:05 etc
drwxr-xr-x.   3 root root   17 Aug 24 19:30 home
lrwxrwxrwx.   1 root root    7 Aug 24 19:24 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Aug 24 19:24 lib64 -> usr/lib64
这个命令参数我们要注意一个问题,那就是单独的一个h是不起作用的,要与其他参数配合使用
可以通过这个代码对比下-l的信息,我们可以看出来,这些文件的大小是不是显示出了大小单位
这里我们以boot目录为例
-l:dr-xr-xr-x.   5 root root 4096 Aug 24 19:40 boot
-lh:dr-xr-xr-x.   5 root root 4.0K Aug 24 19:40 boot
看出来区别了么,文件的大小给出了单位,原来的4096现在是显示为4.0k

所以通过上面的 ls -lh 命令可以看出来命令参数可以加在一起使用

除了上述常用的ls命令参数外,还有一些其他的参数可以根据具体需求使用,可以通过man ls命令查看完整的ls命令参数列表。

[root@localhost /]# man ls

在这里插入图片描述在键入man命令后系统会列出可用的命令参数(linux里面基本都是英文,还是比较不方便的,可以借助翻译工具来进行查看)

接下来就是第2个命令了


2.cd (确定要进入的目录)

[root@localhost /]# ls 
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  
[root@localhost /]# cd /bin
[root@localhost bin]# 
在这里我们可以看到,括号内的所在目录是不是已经去到了bin
在这里我们要注意一个事情,那就是cd 后面第一个永远是/因为/是根目录
我在前文也提过了,/就是根目录,开始的地方
如果这里我们要去etc目录的话 那就是 cd /etc 回车
这里cd去到要进入的目录是需要将完整路径打出来的,而且你所要去的目录一定要存在
如果目录不存在的话 系统报错 就像下面这样
[root@localhost /]# cd /bin1
-bash: cd: /bin1: No such file or directory

那么我们是一定要将完整的路径打出来才能去到要去的目录么
当然不是 接下来教大家另一种办法 --相对路径

[root@localhost /]# cd bin
[root@localhost bin]#
在这里我们可以看到 即使没有打/是不是也还是照样进入了目标目录
cd bin 没有加/的这种  其实有一个缺点,那就是只能进入到当前目录里面的子目录
如果你要去的目录是其他目录下的话,那这个命令是无效的,要去其他的目录就只能用第一种
第一种cd的路径也称为绝对路径,要完整的打出所有路径

还有几个cd 的操作命令

[root@localhost bin]# cd ..
[root@localhost /]# 
这里我们输入的是cd .. 这个命令的意思就是返回上级目录 
---------------------------------------------
[root@localhost /]# cd .
[root@localhost /]# 
而这个命令 cd . 就是留在当前目录(听上去好像有点鸡肋对吧,但存在即合理)
---------------------------------------------
[root@localhost bin]# cd /etc
[root@localhost etc]# cd -
/bin
[root@localhost bin]# 
最后一个就是cd - 的命令 
这个命令是什么意思呢,就跟这上面显示的一样
返回上一个执行的目录
也就是你在etc目录之前在哪个目录里面 cd - 就可以帮助你快速回到之前的目录,就如图上
的bin 
附加:pwd命令
[root@localhost rh]# pwd
/opt/rh
[root@localhost rh]# 
这个命令的作用就是查看自己当前所在的位置
可以看到 /opt/rh 这里就写明了你当前所处的位置路径是在哪里,也是一个基础常用命令

下面是第3个命令来了


3.cat(文本输出命令)

cat命令也是我们很常用的,查看文本或者查看配置文件等等,这个命令的作用就是查看文件内容 ,下面我来做个例子

[root@localhost ~]# cd /opt
[root@localhost opt]# ls 
czy.txt  rh 
现在我们进入的是opt这个目录
通过ls命令我们可以看到在该目录下有一个文本文件 czy.txt
现在我们来使用cat命令来查看该文件中的内容是什么 

[root@localhost opt]# cat czy.txt
12345
那么现在可以看到,通过cat这个命令是不是可以将文件内的内容显示出来
这就是cat的作用 

通过上面的实验例子可以看到里面的czy.txt是一个文件,通过cat可以将文件里的内容显示出来
现在来看看下面的命令 创建文件与目录


4.创建文件与创建目录

4-1.touch(创建文件 )

创建空文件:如果文件不存在,touch命令可以创建一个空文件,例如touch test.txt。
实验例子:

[root@localhost opt]# touch test1.txt
[root@localhost opt]# ls 
czy.txt  rh  test1.txt  
[root@localhost opt]# 
可以看到通过上面的实验,在opt本身的目录下是没有test1.txt文件的
我们可以通过touch命令来创建文件
格式为 touch 文件名称 
我们现在就可以通过上面的实验命令cat来查看现在所创的文件内容
[root@localhost opt]# cat test1.txt
[root@localhost opt]# 
在这里可以看到输入cat命令之后并没有内容显示出来,因为这个文件目前只是个空文件
后面会介绍输入命令

除了上面的实验例子,我们也可以通过touch命令后面加上绝对路径来创建一个指定目录下的文件

[root@localhost opt]# touch /opt/rh/  czy2.txt
[root@localhost rh]# ls
czy2.txt

除了创建文件的命令还有创建目录的命令
我们接着往下看


4-2.mkdir(创建目录)

mkdir命令的主要功能为创建一个或多个空目录,其几种使用方法为: ① mkdir 目录名 作用:创建一个空目录文件 如:mkdir test 创建一个目录名为test的空目录文件

[root@localhost opt]# mkdir czy123
[root@localhost opt]# ls
czy123  czy2.txt  czy.txt  rh  test1.txt  
[root@localhost opt]# ls -l
total 12
drwxr-xr-x. 2 root root    6 Aug 27 05:59 czy123
-rw-r--r--. 1 root root    0 Aug 27 05:26 czy2.txt
-rw-r--r--. 1 root root    6 Aug 27 05:08 czy.txt
drwxr-xr-x. 2 root root   22 Aug 27 05:27 rh
-rw-r--r--. 1 root root    0 Aug 27 05:14 test1.txt
在上面的实验里我们可以看到已经在当前目录下创建了czy123目录
在ls -l 命令下
drwxr-xr-x. 2 root root    6 Aug 27 05:59 czy123
d开头的都是文件夹 

通过mkdir命令我们也可以一次性创建多个目录就像下面这样

[root@localhost opt]# mkdir 1 2 3 4 5 
[root@localhost opt]# ls -l
total 12
drwxr-xr-x. 2 root root    6 Aug 27 06:01 1
drwxr-xr-x. 2 root root    6 Aug 27 06:01 2
drwxr-xr-x. 2 root root    6 Aug 27 06:01 3
drwxr-xr-x. 2 root root    6 Aug 27 06:01 4
drwxr-xr-x. 2 root root    6 Aug 27 06:01 5
创建文件的时候也可以这样操作,同理

在这里再教大家一个命令参数
mkdir -p 创建嵌套文件夹

[root@localhost opt]# mkdir -p a/b/c
[root@localhost opt]# ls
1  2  3  4  5  a  czy123  czy2.txt  czy.txt  rh 
[root@localhost opt]# cd a
[root@localhost a]# ls
b
[root@localhost a]# cd b
[root@localhost b]# ls
c
这个命令参数的主要作用就是创建a目录并且在a目录中再创一个b目录依次往下递

除了上面讲的 -p 还有很多的命令参数可以使用 可以通过man来查看了解


5.find(强大的查找命令)

为什么这里要加上强大两个字
没有为什么,因为真的很强
下面我们来详细了解下

[root@localhost ~]# find /opt  -mtime -10  
/opt
/opt/rh
/opt/rh/czy2.txt
/opt/czy.txt
/opt/test1.txt
/opt/czy2.txt
在这里我们要提到一个东西
那就是时间参数,也就是实验中的 -mtime -10 
那么这个 -mtinme -10的意思是什么呢 
-10 代表的是小于等于10天内的文件
如果我们这里输入+10的话会是什么样的呢 
我们接着来往下看
[root@localhost ~]# find   /opt -mtime +10 
[root@localhost ~]# 
看到区别了么,这里再输入这行命令后系统并未给予反馈
这是因为在 /opt 里面并没有大于等于10天前的文件 这个系统我也才装没多久
现在我们再来改一下看看 
----------------------------------
[root@localhost ~]# find   /opt -mtime 0
/opt
/opt/rh
/opt/rh/czy2.txt
/opt/czy.txt
/opt/test1.txt
/opt/czy2.txt
/opt/czy123
/opt/1
/opt/2
/opt/3
/opt/4
/opt/5
/opt/a
/opt/a/b
/opt/a/b/c
在这里我们可以看到我输入的是0 0代表的意思就是24小时内有修改过的文件
系统给我的反馈就是24小时内修改过的文件列表
下面再来演示一个例子
根据用户来搜索文件
[root@localhost opt]# find -user czy
./rh
[root@localhost opt]# 
在这里我们命令选项可以改为根据用户名来查找 
这里可以看到系统是不是已经将czy用户的所属文件显示出来了 

处了上述的几个命令 find的操作还有很多 这里所描述的也才冰山一角
可以通过man 查询详细说明
他甚至还可以在查找时执行其他处理,像这样

[root@localhost opt]# find   -user czy  -ls 
68863147    0 drwxr-xr-x   2 czy      czy            22 Aug 27 05:27 ./rh

find命令强不强? 很强!
我们再来一个

[root@localhost opt]# find /opt -mtime 0 -exec rm -r *  { } \;
rm: cannot remove ‘{’: No such file or directory
rm: cannot remove ‘}’: No such file or directory
这个命令代表的是什么意思呢  
-exec {} \;  --这个命令我们可以理解为额外的操作,这里我添加的是删除操作
可以看到系统的提示消息,显示是没有找到这样的目录,但其实已经删除掉了
我们用ls命令来看下
[root@localhost opt]# ls -la
total 0
drwxr-xr-x.  2 root root   6 Aug 27 09:01 .
dr-xr-xr-x. 18 root root 236 Aug 27 08:55 ..
已经删除掉了 都没了
rm:删除命令 

6.rm命令(删除)

这里用到的rm命令要注意一下
rm -rf * 删除当前目录下的所有文件,这个命令其实危险系数非常大的
因为这个命令打出来是直接清楚不会询问你是还是否的
并且你在登录管理员账户的时候
rm -fr * / 它甚至可以删除掉根目录 系统直接就GG
在这里插入图片描述
这里给大家做个例子看一下

[root@localhost opt]# touch 123.txt
我们再这里先给这个目录创一个文件然后我们再来删除(因为前面find实验的时候全删掉了)
[root@localhost opt]# ls
123.txt
好的到了这里可以看到文件已经创造好了
[root@localhost opt]# rm 123.txt
开始删除
rm: remove regular empty file ‘123.txt’? y
在你删除的时候系统会提示你是否确认 这里按y即可也就是yes的意思
[root@localhost opt]# ls -a
.  ..
到了这一步就可以看到已经删除完毕了

rm这个命令也有很多的参数可以用
感兴趣的话可以man去查看一下自己敲一敲看看

要慎用删除命令哦
慎用rm -rf * !

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早上的星星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值