linux服务器

Linux学习笔记

我只是一个虾纸丫 提交于 2020-03-04 12:58:47
Linux学习文档 简介 Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 系统启动过程 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。 运行 init。 系统初始化。 建立终端 。 用户登录系统。 init程序的类型: SysV: init, CentOS 5之前, 配置文件: /etc/inittab。 Upstart: init,CentOS 6, 配置文件: /etc/inittab, /etc/init/*.conf。 Systemd: systemd, CentOS 7,配置文件: /usr/lib/systemd/system、 /etc/systemd/system。 内核引导 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。 运行级别 许多程序需要开机启动。它们在Windows叫做"服务"(service)

Linux之特殊符号与正则表达式

吃可爱长大的小学妹 提交于 2020-03-04 12:21:34
Linux中常用的特殊符号 '' 所见即所得,吃啥吐啥 "" 特殊符号会被解析运行 `` ==== $() 先运行里面的命令 把结果留下 > 重定向符号 先清空文件的内容 然后追加文件的最后 >> 追加重定向 追加文件的最后 2> 错误重定向 只有错误的信息 才会通过这个漏洞进入文件中 2>> 错误追加重定向 ~ 当前用户的家目录 root ~ /root oldboy ~ /home/oldboy ! 查找并运行历史命令 !awk 包含awk的命令 最近的一条运行 history |grep awk # 注释 root用户的命令提示符 $ 取出变量的内容 awk $取某一列的内容 普通用户的命令提示符 * 所有 任何东西 \ 撬棍 转义字符 && 前一个命令执行成功然后在执行后一个命令 ifdown eth0 && ifup eth0 || 前一个命令支持失败了再执行后面的命令 通配符 通配符是用来查找文件的。如:‘*.txt’ 表示匹配所有以 . txt结尾的文件##1. * 所有,任意 找出文件名包含oldboy的文件 mkdir -p /oldboy cd /oldboy touch oldboy.txt oldboy oldboyfile oldboy.awk eduoldboy [root@oldboyedu01-nb oldboy]# find /oldboy/

Linux Rootkit Learning

萝らか妹 提交于 2020-03-04 09:51:56
目录 1. 学习Rootkit需要了解的基础知识 2. 挂钩(HOOKING) 3. 直接内核对象操作 4. LSM框架(Linux Security Module)于LKM安全 5. rootkit检测技术及工具 1. 学习Rootkit需要了解的基础知识 0x1: 什么是rootkit rootkit是允许某人控制操作系统的特定方面而不暴露他或她的踪迹的一组代码。从根本上说来,用户无法察觉这种特性构成了rootkit。rootkit会想尽办法去隐藏自己的网络、进程、I/O等信息(注意,这里所谓的隐藏,只是针对ring3的ui隐藏,内核层的功能不能隐藏,否则rootkit自己也无法使用功能了),所以,rootkit的攻防问题很大程度上是一个ring0争夺战的问题,监控程序必须直接深入到系统的底层去获取最原始的数据,才能避免因为rootkit的ring3隐藏导致的误判 0x2: 可装载内核模块(LKM) Linux就是通常所说的单内核(monolithic kernel),它与微型内核(windows系统中常见)不同 1. Linux中的单内核 操作系统的大部分功能都被称为内核,并在特权模式下运行。同时,linux也提供动态扩充系统功能的机制(可以将新的功能加载到内核、从内核去除某个功能),通过Linux内核模块(LKM)可以在运行时动态地更改Linux的内核

Linux环境配置文件的理解

落花浮王杯 提交于 2020-03-04 04:15:16
百度百科: .bashrc这个文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。 示例: 编辑 # User specific aliases and functions PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin".GBK export PATH LANG alias rm='rm -i' alias ls='/bin/ls -F --color=tty --show-control-chars' 例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。 每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。 一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了。 以下为转载博客,仅供参考: .bash_profile和.bashrc的什么区别及启动过程 .bash_profile和.bashrc的什么区别 bash_profile和

linux下环境变量PATH设置错误的补救

 ̄綄美尐妖づ 提交于 2020-03-04 04:03:23
本文转自: http://blog.clzg.cn/blog-614449-740527.html 之前不小心在/etc/profile中添加了错误的PATH变量,导致几乎所有的系统命令无法使用,惊出一身冷汗,然后经过多次试验终于修复成功。以下是部分经验: 首先,PATH变量记录着各系统命令的存放路径,所以平时使用系统命令时可以直接输入命令而不需要连命令的路径一起。 比如"vi"命令,在PATH变量正常的时候直接输入"vi /etc/profile"就可以,而PATH变量出错的时候就需要输入"/bin/vi /etc/profile"才能正常使用,否则系统将提示错误。 也就是说,即使PATH变量出问题,系统命令也不会丢失,只不过使用的时候必须输入命令所在的路径。 其次,PATH变量中存储的系统命令路径是以":"分隔的,通常PATH的值为"/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"。 在把常用的非系统命令路径加入时也是以同样的方式,在变量的末尾加入":"及路径,需要注意的是路径末尾不能以"/"结尾,否则将导致整个PATH变量出错。 最后是修复PATH变量的方法。修复PATH变量其实很简单,就是重新给PATH变量赋值就可以了。至于PATH的默认值可以从其他的服务器上复制过来。 使用"echo $PATH

Linux系统基础优化

给你一囗甜甜゛ 提交于 2020-03-03 23:26:23
第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的。 第一步:先备份 mkdir backup mv C* backup/ 第二步:下载163yum源 wget http://mirrors.163.com/.help/CentOS6-Base-163.repo 第三步:清除旧缓存 yum clean all 第四步:创建新缓存 yum makecache 第五步:安装必要的软件包 yum -y install tree nmap sysstat gcc gcc-c++ make telnet 第3章 关闭SElinux功能 SELinux(Security-Enhanced Linux)是美国国家安全局(NSA)对于强制访问控制的实现,这个功能让系统管理员又爱又恨,这里我们还是把它关闭了吧,至于安全问题,后面通过其他手段来解决,这也是大多数生产环境的做法,如果非要开启也是可以的。关闭方式如下。 修改配置文件,使关闭SElinux永久生效: /etc/selinux/config :selinux的配置文件 可以直接vi(vim)修改或者用sed -i直接对配置文件进行修改。 临时关闭SElinux,可在命令行执行如下命令: 命令说明 setenforce:用于命令行管理SELinux的级别,后面的数字表示设置对应的级别

在Linux服务器上部署SpringBoot项目

£可爱£侵袭症+ 提交于 2020-03-03 22:27:53
在Linux服务器上部署SpringBoot项目 首先在maven中编译项目打成jar包 如果你在打包项目的时候出现以下问题 这里是因为在maven中设置了一些参数导致,只要把这个参数删除就好了。 在项目目录target文件下找到已经打好的jar包 上传到服务器上面去,我使用的是Xftp6,这个在官方可以下载正版的。 我这里项目已经上传上去了,所以不再演示了很简单;运行jar的是需要jdk的,我服务器上面安装的是jdk1.8(如果你没有安装包的话+pin1518033@163.com 邮箱) nohup java -jar financial-0.0.1-SNAPSHOT.jar >temp.txt 2>&1 & financial-0.0.1-SNAPSHOT.jar 是jar包的名称 temp.txt 是项目的日志文件 如果你的项目启动不成功可以查看日志文件来定位错误在哪里,我这里就出现了一个bug,数据库连接问题, 如果出现这个问题可能是你数据库账号密码问题 或者是 连接池,mysql版本的问题 跟换了以后项目就能正常运行了。 来源: CSDN 作者: Guiar. 链接: https://blog.csdn.net/weixin_42685111/article/details/104635890

linux文件系统配置文件

做~自己de王妃 提交于 2020-03-03 21:29:55
文件系统 内核提供了一个接口,用来显示一些它的数据结构,这些数据结构对于决定诸如使用的中断、初始化的设备和内存统计信息之类的系统参数可能很有用。这个接口是作为一个独立但虚拟的文件系统提供的,称为 /proc 文件系统。很多系统实用程序都使用这个文件系统中存在的值来显示系统统计信息。例如,/proc/modules 文件列举系统中当前加载的模块。lsmod 命令读取此信息,然后将其以人们可以看懂的格式显示出来。下面表格中指定的 mtab 文件以同样的方式读取包含当前安装的文件系统的 /proc/mount 文件。 /etc/mtab 这将随着 /proc/mount 文件的改变而不断改变。换句话说,文件系统被安装和卸载时,改变会立即反映到此文件中。 1.文件格式 /etc/mtab的格式和/etc/fstab是一样的.但这个文件不能算是用户配置文件,他是由系统维护的.和/etc/fstab的区别在于, fstab是系统启动时需挂载的文件系统列表,而mtab是系统当前已挂载的文件系统列表,它由系统维护,在用户执行了mount或者umount命令后自动更新.用户不应该对此文件作任何修改. 2.安全性 /etc/mtab的默认权限仍然是644 3.相关命令 mount umount smbmount /etc/fstab 1.文件格式 /etc/fstab记载了系统启动时自动挂载的文件系统

Mono 在Ubuntu 上的安装

拜拜、爱过 提交于 2020-03-03 18:53:29
所需软件: mono: ftp://www.go-mono.com/archive/1.2.5/linux-installer/5/ mono SourceCode:http://go-mono.com/sources-stable/ gcc ftp://ftp.gnu.org/gnu/gcc/ glib ftp://ftp.gnu.org/gnu/glibc/ gnu m4 ftp://ftp.gnu.org/ pgk http://pkgconfig.freedesktop.org/releases/ gettext ftp://ftp.gnu.org/gnu/gettext/ bison ftp://ftp.gnu.org/gnu/bison/ gtk http://download.chinaunix.net/download/0005000/4195.shtml vmware 6.0.2 h ttp://yqtel.cncrk.com:8080/soft/keygen/VMware-workstation.rar 1.在xp系统上安装vmware 6.0.2 2.在vmware上安装Ubuntu 7.1(iso) (到出现正在设置APT(82%)正在扫描镜像站点...停住了,几小时不动,怎么办? http://www.linuxdiyf.com/bbs

python 连接linux服务器

风流意气都作罢 提交于 2020-03-03 17:02:57
import paramiko class Monitor(object): def __init__(self, server_ip, user, pwd): """ 初始化ssh客户端 """ try: client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.client = client print('------------开始连接服务器(%s)-----------' % server_ip) self.client.connect(server_ip, 22, username=user, password=pwd, timeout=4) print('------------认证成功!.....-----------') except Exception: print(f'连接远程linux服务器(ip:{server_ip})发生异常!请检查用户名和密码是否正确!') def link_server(self, cmd): """连接服务器发送命令""" try: stdin, stdout, stderr = self.client.exec_command(cmd) content = stdout.read().decode(