linux基础操作

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 =文件名 显示文件 新增替换新增 以行为单位的新增/删除 nl 列行号 eg: nl /etc/passwd | sed '1,5d' 没去操作源文件 原文件没有进行删除 显示的删除了 nl /etc/passwd | sed'3,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

你可能感兴趣的:(linux基础操作)