一. 认识Linux
1. 什么是操作系统(OS)
- 向下能够直接控制硬件,向上能够支持软件的运行
- 操作系统是一套软件代码,这套代码比较特殊可以直接控制硬件
- Linux内核是用C语言写的
如果想要研究Linux内核的话,去研究最早的版本。所有的发行版本都是基于Linux的内核基础上添加外包装就成为了一个新的操作系统,所以最核心的还是Linux内核。此处链接到内核源码网址
二. 目录结构
1. Windows平台

2. 类Unix系统目录结构

三. Linux 命令
3.1 Linux命令的基本格式

关于参数:
- 如
ls /,表示显示根目录下的文件夹,ls /etc,表示显示根目录下etc文件夹里的内容,这里ls后面接的叫参数
关于选项:
ls -lah,ls -a,这里ls -选项,命令后面带’–'的叫做选项
3.2 ls 命令
ls -l:表示以列表的形式显示文件,不显示单位

ls -l -h:表示显示文件大小的单位

ls -a:表示显示当前目录下的所有文件,包含隐藏文件
3.3 查看帮助文档
< 1 > --help

< 2 > man 命令

3.4 history 命令
- 查看历史打印过的命令,前面的数字表示使用过命令的数量编号

- 此处使用
! 2074,表示字节执行以前执行过的那条命令
3.5 通配符命令
< 1 > 只显示以2开头的文件

< 2 > 显示以1开头,3结尾,中间是任何数或字符的文件

< 3 > 显示以1开头,3结尾,中间是数字1-5之间的文件

3.6 重定向命令
< 1 > 重定向符号 ’ > ’
- 把原来显示在终端的内容重定向到文件里

< 2 > 重定向符号 ’ >> ’
- 相比于 > 具有追加功能,即不会删除原来的内容
3.7 more 命令
< 1 > 基本使用
- 以文档的形式查看文件内容,可以上下屏翻页查看,B是向上一页(back),F是向下一页(forward)
- 与cat的区别是,cat一次显示出所有的内容,翻页起来麻烦
- 一般看大文件的内容用more命令,按q退出
< 2 > 与其他命令相互配合
- 把
/bin显示在终端的内容放在 | 里,然后more命令把 | 里的内容显示出来

- | 称为管道
- | 的左边是一个命令,右边也是一个命令,通过管道将两个命令结合在一起(这个用的比较多)
3.8 相对路径与绝对路径
< 1 > 基本概念
相对路径:从当前路径开始算起的路径。
绝对路径:从根目录开始算起的路径。
< 2 > 在 cd 命令里的使用
cd ./A表示跳到当前路径下的A文件夹,此处的.表示的是当前文件夹。cd ..表示返回当前路径的上一个文件夹(..表示当前路径的上一个文件夹)cd ../..表示跳到上上层文件夹(这是相对路径)

cd -表示返回到你上一次操作的路径,类似电视遥控器里的回看。cd ~表示跳回到家路径(快速回家)
3.9 创建树形文件夹
命令:mkdir A/B/C/D/E -p

3.10 rmdir 和 rm 命令
rmdir只能删除空的文件夹rm可以删除文件和文件夹以及非空文件夹,删除文件夹的时候要加-r选项
3.11 mv命令
- 命令:
mv (原文件的名字) (新文件的名字) - 核心目的是移动某个文件:
mv 111.txt LAOWANG/:表示把111.txt剪切粘贴到LAOWANG这个文件夹里 - 顺带的功能是能给一个文件或者一个文件夹改名
3.12 Linux 系统下的链接
- Linux里的软链接类似Windows里的快捷方式
< 1 > 软连接
- 关于软连接的解释:

创建的软链接就是右边的1-softlink.txt,此时它是指向源文件1.txt的,我们可以通过1-softlink.txt来运行我们的源文件,如果删除了源文件1.txt,上图红色的箭头就断开了,那么软连接文件就找不到源文件了,也就打不开源文件了。 - 创建软连接的方式:
ln -s (原文件) (新文件名)—(选项-s表示soft,软)
< 2 > 硬连接
- 关于硬链接的解释:

相当于给同一份数据内容增加了一个文件名,如果将源文件1.txt删除了,还能够通过硬链接文件找到源文件的内容。 - 创建硬链接的方式:
ln (原文件) (新文件名)—不要加-s选项
< 3 > 硬链接数的概念
- 创建一个软连接不会增加硬链接数的个数,创造一个硬链接会增硬链接的个数,下图能够看出,只要硬链接数为0,源文件的数据才被彻底删除,硬链接数的查询方式如下:

- 举例2

3.13 cat 命令 以及与重定向的配合使用
< 1 > 一次显示多个文件的内容

< 2 > 把两个文件内容合并到一个文件

3.14 grep 命令
grep "ntfs" xxx.txt:搜索xxx.txt文件中含ntfs四个字符的内容grep "^ntfs" xxx.txt:搜索xxx.txt文件中必须开头是ntfs四个字符的内容grep "ntfs$" xxx.txt:搜索xxx.txt文件中必须结尾是ntfs四个字符的内容- 总之grep是在文件里搜内容
3.15 cp 命令
- 作用:复制拷贝一个文件,原文件不会被删除
- 只要操作一个文件夹时报错,加入 -r 选项

