走进Linux(一切皆文件)

文章目录

  • 悄悄来到Linux
    • 进入Linux(已配置完毕)
      • 一切皆文件
      • 常用的命令
      • 根据实例来升级
        • 文件
        • 用户
        • 进程(process)
        • 磁盘分区(disk)
        • 端口号
        • 其他

悄悄来到Linux

在我们熟悉了Windows的骚操作以后,我们也可以尝试一下其他的操作系统。而对文件和数据最敏感的莫过于Linux操作系统了吧。

  • 知名版本
    • Ubuntu
    • RedHat
    • Centos
    • Debain
    • OpenSUSE
    • Fedora

Windows和Linux的区别:

走进Linux(一切皆文件)_第1张图片

看一下我做的一个最简化版的走进Linux:

走进Linux(一切皆文件)_第2张图片

进入Linux(已配置完毕)

不会有人看不到上面的最大的字吧,对,你没看错。Linux一切皆文件 。所以我们在Linux里面的一切操作都是对文件进行操作。

一切皆文件

目录名 简介
/bin 是Binary的缩写, 这个目录存放着最经常使用的命令
/sbin /user/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
/home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
/root 该目录为系统管理员,也称作超级权限者的用户主目录
/etc 所有的系统管理所需要的配置文件和子目录
/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序

/usr/sbin 超级用户的一些管理程序

/usr/doc linux文档

/usr/include linux下开发和编译应用程序所需要的头文件

/usr/lib 常用的动态链接库和软件包的配置文件

/usr/man 帮助文档

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里

/usr/local/bin 本地增加的命令

/usr/local/lib 本地增加的库
/lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/boot 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息
/srv service缩写,该目录存放一些服务启动之后需要提取的数据
/sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
/tmp 这个目录是用来存放一些临时文件的
/dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储
/run 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了
/opt 这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的
/var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件

常用的命令

我们学习操作系统,总得知道一些最常用的东西吧!下面一起看一下吧

操作指示 用法 实例
cd(进入) cd 目录名/文件名cd
cd 绝对路径 切换路径
cd相对路径 切换路径
cd ~或者cd 回到自己的家目录
cd - 回到上一次所在目录
cd … 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非快捷方式路径
cd /etc/sysconfig/network-scripts/
pwd 查看当前路径 image-20211215192412202
mkdir(创建目录) 创建目录mkdir [-p] 目录名(多层创建) 走进Linux(一切皆文件)_第3张图片
vi/vim(编辑) 走进Linux(一切皆文件)_第4张图片 走进Linux(一切皆文件)_第5张图片
ls ll=ls -l ls ls -all 走进Linux(一切皆文件)_第6张图片
history 查看命令历史 走进Linux(一切皆文件)_第7张图片
rm rm -rf 走进Linux(一切皆文件)_第8张图片
cp(复制) cp 【-r递归整个目录】 source[源文件] dest[目标文件] 走进Linux(一切皆文件)_第9张图片
mv(移动或重命名) mv oldName NewName
mv old目录 new新地址
走进Linux(一切皆文件)_第10张图片
开关机重启 (1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:关闭系统,但不断电。等同于shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] 时间
正确的关机流程为:sync > shutdown > reboot > halt

在学会上面的命令过后,正常使用Linux是没有问题了,但是,我们学习它,不能就这么肤浅吧,难道你买了一个笔记本电脑,就真当笔记本用呀!!!不能吧,和我升级一下自己的能力。

根据实例来升级

文件

1、现在我要查询所有java文件,怎么看?

[root@pier mkFile]# find /* -name *.java
/etc/.java
find: ‘/run/user/1000/gvfs’: 权限不够
/usr/share/doc/python2-cryptography-1.7.2/docs/development/custom-vectors/rsa-oaep-sha2/VerifyRSAOAEPSHA2.java

知识衍生:

  • find :注-name 文件名加*可以实现模糊查询

find [搜索范围] [选项]走进Linux(一切皆文件)_第11张图片

  • grep

使用方法:rep 选项 查找内容 源文件

2、查看大于100M的文件。你们怎么做?

[root@pier mkFile]# find / -size +100M
/proc/kcore
/run/media/master/CentOS 7 x86_64/LiveOS/squashfs.img
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/var/spool/abrt/ccpp-2021-12-13-23:45:02-3992/coredump
/usr/lib/locale/locale-archive
/usr/lib64/firefox/libxul.so

3、那我要查询一个叫firef什么的文件怎么办呢?

你要这样查吗?

find / -name firef*

