liunx笔记

1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。

1)linux的发行版介绍

slackware:SlackwareLinux是由PatrickVolkerding开发的GNU/Linux发行版,一直坚持KISS原则。

suse:在欧洲比较流行的linux发行版本

sles:suse企业版

opensuse:suse桌面免费发行版本

debian:服务器版,消耗资源少,稳定。

ubuntu

mint

redhat:成立于1992年

rhel:redhatenterprise linux,用于企业商用,为了保证服务器稳定,每18个月发行一个新版本

centos:开源版本,和RHEL几乎一样,兼容rhel的格式,已被redhat收购。

fedora:linux免费桌面版,得到redhat官方支持,用于测试新软件,每6个月发行一个新版本

Archlinux

Gentoo

LFS:Linux From scratch

Androld:kernel+busy@R_802_2419@+java虚拟机,主要用于移动终端

2)不同发行版之间的联系

都是在开源的linux内核代码进行再次开发而形成不同的发行版,而且必须支持GNU中包含的自由软件协定,GNU包含的自由软件协定包含GPLv2、GPLv3、LGPL。各发行版其中SLES是suse的企业版本,opensuse是suse的免费桌面版,ubuntu和mint都是基于dibian的桌面版,RHEL为redhat面向企业商用的服务器版,fedora属于redhat的桌面版本,由redhat赞助fedora社群免费维护,centos主要面向企业服务器,由开源社区提供免费技术支持,后来被redhat收购,目前仍然免费。

3)各发行版之间的区别

包管理系统不同,SLES、Fedora、openSUSE、centos、RHEL采用rpm包管理系统,包文件以rpm为扩展名;Ubuntu系列,Debian系列采用DPKG包管理系统。

2、安装Centos7.9和ubuntu操作系统,创建一个自己名字的用户名,并可以正常登录,将主要步骤截图。

在公司装的步骤忘了截图

3、配置环境变量,实现执行history的时候可以看到执行命令的时间。

 

 

 4、总结Linux哲学思想。

Linux把几乎所有的资源通通抽象为文件形式,这其中包括:

硬件设备

比如:/dev/console、/dev/cdrom等

管道

比如:/dev/zero(一个可以都出无限个0的文件),/dev/null(一个重定向进去之后就消失了的文件,相当于黑洞)

套接字

IP:PORT

好处:

可以使用同一套机制来处理Linux系统中的大多数资源。

比如系统调用:open(), read(), write(), close(), delete(), create()

由众多功能单一的程序共同完成复杂任务
Linux倾向于让一个程序只做一件事,并且做好;让这样的程序能够基于统一的标准开放接口,再由多个这种功能单一的程序组合起来,共同完成更为复杂的任务。

好处:

程序代码更轻量,更高效;

出现错误更容易定位;

程序的功能延展更具灵活性;

尽量避免跟用户交互
正是由于面向的对象不同,Linux系统管理多使用命令行接口,通过命令对系统进行操作和管理,这与Windows的设计理念有着迥然的区别。

好处:

易于以编程的方式实现自动化任务;

为自动化运维,乃至DevOps日后的发展奠定了基础。

使用文本文件保存配置信息
所有的配置文件都采用文本文件的方式保存,管理人员可以通过vi或vim文本编辑工具对其进行修改。

好处:

方便管理者对应用软件进行配置、检查工作,而且为避免服务因修改配置中断,多数应用程序也会针对配置文件的更改提供不中断服务的reload操作,这也是Linux系统运行比Windows稳定的一个因素。

5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令。

echo命令

用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

语法

echo(选项)(参数)

选项

-e:激活转义字符。

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

参数

变量:指定要打印的变量。

实例

用echo命令打印带有色彩的文字:

文字色:

echo -e "\e[1;31mThis is red text\e[0m" This is red text

