linux笔记
ssh 配置
改端口号:
cd/etc/ssh/ssh_config
按i (insert)
port 22原始的 改 端口号1-65535
permitrootlogin yes
搜索关键词 /+关键词 按n向下搜 按N向上
将yes 改为no
按esc
:wq --保存并退出
重启服务生效
service sshd restart
使默认用户能够sudu命令:
sudo 临时提权
1.centos 默认用户无法执行sudo
visudo 打开文件
2.vi /etc/sudoers打开打开文件
然后寻找root
在rott ALL=(ALL) ALL
下面 默认用户 ALL=(ALL) ALL
按esc
:wq
bash 相关命令:
cat /ect/shells查看系统支持的shell
echo /$0显示当前shell
bash--version查看bash版本
linux支持多用户
控制台切换 ctrl+alt +F1-6
linux有五种文件
ls-lj查看文件属性
-普通文件
d文件夹字符设备文件和块文件
c开头是字符设备文件
b是块设备文件
s套接口文件 属性s开头
.代表本目录
..上次目录
-代表前一个工作目录
~家目录 在root/home 所有普通用户在home目录创建目录 root的家目录是root
cd cd+空格+/根目录 cd+空格+-回到上一次操作的目录
pwd 显示目前所在的目录
mkdir 创建目录 mkdir+' '+文件目 录 创建多目录 mkdir +' '-p /123/456/789 mkdir -h
rmdir 删除目录 只能删除空文件
rm -rf强制删除
文件操作
ls 列出文件目录 (ls-l , ll) 更加详细
cp和scp文件的复制
-r递归持续复制 cp 1.txt /txt/var/www cp /var/www/1.txt ./2.txt
拷贝目录 cp -r 123/ /temp
cp *.log /etc/log所有以.log
scp 拷贝到远处电脑 scp 1.txt [email protected]:/temp/
拷贝目录 scp -r 1.txt [email protected]:/temp/ (拷贝后的文件名可选)
从远端拷贝文件 ro
[email protected]:/temp/ 1.txt scp
创建文件
touch 1.txt
vim 2.txt //打开 /如果没有 就创建
echo hello>3.txt //将hello输入到3.txt 如果没有就创建
uid =uer id 为0时候代表该账号为ROOT用户(系统管理员) 也可以把其他的账号的uid改为0 权限也和ROOT一样
100-499 系统用户需要 500以后普通用户
gid =ground id
/etc/passwd 查看用户信息
/etc/shadow 用户密码
创建用户
useradd 用户名
password 用户名
userdel
用户状态 finger
当前用户信息 id
su经常是普通用户 切换到root用户 需要知道root权限
sudo 临时提权 需要输入密码
su - 切换到root的环境变量
su 还是切换到普通用户的环境变量
w 查看当前系统上有多少用户登录
lastlog 每个账号的最近登录时间
Write 用户 终端 不同终端用户传递信息
vim 编辑工具(记事本)
vim+#:打开文件,并定位于#行
vim+:打开文件 定位最后一行
:q!
:w保存
:w!强行保存
:wq-->:x
w : 到下一个单词的词首
e :当前或者下一个单词的词尾
b :前一个单词的词首
行间
#G 跳到#行
gg第一行
G最后一行
行内
0 :行首
$ :行尾
^ : 行首第一个非空字符
末行
.当前
$最后一行
# 、第#行
删除操作
x :删除光标所在字符
#x:删除光标所在处and向后的#个字符
删除命令:
dd :删除光标所在行
#dd
:>文件名//清空文件
echo "">文件名字//清空文件
复制命令y
粘贴命令p 前面加数字
取消编辑操作 u
显示行号:
:set nu
:set nonu
忽略字符大小写
:set ic
区分大小写
:set noic
1}'
ARGC 看参数个数
cat -n filename 显示行号
sed 文件内容查询和替换 文本处理工具
sed -n d' 删除3到最后一行
sed '2,5d' filename
a(after) 插入在后面
eg:在第二行后加drink tea
nl /etc/passwd | sed '2a drink tea'
i(insert)插入在前面
增加多行
eg :\
nl /etc/[asswd | '2a drink tea \sss'
替换c
eg: nl /etc/passwd | sed '1,5c hellohack'
显示p 指定行数显示
eg: nl /etc/passwd | sed '1,5p'
-n指定行显示
eg nl /etc/passwd | sed -n'1,5p'
搜索并显示
eg: nl /etc/passwd | sed -n'/word/p'
搜索并取代
eg: sed's/old world/new world /g'
g全局替换
^以什么开始
$以什么结束
.任意一个字符
.*任意多个字符
sed -i 修改原文件
进程和任务管理:
ps查看进程
ps-A | ps-ef查看所有的进程
ps -u 用户名字 对应用户启用的进程
PID 进程id
PPID子进程id
最后一个域是进程名称
ps aux列出目前所有的正在内存当中的程序
可以用|管道的more连接起来分页查看 pas -aux|more
到处ps -ef 查看当前进程
运维监控器top
zombie 不是0的情况下 代表进程有问题 有僵尸进程
wa 输入输出设备不是0 读写
kill 终止后台进程
kill -9(强制停止) 进程名字
kill -l
kill -9 pid
watch -n 5 ps -ef
df L
du -h文件大小 --max-depth=N最大目录深度
mount 磁盘挂载的语法
mount -他
挂载 cd:
文件在dev/下面
cdrom ->sr0
cdrw->sr0
软链接
cd /media/
mount /dev/cdrom /media/cdrom
成功显示
umount /media/cdrom
u盘文件 sgd1
mkdir u
mount sdb1 /media/u/
分区:
linux ext4
window ntfs
开机bios mbr
fdisk
-l 查看硬盘及分区信息
fdisk /dev/sdb 对sdb进行操作
mkfs.ex44 /dev/sdb
如过ssh连接不到虚拟机可能是ssh服务未开启
service ssh restart
kilinux 扫描端口
nmap -sn 10.22.2.0/24>re.txt
Shell脚本
以.sh结尾
whici bash 查看bash安装程序在哪
#!声明 bash的位置
./文件名 执行文件
ls-l查看文件执行权限
chmod +x 文件名 获取文件执行权限
wc -l查
看文件的行数
bash -s
用 bash -x bash-script 命令,可以查看一个出错的 BASH 脚本到底错在什么地方,可以帮助程序员找出脚本中的错误
iptables -F kaililinux关闭防火墙
yum install ecpect
for循环 for((i=1;i<=num;i++))do
{
}
done
./xx.sh 参数一 参数二
xx.sh 生变变量 2接传来的参数
用到变量时候需要在变量前加上$
expect 实现交互功能 (能够主动输入内容)
rpm -qa | grep 软件名字 shell下面输入expect 查看是否安装过
yum -y install expect 安装过程不需要按y
创建iplist 这是被复制的主机ip地址
vi ip.txt
进行测试ip地址可有 ping 地址 telnet 地址加22 /shh加地址
vi scp.sh
chmod +x scp.sh
! bin/bash
num='sed -n 1
passwd=3
distinfile=num;i++));do
ip=sed -n"$i"p ip.txt
./scp.exp user $passwd
done
第一行解释器
set timeout 10 延迟10s
nmap 查看是否存货
ssh 查看22端口是否开启
Bcast 广播地址 主机号为1
RX发送 TX接受
ip地址的配置:DHCO 动态分配地址 or手动配置
ifconfig 网卡eth0 掩码netmask
ifconfig eth0 down /up
ifconfig hw ether 修改mac地址
ifconfig eth0 arp
ifconfig eh0 -arp
网络配置文件: 、ofcfg-eth0
、etc、sysconfig 、network-scripts、
ifcfg-th0
bootproto =“static/dhcp”
ipaddr增减newip
newmask=
geteway网关
service network restart
route --help
nerstat -r查看路由表
route add default gw 10.66.66.250 配置网关
ping 一下网关
第一步ifconfig eth0 x.x.x.x netmask 255.255.0.0
第二步 rount aad deault gw x.x.x.x
namesvim etc/resolv.conf
erver 8.8.8.8 谷歌的
nameserver 114.114.114.114 阿里的
0-6个模式 3纯cmd界面 5是图形化界面的
默认是从5启动 服务:network(命令) networkmangger(用于图形画下管理)
3只启动networ
chkconfig --list | grep -i netw
查看启动的服务(开机自动启动的) 匹配 netw
service NetworkManager stop
service network star
学校网关10.66.66.250
ifconfig eth0 10.66.3.33 netmask 255.255.0.0
ping 网址
ping 8.8.8.8
ping 网关
ping 114.114.114.114
配default 路由
netstat -r
route add default gw 10.66.66.250
netstat -r
ping 114.114.114.114
vim /etc/resolv.conf
文件压缩和解压缩
tar 用于压缩和解压的工具 .tar.gz tar.bz2 分别用算法gzip bzip
zbip->j gzip->z
-v 将正在处理的档名显示出来
tar -zvxf 文件名
将文件压缩到一个指定的目录中
$ tar -xvzf abc.tar.gz -C 路径
文件的权限
owner-group-other
owner r=4 w=2 x=1 rwx=7
group
otherz
chmod 700 1.txt
chmod +x 1.txt
chmod g+x 1.txt
chmod g-x 1.txt
chmod a-x 1.txt
chmod a+x 1.txt
all
chown apache ./image/ 把文件owner由root改为apache
yum 安装 自动解决依赖性的关系 便于管理大量系统的更新问题
rpm - qa | grep yum 检查是否安装了yum,系统默认情况下 都已经安装了
如果没有yum 从网上下载rpm包 也可以从系统光盘中进行安装
yum 分为i两部分 main 和respository
cd /etc/yum.repos.d/
改Media
Base.repo 网络yuan 配置
yum 网络源配置
https:mirrrors.163.com
rpm
rpm-ivh 名字
i install
v 查看更细节的安装咨询
h 显示安装进度
。。。*rpm
man rpm 查看帮助文档
rpm -qa 查看安装的软件
rpm 卸载
rpm -e 软件名字 考虑
--nodeps 强制卸载 不考虑依赖关系
升级
rpm -Uvh 文件名
在老的版本上更新 -oldpack
linux 的源码安装
需要编译环境 yum list | grep gcc
yum install gcc gcc-c++
./configure --with-apr=/usr/local/apr/
make
make install
prefix=/usr/local/apache
./configure
make
make install
源码安装:
准备工作
系统编译环境的安装 yum -y install gcc gcc-c++
下载安装源码安装包 wget httpd aapache org
解压
进去源码文档
依赖关系 apr apr-ulti pcre
apr ./configure
apr-ulti ./cnonfigure --with=/usr/local/apr
httpd, ./configure --prefix=/usr/local/aapache
测试 cd /usr/local/apache/bin
./httpd -k start
127.0.0.1.txt
防火墙 软件防火墙
ping 网址 看ip
nslookup
vim /etc/resolv.conf
iptables -P OUTPUT ROP
iptables -A OUTPUT -d dns地址 -p udp --dport 53 -j ACCEPT 允许能访问dns
iptables -A OUTPUT -d 网站 -p tcp --dport 80O -j ACCEPT 允许能访问dns