其实还可以这么查

locate firef

知识衍生:

locate : locate快速定位文件路径一般用户模糊查询

注:在首次使用时,记得update更新一下数据库哟

可编辑文件:

1、现在我要查看一下/root/test/xiaoaojianghu.txt文档,你怎么查看呢?

不管其他,我现在肯定可以这样吧:

cd /root/test

方式一:使用vi/vim+文件名查看

 vim xiaoaojianghu.txt 

方式二:使用head+[-n+]文件名查看(局限:只能指定看前几行)

head xiaoaojianghu.txt

方式三:使用tail+[-n+]文件名查看(局限:只能指定看后几行)

tail -5 xiaoaojianghu.txt 

方式四:使用cat+[-n+]文件名(-n是用来看行号的)

cat -n xiaoaojianghu.txt 

方式五:使用more+文件名

more xiaoaojianghu.txt

走进Linux(一切皆文件)_第12张图片

方式六:使用less+文件名(相对于more更简洁,节约资源)

less xiaoaojianghu.txt

注:优点:看完之后关闭,类似与txt文档查看,但是不方便复制文件。

2、文件看了,我想试试添加。现在我要在/home/test.txt文档里面加一个"给pier来个三连呀!"。你们怎么弄?

首先还是先进入嘛

cd home

方式一:vi/vim(这种方式有点普通,所以自己写)

方式二:通过> 或>>进行追加

[root@pier home]# echo "给pier来个三连呀!" >> test.txt 
[root@pier home]# cat test.txt 
1234123
hvufcdbvgyh
给pier来个三连呀!

知识衍生:

echo: 可以多种使用,文件追加,还有直接输出等!

[root@pier home]# echo "给pier来个三连呀!"
给pier来个三连呀!

> 输出重定向和 >> 追加

[root@pier home]# echo "给pier来个三连呀!" > test.txt 
[root@pier home]# cat test.txt 
给pier来个三连呀!

简单来说就是> 是覆盖追加,而>>则是末尾添加。

用户

1、公司新来了一个人pier,要对系统进行使用。这时候我们需要为他新建一个用户吧。并切换到pier用户

[root@pier home]# useradd pier
[root@pier home]# passwd pier
更改用户 pier 的密码 。
新的 密码:(这里不用管,密码不会显示的)
无效的密码: 密码少于 8 个字符(这里不用管8位,你随意就好,只要密码一致)
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@pier home]# su pier

2、pier来到公司这么久了,又和公司老板的女儿有不清不楚的关系,老板给他升级了,需要频繁登录root权限和自己的权限,他想修改一下,自己可以免密登录root,他能怎么做呢?

注:切换root用户命令: sudo -s

​ 直接登录是需要输入root密码的。走进Linux(一切皆文件)_第13张图片

方法:使用vi/vim修改/etc/sudoers文件,找到下面这两行代码

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL

并照样子添加

root        ALL=(pier)       NOPASSWD: ALL

保存退出时加个!强制,或者你出去修改一下文件权限,但是修改完之后记得改回来哟,修改权限命令,切换过后 sudo whoami 可以检查

修改时的命令:chmod u+w /etc/sudoers
改回来的命令:chmod u-w /etc/sudoers

注:这个方法不唯一,但是这个是我能想到比较简单且最直接有效的方法,也可以尝试去修改组,将用户的密码在组内公开,我还没尝试过,但是理论上肯定是可行的。

知识衍生:

用户组:

这里提到了用户组,那就在这里提一下用户组吧!

用户组管理
	添加
		groupadd 组名
	删除
		groupdel 组名
	修改
		groupmod -n 新组名 老组名
	查看
		cat  /etc/group

添加用户进组:

[root@pier etc]# usermod -g bigdata pier
[root@pier etc]# id pier
uid=1003(pier) gid=1002(bigdata) 组=1002(bigdata),10(wheel)

用户权限:

当你打开某个文件时,有时候并没有修改的权限,那我们就来讲讲用户权限的事情。

我们先随意使用ll查看一个文件夹,为了给大家演示,我就使用/目录吧:

我们大概可以看到下面这样子的一些东西

走进Linux(一切皆文件)_第14张图片

我们一起来了解一下前面框框里面的东西吧:

走进Linux(一切皆文件)_第15张图片

  • 0首位表示类型

    在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

    - 代表文件(这里没有,但是自行可以尝试下其他目录)

    d 代表目录(如:root)

    l 链接文档(link file)(如:bin -> usr/bin)

  • 1-3该文件的所有者

  • 4-6该用户所有者所在组的权限

  • 7-9其他用户的权限