\e[1;31m将颜色设置为红色

\e[0m将颜色重新置回

颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37




背景色:

echo -e "\e[1;42mGreed Background\e[0m" Greed Background

颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47


 

 



文字闪动:

echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"

红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

 

screen
screen命令

常用工具命令

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

会话恢复

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen

-r 就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。

多窗口

在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。

会话共享

Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

GNU's Screen 官方站点:http://www.gnu.org/software/screen/

语法

# screen [-AmRvx -ls-wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

选项

-A  将所有的视窗都调整为目前终端机的大小。

-d <作业名称>  将指定的screen作业离线。

-h <行数>  指定视窗的缓冲区行数。

-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。

-r <作业名称>  恢复离线的screen作业。

-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

-s  指定建立新视窗时,所要执行的shell。

-S <作业名称>  指定screen作业的名称。

-v  显示版本信息。

-x  恢复之前离线的screen作业。

-ls或--list  显示目前所有的screen作业。

-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

常用screen参数

screen -S yourname -> 新建一个叫yourname的session

screen -ls -> 列出当前所有的session

screen -r yourname -> 回到yourname这个session

screen -d yourname -> 远程detach某个session

screen -d -r yourname -> 结束当前session并回到yourname这个session

安装screen

流行的Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。

 

 

 [root@centos7cs ~]#

创建一个新的窗口

安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨:

[root@centos7cs ~]# screen -S cs

screen启动后,会创建第一个窗口,也就是窗口No.0,并在其中打开一个系统默认的shell,一般都会是bash。所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。

会话分离与恢复

你可以不中断screen窗口中程序的运行而暂时断开(detach)screen会话,并在随后时间重新连接(attach)该会话,重新控制各窗口中运行的程序。

之后我们想暂时退出做点别的事情,比如出去散散步,那么在screen窗口键入C-a d,Screen会给出detached提示:

暂时 中断会话

半个小时之后回来了,找到该screen会话:

[root@centos7cs ~]# screen -ls

重新连接会话:

[root@centos7cs ~]# screen -r

一切都在。

当然,如果你在另一台机器上没有分离一个Screen会话,就无从恢复会话了。这时可以使用下面命令强制将这个会话从它所在的终端分离,转移到新的终端上来:

清除dead 会话

如果由于某种原因其中一个会话死掉了(例如人为杀掉该会话),这时screen -list会显示该会话为dead状态。使用screen -wipe命令清除该会话:

关闭或杀死窗口

正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。另一个关闭窗口的方法是使用C-a k,这个快捷键杀死当前的窗口,同时也将杀死这个窗口中正在运行的进程。

如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。

除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。其实C-a :这个快捷键允许用户直接输入的命令有很多,包括分屏可以输入split等,这也是实现Screen功能的一个途径,不过个人认为还是快捷键比较方便些。

screen 高级应用

会话共享

还有一种比较好玩的会话恢复,可以实现会话共享。假设你在和朋友在不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他的终端上命令:

[root@centos7cs ~]# screen -x

这个命令会将你朋友的终端Attach到你的Screen会话上,并且你的终端不会被Detach。这样你就可以和朋友共享同一个会话了,如果你们当前又处于同一个窗口,那就相当于坐在同一个显示器前面,你的操作会同步演示给你朋友,你朋友的操作也会同步演示给你。当然,如果你们切换到这个会话的不同窗口中去,那还是可以分别进行不同的操作的。

会话锁定与解锁

Screen允许使用快捷键C-a s锁定会话。锁定以后,再进行任何输入屏幕都不会再有反应了。但是要注意虽然屏幕上看不到反应,但你的输入都会被Screen中的进程接收到。快捷键C-a q可以解锁一个会话。

也可以使用C-a x锁定会话,不同的是这样锁定之后,会话会被Screen所属用户的密码保护,需要输入密码才能继续访问这个会话。date
date命令

常用工具命令

date命令是显示或设置系统时间与日期。

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

date(选项)(参数)

选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

--help:在线帮助;

--version:显示版本信息。

参数

<+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表

%H 小时,24小时制(00~23)

%I 小时,12小时制(01~12)

%k 小时,24小时制(0~23)

%l 小时,12小时制(1~12)

%M 分钟(00~59)

%p 显示出AM或PM

%r 显示时间,12小时制(hh:mm:ss%p)

%s 从1970年1月1日00:00:00到目前经历的秒数

%S 显示秒(00~59)

%T 显示时间,24小时制(hh:mm:ss)

%X 显示时间的格式(%H:%M:%S)

%Z 显示时区,日期域(CST)

%a 星期的简称(Sun~Sat)

%A 星期的全称(Sunday~Saturday)

%h,%b 月的简称(Jan~Dec)

%B 月的全称(January~December)

%c 日期和时间(Tue Nov 20 14:12:58 2012)

%d 一个月的第几天(01~31)

%x,%D 日期(mm/dd/yy)

%j 一年的第几天(001~366)

%m 月份(01~12)

%w一个星期的第几天(0代表星期天)

%W 一年的第几个星期(00~53,星期一为第一天)

%y 年的最后两个数字(1999则是99)


格式化输出:

date +"%Y-%m-%d"

2021-11-20
输出昨天日期:

date -d "1 day ago" +"%Y-%m-%d"

2020-11-19

2秒后输出:

date -d "2 second" +"%Y-%m-%d %H:%M.%S"

2020-11-20 14:21.31

ifconfig
ifconfig命令

网络配置

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法

ifconfig(参数)

参数

add<地址>:设置网络设备IPv6的ip地址;

del<地址>:删除网络设备IPv6的IP地址;

down:关闭指定的网络设备;<硬件地址>:设置网络设备的类型与硬件地址;

io_addr:设置网络设备的I/O地址;

irq:设置网络设备的IRQ;

media<网络媒介类型>:设置网络设备的媒介类型;

mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;

metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;

mtu<字节>:设置网络设备的MTU;

netmask<子网掩码>:设置网络设备的子网掩码;

tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;

up:启动指定的网络设备;

-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;

-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;

-promisc:关闭或启动指定网络设备的promiscuous模式;

IP地址:指定网络设备的IP地址;

网络设备:指定网络设备的名称。

实例

显示网络设备信息(激活状态的):




启动关闭指定网卡:

ifconfig eth0 up

ifconfig eth0 down

ifconfig eth0 up为启动网卡eth0,ifconfig eth0 down为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。

为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64#为网卡eth0配置IPv6地址

ifconfig eth0 del 33ffe:3240:800:1005::2/64#为网卡eth0删除IPv6地址

用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE

 

 

export
export命令

Shell内建命令

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执

行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

语法

export(选项)(参数)

选项

-f:代表[变量名称]中为函数名称;

-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;

-p:列出所有的shell赋予程序的环境变量。

参数

变量:指定要输出或者删除的环境变量。

 

 

 

 6、描述Linux发行版的系统目录名称命名规则以及用途。

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录

/bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序

/lib:启动时程序依赖的基本共享库文件以及内核模块文件(/lib/modules)

/lib64:专用于x86_64系统上的辅助共享库文件存放位置

/etc:配置文件目录

/home/USERNAME:普通用户家目录

/root:管理员的家目录

/media:便携式移动设备挂载点

/mnt:临时文件系统挂载点

/dev:设备文件及特殊文件存储位置

b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置

/srv:系统上运行的服务用到的数据

/tmp:临时文件存储位置

/usr: universal shared, read-only data

bin: 保证系统拥有完整功能而提供的应用程序
sbin:
lib:32位使用
lib64:只存在64位系统
include: C程序的头文件(header files)
share:结构化独立的数据,例如doc, man等
local:第三方应用程序的安装位置bin, sbin, lib, lib64, etc, share
/var: variable data files

cache: 应用程序缓存数据目录
lib: 应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据
lock: 锁文件
log: 日志目录及文件
opt: 专用于为/opt下的应用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程pid文件
spool: 应用程序数据池
tmp: 保存系统两次重启之间产生的临时数据
/proc: 用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统

/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置

 

posted @   ccccsss  阅读(114)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示