3.16 find 命令
- find 是在文件夹里搜文件名,grep是在文件里面搜具体内容

3.17 tar 命令
< 1 > 打包和解包
tar -cvf test.tar *.py:把.py结尾的文件打包成test.tar文件tar -xvf test.tar:把test.tar解包,原包不会删除- 以上打包和解包没有压缩,此时虽然放在同一个文件夹里,但是它的大小没有变,所以不常用,而下面的压缩可以减小包占用硬盘的大小
< 2 > 打包和解包并压缩方式1
tar -zcvf test.tar.gz *.py:打包加上压缩tar -zxvf test.tar.gz:解开压缩包(tar命令时最后面加上选项-C (路径)可以指定解压的位置)

< 3 > 打包和解包并压缩方式2
tar -jcvf test.tar.bz2 *.py:打包并压缩tar -jxcf test.tar.bz2:解压缩
< 4 > 打包和解包并压缩方式3
zip zzz.zip *.py:打包并压缩unzip zzz.zip:解压缩(用zip解压缩加入-d可以指定路径)

3.18 查看任务进程
< 1 > ps 命令
ps -aux:显示乌班图所有开启的进程,显示一遍就结束了,类似Windows里的任务管理器
< 2 > top、htop命令
- top 可以实时显示进程(不停刷新)
- htop 也显示进程,更加高级
3.19 kill 命令
kill -9 9822:杀死9822这个进程,(-9 表示强制杀死)
3.20 shutdown、reboot
shutdown -h now:直接关机reboot:重启
3.21 df 命令
df -h:查看硬盘的使用情况

四. 与用户相关的Linux命令
4.1 useradd 命令
sudo useradd shuaige -m:创建一个新的用户,用户名叫做shuaige,-m表示创建ssss账户的时候顺便创了一个文件夹当作sss的家目录,创建用户的同时默认已经创建了一个组,组名=用户名(但是它默认不在超级管理员的组里)

- 确定用户创建成功的方式:执行
cat /etc/passwd命令,最低下会多一行用户名开头的代码,表示创建成功

- 此时如果要切入到新创建的用户会报错,因为默认没有给其设置密码:

- 使用
sudo passwd shuaige命令给其设定密码

- 切换账户与退出账户

4.2 ssh 命令
ssh python@172.16.7.139:远程登录用户名为python,IP地址为172.16.7.139的系统(exit注销)
4.3 建议
- 以后不要开多个终端,用另一种方式开第二个中断,类似浏览器下的多个小窗口:

- 命令:Ctrl+Shift+T 可以在同一个窗口里再打开一个标签,Alt+1/2可以切换标签
4.4 userdel 命令
sudo userdel 用户名:删除用户,这个目录下的shuaige用户就没了

但是该用户的家目录文件没有被删除

sudo userdel -r 用户名:同时删除用户和用户家目录下的文件夹,此时以上两个图片都不存在shuaige这个用户
4.5 切换到超级管理员
- Ubuntu利用
sudo -s切换到root超级管理员,不用su root
4.6 用户组相关
- 第一个python表示文件的拥有者,表示后面的这个1.py是这个python用户创建的
- 第二个python表示用户组,用户组的作用是如果某个用户在这个组里,那么这个组具有的对这个文件的任何权限,组里的某个用户也具有,一个组里可以有多个用户,这里的python用户就是在python组里
- 当我们使用useradd创建用户的同时默认已经创建了一个组,组名=用户名(但是它默认不在超级管理员的组里)

- Ubuntu默认装好之后,含有sudo组和adm组,当我们新建了一个普通用户,决定它能不能够使用超级管理员权限sudo,或者直接切换到超级管理员就看这个用户在不在这两个组里

为创建的普通用户添加sudo权限:

4.7 chown 命令
- 修改文件的拥有者

4.8 chgrp 命令
- 修改用户所属于的组
- 此时dong4716138具有什么权限,谁在这个组里,谁就具有这些权限

五. 修改文件的权限
5.1 三种权限的解释
- 第一个符号为 - 表示为普通文件,第一个符号为d为文件夹
eg:-rw-rw-r--,一用有十个符号,第一个符号单独一组,后面每三个一组
如此例子中,剩余三组的第一个组为文件拥有者的权限
第二个组为同组者的权限
第三个组为其他人的权限 - r表示可读,w表示可写,x表示可执行,后面的九个字符中只要出现 - 就表示没有指定的权限

5.2 修改权限的方法
< 1 > 字母法
chmod 777 2.py可以直接将2.py修改为最高权限,即-rwxrwxrwx- u 表示文件的拥有者, g 表示同组, o 表示其他人
chmod u=rwx 2.py将2.py的拥有者权限改为可读可写可执行

chmod u=w 2.py将2.py的拥有者权限改为只能写

chmod g=rx 2.py将2.py的同组者权限改为可读可写可执行

chmod o=rwx 2.py将2.py的其他人权限改为可读可写可执行

chmod u=r,g=r,o=r一次改三个的权限

< 2 > 数字法
- 定义了:
r----->4
w----->2
x----->1
所以chmod 127 2.py中1表示文件拥有者拥有的权限是只可执行,2表示同组者拥有的权限是只可写,其他成员拥有的权限是可读可写可执行
6801

被折叠的 条评论
为什么被折叠?