image-20211216103540356

3、pier拿到了巨大的权限后赚了不少钱,最近花花公子花花心了,和公司老板女儿闹别扭了,又有钱了,经常去夜店,老板女儿又吃醋了,给老板告了一状,开除了,那么系统里面也不能有他的名字了吧,免得老板生气呀!你怎么办呢?

你不会这样吧:

[root@pier /]# userdel pier
userdel: user pier is currently used by process 3015
[root@pier /]# id pier
uid=1003(pier) gid=1002(bigdata) 组=1002(bigdata),10(wheel)

哦豁,完犊子了,权限不够,那我们就找权限够的来呀

于是。我们可以 sudo userdel -rf pier(切换到root下面)

注:如果出现

[root@pier ~]# sudo userdel -rf pier
userdel: user pier is currently used by process 3015
userdel:组“pier”没有移除,因为它不是用户 pier 的主组

记得来一句,groupdel pier删除用户组

进程(process)

1、上面删除pier的时候,我们发现了有一个3015进程在被使用,不能删除,所以我们再来看看进程,刚才是因为我是使用远程登陆的,在虚拟机中pier用户没有退出,所以删除有问题,那现在我们在说自己的虚拟机里面打开一个软件。我这里打开firefox,在查看一下所有进程。

查看进程

ps -ef | grep firefox

结束进程

killall firefox

我们在之后的学习中或多或少都会用到进程,所以我们在这里也为大家说一下进程的查看和关闭,至于建立进程就没必要了,因为打开一个东西,就伴随着他的进程打开。

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

查看进程命令

  • ps 查看当前进程
    ps -aux | grep xxx (功能描述:查看系统中所有进程)
    ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
    走进Linux(一切皆文件)_第16张图片

终止进程

  • kill 终止进程
    • kill [选项] 进程号
    • killall 进程名称
    • -9 表示强迫进程立即停止
    • pstree 查看进程树
      • -p 显示进程PID
      • -u 显示进程所属用户

查看进程状态

  • top 查看系统健康状态
    -d 秒数 (刷新时间。默认3秒)
    -i 使top不显示任何闲置或者僵死进程。
    -p 通过指定监控进程ID来仅仅监控某个进程的状态。

注:下面的操作是进入top进程状态后使用的。

走进Linux(一切皆文件)_第17张图片

top页面展示

走进Linux(一切皆文件)_第18张图片

磁盘分区(disk)

1、在安装的时候,我的电脑不行,只分配了了20G的大小,可是长期的使用,保存数据,日志越来越大,我也不知道我的电脑占了多少了,我该怎么办呀?

解答:我们在购买电脑的时候,都会涉及到一个东西哦,电脑会分区吧,至少得分成2个盘甚至更多的吧!因为我们都知道C盘不能有太多东西,会卡。那么Linux自然也是如此我们也可以有多个分区,所以我们也能显示磁盘使用df -lh ,加上-l是因为好看,可以选择不加。因为上面解释的很清楚,就不解释了。

走进Linux(一切皆文件)_第19张图片

2、嗯,虽然没占用多少,我能看一下分区吗?还有,万一未来那一天,我使用时快满的时候我能怎么办呢?

查看分区详情

fdisk -l

走进Linux(一切皆文件)_第20张图片

查看磁盘挂载情况

lsblk -f

挂载和卸载磁盘

mount [-t vfstype] [-o options] device dir	(功能描述:挂载设备)
umount 设备文件名或挂载点			(功能描述:卸载设备)

走进Linux(一切皆文件)_第21张图片

注:挂载,你可以理解为插U盘,卸载就是弹出来。

端口号

​ 一般情况下,我们在学习阶段不会遇到端口号被占用的情况,但是,不代表一直能不遇到,所一再提一点端口小知识嘛。

  • 显示网络统计信息和端口占用情况
    netstat
    netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)
    netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

走进Linux(一切皆文件)_第22张图片

例:

查看端口号22的占用情况:

image-20211216172903470

其他

注:我们作为初学者,一定要控制好自己的手呀,控制不好,就请注意,在你配置好基础环境时,千万记得要克隆一台呀,不然,霍霍不起,就等20分钟你再做一条好汉吧!!!!!最后给大家带来一段才艺!

走进Linux(一切皆文件)_第23张图片

嘻嘻!这只是一台克隆机,大家千万别搞呀!!!!!

走进Linux(一切皆文件)_第24张图片

你可能感兴趣的:(大数据,linux,服务器,运维)