linux进阶命令,ssh讲解,文件如何最简单上传下载,shell命令等进阶命令与更深了解linux

linux补充命令

  • reboot重启
  • halt 关机
  • ps命令(查看当前进程)ps -ef| grep ssh(查看ssh的相关进程)
  • chown命令 chown [-R] 账号名称 文件/目录(R表示递归)
  • chmod r读写权4 w写入权2 执行权1
    • chmod 777 -R xxx(文件或者目录)(用户,组,其他可读可写可执行)
  • ps查看进程
  • jps查看java进程
  • set命令查看环境变量
  • history 查看历史命令
  • yum provides “*/命令” 查看命令属于哪个安装包
  • tail -n50 文件名 (查看后50行)
  • kill -9 端口号(杀死进程

新建linux虚拟机初始化设置

  • 1.设置网络:
    vi /etc/sysconfig/network-script/ifcfg-eth0
    ONBOOT=yes
    BOOTPROTO=static
    网管
    ip
  • 2.关闭防火墙:
    #service iptables stop
    #chkconfig iptables off
    #vi /etc/sysconfig/selinux
    SELINUX=disabled
  • 3.查看主机名:
    hostname
  • 4.修改主机名称:
    #vi /etc/sysconfig/network
    HOSTNAME=主机名称
  • 5.修改主机名ip地址映射
    #vi /etc/hosts
    master 192.168.65.110
  • 6.windows本地连接Linux IP地址映射
    编辑C:\Windows\System32\drivers\etc\hosts
    master 192.168.65.110

虚拟机的copy

  • 选择完全copy
  • 更改一些设置
    • 右键虚拟机>设置>网络适配器>高级>MAC地址重新生成
    • 在命令行切换到root用户,vi /etc/sysconfig/network 修改主机名
    • 删除mac配置文件,下次开机会自动生成(根据第一步重新生成的)rm -rf /etc/udev/rules.d/70-persistent-net.rules
    • 修改ip地址,不过我的copy后最后一位一个是133,一个是134,不需要修改
    • 如果修改
    • 先vi /etc/sysconfig/neywork-scripts/ifcfg-eth0
    • 删除HWADDR这一行(命令dd)
    • 修改ip地址

ssh安全外壳协议

  • 非对称加密,有一对秘钥
    • 公钥加密
    • 私密解密
  • 加密过程(前提服务端已经生成好了公钥和私钥)
    • 客户端想远程登录服务端
    • 客户端向服务端发起ssh请求
    • 服务端收到请求,发送公钥给客户端
    • 客户端输入用户名密码通过公钥加密,回传给服务端
    • 服务端通过私钥解密得到用户名密码和本地进行对比,验证成功允许登录,否则再次验证
  • 基于密匙的登录过程
    • 在客户端生成公钥复制到服务端的专门存放公钥的地方
    • 客户端向服务端发送请求
    • 服务端查看自己的公钥列表,找到相同的,用此段公钥随机加密一个字符串并返回
    • 客户端接收到服务端加密的字符串,通过私钥解密,然后将解密后的字符串进行返回
    • 服务端接收返回的字符串并与自己生成的对比,如果一样则登录成功
  • 集体操作过程
    • 使用ssh-keygen -t rsa命令生成ssh公钥和私钥在/root/.ssh文件下
    • 使用命令shh-copy-id 192.168.48.134复制到服务器的/root/.ssh/authorized_keys
    • 发送链接请求ssh root@192.168.48.134
    • 链接成功exit退出

文件上传下载

SFTP安全文件传送协议
  • xshell进入sftp(sftp root@192.168.48.133)
  • lcd是可以不加目录然后它会弹出一个窗口让你选目录,自己写可能会报错
  • get是从服务端下载,put是上传
lrzsz(一款在linux中替代sftp的程序)
  • rz命令上传也可以直接拖拽
  • sz命令下载到download

查找命令

  • grep
    • ps -ef | grep sshd查看带有sshd的文件
  • cat查看内容
    • cat aaa.txt | grep ^u查看以u开头的
    • cat aaa.txt | grep ^[^u]查看不以u开头的
  • find
    • find . -name “.log” -ls (在当前目录下显示名字所有名字是log结尾的)
    • find . -type f -name “.log”(查找当前目录,以.log结尾的普通文件)
  • locate
    • locate是系统创建的记录文件的数据库,一天一更新
    • 手动更新updatedb
    • 例子:loacte /etc/sh查看/etc文件下带有sh的文件locate pwd在全系统查找带pwd的文件
  • whereis
    • whereis ls将和ls文件相关的文件都查找出来
  • which
    • 在path变量的指定的路径中,搜索某个系统命令的位置如:which java
    • 查看某个系统命令是否存在
挂载命令(mount)
  • 将一个设备挂接到一个已经存在的目录上
  • 命令格式:mount -o loop /dev/cdrom /mnt/cdrom(例子)
本地yum源的制作
  • 目录 /etc/yum.repos.d 下配置xx.repo 后缀文件
系统服务管理
  • service –status-all #查看系统所有的后台服务进程
  • service sshd status #查看指定的后台服务进程的状态
  • service sshd stop
  • service sshd start
  • service sshd restart
  • 配置后台服务进程的开机自启
    • chkonfig httpd on ##让httpd服务开机自启
    • chkonfig httpd off ##让httpd服务开机不自启
网络管理
  • 主机名配置
    • hostname 查看主机名
    • vi /etc/sysconfig/network 修改主机名
  • ip地址配置
    • vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件的网络配置文件
    • service network restart
    • reboot
  • 域名映射
    • 配置在/etc/hosts文件中
    • vi /etc/hosts 进行修改
  • 网络端口监听
    • netstat -nlpt(最常用命令)
crontab配置(周期执行指令)
  • crontab -e 若不指定用户,则表示编辑当前用户的crontab文件
  • crontab -l 显示某个用户的crontab文件内容
  • crontab -r 删除定时任务
  • 实例:(* /1 * * * date>>root/date.txt 每分钟执行一次date命令存到date.txt中*)
linux定时任务
  • at
    • 默认删除键变^H,只要按住ctrl键,删除键就可以使用了
at $:17
at cmd
  • crontab 周期性执行计划任务
    • -e指定计划任务
    • -l列出计划任务
    • -r删除计划任务

shell编程

  • shell编程格式在/etc/shells文件下
  • 使用/bin/bash 最常用,免费
  • 在新建的.sh文件
#!/bin/bsah
echo "hello world"
  • 添加可执行权限chmod +x hello.sh
  • 执行 ./hello.sh

shell相关命令

  • 比较大小
    • [ aeq a − e q b ]; echo ? ? ( a和$b的前后要加空格,eq代表=的话输出0,不然为1,127代表输入错误)
    • -ne不等于则为真返回0,不然返回1
    • -gt大于
    • -ge大于等于
    • -lt小于
    • -le小于等于
  • 内置测试判断
    • [ -e /etc/passwd ];echo $?(前后要有空格,echo后面要有空格,如果文件存在返回0)
    • -r 如果文件存在且可执行则为真
    • -w 如果文件存在且可读则为真
    • -x 如果文件存在且可执行则为真
  • echo命令
    • -n表示输出不换行
    • -e表示转义
    • echo中默认是输出换行的
  • shell中的预设变量
    • $0表示这个程序的执行名字
    • $?表示上一个指令的返回值
    • $#表示这个程式的参数个数
  • let命令用来指定算数运算let "a++"
  • ctrl + d退出
  • read命令(从键盘读取变量的值)
    • 选项-p:指定读取值时的提示符
    • 选项-t:指定读取时等待的时间
      read -p "please input the first" a
shell中的括号
  • 双括号中前面和后面都要加空格
  • shell脚本中执行命令可以放在
  • 双括号
    • 省去$符号的算数运算
    • 可以使用a++,b–之类的
    • 在双括号结构中,所有变量可以不加入$符号前缀,也可以加入.
    • 支持多个表达式运算,各个表达式之间用逗号,分开.
    • 使用[]时必须保证运算符与数值之间有空格,而(())时数值与运算符可以没有空格
#! /bin/bash

num=2

while ((num<100))    #数值与运算符可以没有空格,变量的使用时也可以不使用$num
do
        echo "$num"
        ((num=num*2))
done
  • 单括号
    • 命令组。括号中的命令将会新开一个子shell顺序执行
    • 命令替换(没搞懂)
    • 用于初始化数组。 如:array=(a b c d)
  • 中括号
    • 中括号前后两端必须加空格
  • wojiufanle
控制语句
  • 控制语句中的关键字如if,then,while,for,elif如果要与后面的中括号或小括号之间隔一个空格
  • while
    • (())中可以不加$也可以加
#!/bin/bash
int=1
while(( $int<=5 ))
do
    echo $int
    let "int++"
done
#!/bin/bash
int=1
while(( int<=5 ))
do
    echo $int
    let "int++"
done
  • while循环可以用于读取键盘信息
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名: '
while read FILM
do
    echo "是的!$FILM 是一个好网站"
done
  • if
a=10
b=20
if [ $a == $b ]
then
   echo "a 等于 b"
elif [ $a -gt $b ]
then
   echo "a 大于 b"
elif [ $a -lt $b ]
then
   echo "a 小于 b"
else
   echo "没有符合的条件"
fi
  • case
#!/bin/bash
read -p "please input [y|n]" i
case $i in
"y")
        echo "yes"
        ;;
"n")
        echo "no"
        ;;
"*")
        echo "y or n!"
esac
shell中单双引号的区别
  • 单引号是原样输出
  • 双引号的取值输出
Shell函数
demoFun(){
    echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值