1.Linux和Windows对比
Window很明显的特征就是有C盘、D盘登各种磁盘
我们通过点击不同的盘符,点击里面存储的文件进行查阅的操作
而Linux则很简单,只有一个根目录,也可以说只有一个盘,整个系统所有的东西都是在根目录下的
我们可以发现根目录里面有很多文件
我们需要通过命令才能进到文件夹里面,下面是通过cd,进入home目录里面
下面的图就是对根目录进行介绍的
比如说/home是用户的家目录
在Linux系统中就是纯命令的操作,没有像Windows界面一样有软件图形的内容
这两个系统还有着用户管理的差别
Windows上用户概念很模糊,但是Linux上就会经常使用到
Linux通过用户权限来指定不同不的用户对文件的使用权限
而且这两个系统的应用方式是不一样的
Windows更多是代替纸质书写的办公,提升日常生活工作的交流效率
Linux一开始很大程度上就面对网络服务,所以Linux是可以随便换桌面的,Linux也有很多不同的桌面系统
Linux虚拟机的版本很多,红帽子、centos以及我用的ubuntu
2.基本常用命令
主要是下面的三个内容,剩下的内容都是分化出去的
who ---我是谁
询问当前登录的用户名是谁
pts/0指的是远程连接
tty表示用户直连主机
bd@clem:/home$ who
bd pts/0 2024-09-10 15:07 (10.0.2.2)
我们又启动一个乌班图,我们会发现我们这里会有两个连接的
pwd---我在哪里
bd@clem:/home$ pwd
/home
查看我们当前的位置,看我当前在那个文件夹的路径下,找到对应的路径
cd----我去哪里
bd@clem:~/environment$ cd /
bd@clem:/$ pwd
/
cd /跳转到根目录
pwd查询现在我在哪里
现在我们想去到home目录的bd文件夹里面
bd@clem:/$ cd /home/bd
bd@clem:~$ pwd
/home/bd
cd--直接回到家目录
除了上面的方法,我们还有一种更加快捷的方法
我们在根目录直接输入cd
然后回车pwd查看当前位置
就显示我们到了家目录
就是直接输入cd进行回车我们就到了家目录了
我们可以用pwd进行查看当前位置的,确实是到了家目录的
家目录就是用户登录的文件夹,我们现在登录的是bd用户,那么我们就来到了以bd进行命名的文件夹
我们在Linux系统中创建用户的时候,会在home文件夹中生成我们创建的用户文件夹
这个地址就是家目录
/home/bd
bd@clem:~$ cd /
bd@clem:/$ pwd
/
bd@clem:/$ cd
bd@clem:~$ pwd
/home/bd
bd@clem:~$
我们是可以发现家目录和根目录的符号是不一样的
家目录的符号是~
根目录的符号是/
家目录下的environment
而且我们的cd和后面的/需要一个空格,不然这个命令是无效的
cd - 返回到上步操作的位置
bd@clem:~$ cd environment/
bd@clem:~/environment$ cd /
bd@clem:/$ cd -
/home/bd/environment
bd@clem:~/environment$ pwd
/home/bd/environment
bd@clem:~/environment$
我们先在根目录的,然后cd 回到家目录
然后使用cd -又回到了根目录
bd@clem:/$ cd /
bd@clem:/$ pwd
/
bd@clem:/$ cd
bd@clem:~$ pwd
/home/bd
bd@clem:~$ cd -
/
bd@clem:/$
cd -就是回到我们上一步所操作的位置
cd ..就是回到上级目录
我们先输入cd回到家目录,然后进入到家目录里面的文件夹的环境目录
此时我们用pwd查询当前位置,然后直接cd ..
再次查询我们就发现我们回到了上一级目录--家目录里面
bd@clem:/$ cd
bd@clem:~$ cd environment/
bd@clem:~/environment$ pwd
/home/bd/environment
bd@clem:~/environment$ cd ..
bd@clem:~$ pwd
/home/bd
bd@clem:~$
cd+路径---去到指定的路径
bd@clem:/$ cd
bd@clem:~$ cd environment/
bd@clem:~/environment$ pwd
/home/bd/environment
ls
ls -a 查看所有隐藏的文件
进行隐藏文件的查看,只要文件名字前面带上了. 那么这个文件就是隐藏文件了
白色的就是文件,紫色的就是文件夹
我们在一开始进行文件夹的创建
mkdir t 创建了一个叫t的文件夹
bd@clem:~/py_case$ mkdir t
bd@clem:~/py_case$ ls -a
. .. t t1.py test.py
我们在下面对文件进行cd命令的时候,我们对文件夹是可以的,但是对文件就是会报错的
而且文件一般是带有后缀名的,比如说这里的.py
bd@clem:~$ cd py_case
bd@clem:~/py_case$ cd t
bd@clem:~/py_case/t$ cd t1.py
-bash: cd: t1.py: No such file or directory
bd@clem:~/py_case/t$
ls -l 查看所有文件,列表展示,ls -al查看文件夹内的详细信息
查看文件的详细信息,包括文件类型大小权限等等的信息
drwxrwxr-x 这个是文件的一些权限(可读、可写或者是能去执行)
d开头的是文件夹
r:表示可读取此文件中的实际内容,例如,可以对文件执行 cat、more、less、head、tail 等文件查看命令
w:表示可以编辑、新增或者修改文件中的内容,例如,可以对文件执行 vim、echo 等修改文件数据的命令。
x:表示该文件具有被系统执行的权限,比如常用脚本文件 start.sh,想要运行就需要有执行权限。
在这个drwxrwxr-x 的后面的数字是文件的大小
我们cd到t里面只有两个文件夹,所以下面显示的数字是2(在下面的第三个代码处)
后面的两个py文件是文件那么大小就是1
如果文件名字前面有.的话就是隐藏文件的
后面的两个bd是创建这个文件或者文件夹的用户是谁
再后面的数字就是文件的大小,字节为单位,后面就是年月日了,后面的时间就是最后修改文件的时间,最后就是文件名字了
bd@clem:~$ cd py_case
bd@clem:~/py_case$ cd t
bd@clem:~/py_case/t$ ls -a
. ..
bd@clem:~/py_case/t$
bd@clem:~$ ls -l
total 8
drwxrwxr-x 3 bd bd 4096 Sep 9 22:47 environment
drwxrwxr-x 2 bd bd 4096 Sep 10 10:05 py_case
bd@clem:~/py_case/t$ cd -
/home/bd/py_case
bd@clem:~/py_case$ ls -al
total 16
drwxrwxr-x 3 bd bd 4096 Sep 10 19:59 .
drwxr-xr-x 11 bd bd 4096 Sep 10 15:39 ..
drwxrwxr-x 2 bd bd 4096 Sep 10 19:59 t
-rw-rw-r-- 1 bd bd 33 Sep 10 10:05 t1.py
-rw-rw-r-- 1 bd bd 0 Sep 10 10:05 test.py
bd@clem:~/py_case$
d开头的是文件夹
-开头的是文件
l开头的就是链接文件
bd@clem:~/py_case$ cd
bd@clem:~$ cd py_case
bd@clem:~/py_case$ ls -al
total 12
drwxrwxr-x 2 bd bd 4096 Sep 10 10:05 .
drwxr-xr-x 11 bd bd 4096 Sep 10 15:39 ..
-rw-rw-r-- 1 bd bd 33 Sep 10 10:05 t1.py
-rw-rw-r-- 1 bd bd 0 Sep 10 10:05 test.py
bd@clem:~/py_case$
3.基本文件操作
创建文件、复制文件、删除文件、查看文件以及移动文件
创建文件夹
创文件夹
mkdir---创建目录文件夹
先在家目录里面进行文件夹的创建
bd@clem:/$ cd
bd@clem:~$ cd py_case
bd@clem:~/py_case$ cd
bd@clem:~$ ls
environment py_case
bd@clem:~$ mkdir 68
bd@clem:~$ ls
68 environment py_case
touch---文件的创建
使用touch在家目录进行文件的创建,我们通过ls能发现家目录里面有3个文件夹和一个文件
bd@clem:~$ ls
68 environment py_case
bd@clem:~$ touch kaizi
bd@clem:~$ ls
68 environment kaizi py_case
bd@clem:~$
我们又在68这个文件里面创建了一个文件,通过ls我们能发现此时的68这个文件夹里面有个kaizi 的文件
bd@clem:~$ cd 68
bd@clem:~/68$ touch kaizi
bd@clem:~/68$ ls
kaizi
bd@clem:~/68$
我们在这个68的文件夹里面又创建了一个文件夹,通过这个68我们能看到这个68这个文件夹的构造
bd@clem:~/68$ mkdir l
bd@clem:~/68$ ls
kaizi l
文件和文件夹的颜色是完全不一样的,肉眼可见
echo 在创建文件夹的时候同时进行数据的撰写
echo '文本'>创建的新文件名
我们会创建这个文件并且将前面的文本进行写入的操作
bd@clem:~$ cd 68
bd@clem:~/68$ ls
kaizi l
bd@clem:~/68$ echo 'hipython'>test.txt
bd@clem:~/68$ ls
kaizi l test.txt
bd@clem:~/68$ cat test.txt
hipython
bd@clem:~/68$
我们在68这个文件夹中不仅创建了一个叫test.txt的文件,而且在里面进行了文本的输入
我们然后通过cat进行文件内容的查询
就能看到我们刚刚写入的内容了
我们对kaizi这个文件进行查询里面的数据,返回的是个空的,因为我们当初创建的是个空的文件夹
bd@clem:~/68$ cat kaizi
bd@clem:~/68$
cat---文件的内容查看(包括文件夹中的文件)
bd@clem:~/py_case$ ls
t t1.py test.py
bd@clem:~/py_case$ cat t1.py
print(123)
print(56)
print(567)bd@clem:~/py_case$ cd ..
bd@clem:~$ cd 68
bd@clem:~/68$ ls
kaizi l
bd@clem:~/68$ echo 'hipython'>test.txt
bd@clem:~/68$ ls
kaizi l test.txt
bd@clem:~/68$ cat test.txt
hipython
bd@clem:~/68$ ^C
bd@clem:~/68$ cat kaizi
bd@clem:~/68$ ^C
bd@clem:~/68$
进行文件内的文本进行查看,进行文件夹内的文件进行查看都是可以的
通过cat实现查看功能
cp---文件的复制操作
cp 要复制的文件 复制到哪里
bd@clem:~/68$ ls
kaizi l test.txt
bd@clem:~/68$ cp test.txt l
bd@clem:~/68$ cd l
bd@clem:~/68/l$ ls
test.txt
bd@clem:~/68/l$ cat test.txt
hipython
bd@clem:~/68/l$
我们的68这个文件夹里面有两个文件和一个文件夹
我们现在将test.txt这个文件复制到l这个文件夹里面
cp test.txt l直接回车
我们cd l进入到l里面
ls发现test.txt文件成功进行了复制操作
然后cat test.txt对这个文件内的文本数据进行查看,发现是我们之前进行输入的文本
cp -i 对用户进行一个提示,文件夹内已经存在该文件,是否继续进行复制的操作
bd@clem:~/68$ ls
kaizi l test.txt
bd@clem:~/68$ cp -i test.txt l
cp: overwrite 'l/test.txt'? n
bd@clem:~/68$
如果我们想在复制的时候出现提示的话,我们就在cp后面加上 -i
cp -i test.txt l 回车 系统就会提示你,已经存在了这个文件,你是否要继续进行复制
回答可以选择yes或者no
直接写简写就行了y和n
mv---文件的移动操作以及文件的重命名操作
现在我们想把kaizi这个文件移动到l里面去
bd@clem:~/68$ ls
kaizi l test.txt
bd@clem:~/68$ mv kaizi l
bd@clem:~/68$ ls
l test.txt
bd@clem:~/68$ cd l
bd@clem:~/68/l$ ls
kaizi test.txt
bd@clem:~/68/l$
一开始我们的68里面存在2个文件和一个文件夹(kaizi l test.txt)
然后我们利用mv将kaizi移动到l这个文件夹里面
移动之后我们cd到l这个文件夹内
ls看看里数据
可以看见我们的kaizi这个文件已经被移动到了l这个文件夹里面了
除了移动的操作,我们还能进行文件的重命名操作,也是使用mv
mv 旧文件名 新文件名
bd@clem:~/68/l$ ls
kaizi test.txt
bd@clem:~/68/l$ ^C
bd@clem:~/68/l$ mv kaizi 凯子
bd@clem:~/68/l$ ls
test.txt 凯子
bd@clem:~/68/l$
一开始的ls存在两个文件 kaizi test.txt
然后我们利用mv将kaizi这个文件的名字进行修改的操作,改为凯子
改完之后我们利用ls进行文件的查看
发现名字已经被修改好了
mv后面如果是文件的话就是重命名操作
如果是文件夹的话就会进行移动,因为文件是不能移动到文件里面去的,文件只能移动到文件夹
文件夹也是可以进行修改的,但是在下面我们是不能对文件夹进行重命名的,因为我们的权限是不够的
bd@clem:~/68$ ls
l test.txt
bd@clem:~/68$ pwd
/home/bd/68
bd@clem:~/68$ mv 68 69
mv: cannot stat '68': No such file or directory
bd@clem:~/68$
rm文件的删除
bd@clem:~/68/l$ pwd
/home/bd/68/l
bd@clem:~/68/l$ ls
test.txt 凯子
bd@clem:~/68/l$ rm 凯子
bd@clem:~/68/l$ ls
test.txt
bd@clem:~/68/l$
我们的l这个文件夹里面本来有两个文件的 test.txt和凯子
然后我们将凯子这个文件进行删除操作
rm 凯子 直接回车,
然后我们ls进行文件的查看,发现l里面确实已经将凯子这个文件进行了删除操作了
bd@clem:~$ cd 68
bd@clem:~/68$ ls
l test.txt
bd@clem:~/68$ cd l
bd@clem:~/68/l$ ls
test.txt
bd@clem:~/68/l$ cd -
/home/bd/68
bd@clem:~/68$ ls -l
total 8
drwxrwxr-x 2 bd bd 4096 Sep 11 13:04 l
-rw-rw-r-- 1 bd bd 9 Sep 10 20:58 test.txt
bd@clem:~/68$ rm l
rm: cannot remove 'l': Is a directory
bd@clem:~/68$
我们这里的ls之前往里面放了一个复制的test.txt文件
现在我们执行删除l的操作,发现是无法进行删除的
是因为文件夹里面存在东西,那么就不能进行删除
rmdir---删除空文件夹
我们还能使用下面的操作进行删除操作,使用rmdir
但是这个文件夹里面存在文件,所以也是删除失败的
bd@clem:~/68$ rmdir l
rmdir: failed to remove 'l': Directory not empty
bd@clem:~/68$
rm -rf 文件夹名 -- 删除非空文件夹
如果我们真的想将这个文件夹进行删除的操作的话,我们可以使用rm -rf l将l这个文件夹删掉,然后使用ls查看68这个文件夹的内容,我们发现l已经被删除了
bd@clem:~/68$ pwd
/home/bd/68
bd@clem:~/68$ rm -rf l
bd@clem:~/68$ ls
test.txt
bd@clem:~/68$
这种就是删除顽固的文件夹的删除命令
这里面的-rf ,f是强制删除,加上-r就是他会将我们这个文件夹内的东西进行一个一个的删除操作的
使用这个命令的话需要确保这个文件真的不需要用了
4.用户介绍
在Linux系统中,我们分为两种用户---超级管理员和普通用户
root 是Linux管理员,也称为超级用户
bd 是Linux普通用户,在Ubuntu中,root用户被锁定,当需要是使用的时候可以使用sudo来提权
这里的Clem是主机名,相当于Windows上的计算机名。
~ 是当前用户的家目录,家目录就相当于我们window系统盘中的用户目录
是超级用户的提示符,$是普通用户的提示符。
如果我们一直使用管理员系统的话,我们有时候就可能会错误操作,将重要数据删除了
这个就是弊端
因为管理员的权限太高了,所以我们加上了一个普通用户的身份
我们创建的普通用户权限很低,需要root用户进行权限的分配
root用户少用
su切换超级管理用户
我们通过su进行root用户的切换,但是这里为什么会报错呢?
因为我们这是第一次切换root用户进行登录,我们并没有对root用户进行密码的设置
我们需要给root用户设置密码才可以用
root用户密码的设置(passwd root)
我们使用passwd root进行root用户密码的修改操作,但是似乎这个提示信息好像说我们还是不能进行用户密码的修改操作
bd@clem:~/68$ passwd root
passwd: You may not view or modify password information for root.
bd@clem:~/68$
我们当前使用的是bd用户,所以说我们现在还是没有权限进行root用户密码的修改的
bd@clem:~/68$ who
bd pts/0 2024-09-11 12:19 (10.0.2.2)
bd@clem:~/68$
sudo---临时提高bd用户的权利(当前命令生效)
我们使用sudo临时提高我们现在的权利,但不过只是当前命令生效
bd@clem:~/68$ sudo paddwd root
[sudo] password for bd:
sudo: paddwd: command not found
bd@clem:~/68$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
bd@clem:~/68$
我这里的代码是输入错误了,所以按照图片为例
我们先利用sudo进行提权,然后使用passwd root进行root用户密码的修改
然后系统会确认是不是bd用户本人,你输入你的密码
然后就能修改这个root用户的密码了
Retype new password:这个是让你再次输入密码,这里输入密码我们是看不到的
输完密码下面就提醒我们修改成功了
那我们再使用su root进行root用户的切换,看看是否能成功切换
bd@clem:~/68$ su root
Password:
root@clem:/home/bd/68#
这个时候前面的bd就变成了root,那么就说明我们的root用户切换成功了
通过对比,我们能看的出两个用户的区别,root用户的后面是#
bd用户后面是$
root用户切换到普通用户是不需要密码的
root用户只能有1个
普通用户有多个,,普通用户的权限(可以看可以改)
root用户的权限是由root进行分配
普通用户只能做root给的权限内的事情
如果权限不够
方法一:sudo 进行的命令 进行临时提权
方法二:su root登录root用户进行操作
5.硬件管理
输入对应的命令即可进行对应的操作
bd@clem:~/68$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 941M 0 941M 0% /dev
tmpfs 198M 1.1M 197M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 48G 7.0G 39G 16% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
/dev/sda2 2.0G 211M 1.6G 12% /boot
/dev/loop0 64M 64M 0 100% /snap/core20/2318
/dev/loop3 92M 92M 0 100% /snap/lxd/29619
/dev/loop1 92M 92M 0 100% /snap/lxd/24061
/dev/loop2 39M 39M 0 100% /snap/snapd/21759
/dev/loop5 64M 64M 0 100% /snap/core20/1738
/dev/loop4 50M 50M 0 100% /snap/snapd/17883
tmpfs 198M 0 198M 0% /run/user/1000
bd@clem:~/68$
这里了解下就好了
清空的话我们通过du进行清空操作