Xshell的安装以及一些命令

  • 帮助命令

       man command

       command --help

       Info command

            Ctrl+R  查看历史输入过的命令  ,方向键的上下键也可以查看历史的命令

            Ctrl+C   ctrl+z  终止或退出当前操作

            Tab键的作用

       

 

  • 安装XManager

      下载后安装在Serisi Number里面输入百度一个序列号然后下一步选择Custom自定义安装

 点击xshell点击新建连接,name随意,协议选择ssh,Host输入要连接的ip,端口22,

点击connection下的第一项输入用户和密码,在终端选项下底部选择编码utf-8点击ok完成连接。首次连接

要选择接受并保存key

  • 系统级别命令

      2.1  查看当前Linux系统信息

            uname -a  显示系统及版本的所有信息

            uname -r   显示内核版本

            uname -m  显示计算机是多少位系统

            cat /proc/version  Linux查看当前操作系统版本信息

            cat /etc/issue  或  cat  /etc/rehat-release  Linux查看版本当前操作系统发行版本信息

     2.2查看系统小版本

            cat/etc/redhat-release

     2.3查看当前主机名

          hostname    修改主机名  方式一:hostname  [要修改的值]  这种方式只是临时性的改

                                                 方式二:修改 /etc/sysconfig/network  文件中的HOSTNAME的值,这种是永久性修改主机名

      2.4查看第一个网卡信息

         ifconfig  eth0

      2.5查看和设置系统时间

          date

           date  -s  "2019-12-12 20:20:20"

       2.6查看进程

            ps -ef 

            ps -ef | grep java   查看与java有关的进程

        2.7显示当前在运行的进程包括对cpu内存使用量

           top  -s    按q退出

         2.8管道 |

           cmd1 | cmd2 将cmd1输出结果交给cmd2命令来执行

         2.9 grep  过滤

             grep  sshd  /var/log/boot.log   //   过滤/var/log/boot.log 文件下的sshd文件

            # grep   //输出包含指定字符串的行

                    -i   //忽略大小写

                    -r    //递归

                    -v //取反

                    --color   //突出显示查找字符串

         2.10 重新启动Linux操作系统

               reboot

               init  6

                为什么是6  可以查看/etc/inittab文件

                 默认是5这个运行级别来启动系统(默认运行级别不要设置成0 4 6)

修改默认级别后要重启

                service network  restart  将网卡重新加载

                  0级别就是关机

                  1级别是单用户模式

                  2级别是多用户模式,但是文件不能共享

                  3级别是多用户模式,文件能共享(常用)3是命令行模式  5是图形化界面模式

              shutdown -r now 表示立即重启

         2.11关闭Linux操作系统

                shutdown -h now 表示立即关机

               shutdown -h 1 表示1分钟后关机 

               init  0

               halt  该命令等价于关机

              eg:不管是关机还是重启建议都先执行sync命令,防止数据丢失

                     sync    把内存数据同步到磁盘上

         2.12图形和命令行转换

              vi /etc/inittab

             init 3  命令行模式

             init  5  图形化模式

         2.13显示守护进程目录树

             Pstree或pstree -p (显示pid)

         2.14显示所有正在运行的进程

             ps -aux 

             ps -ef

 

        2.15显示所有正在运行的java进程

             jps

        2.16结束正在运行的指定进程

           kill -9 pid

        2.17linux不进入系统更改root密码(进入单用户模式 root不需要密码就可登陆,然后修改root密码)

                启动系统时在引导时输入回车进入下一个界面输入e然后选择第二个(编辑内核)

              1.在grub选项菜单按e进入编辑模式

               2.编辑kernel那行,输入“  1”(空格1),然后按enter键

               3.按b重启

               4.进入后执行下列命令

                 root@#passwd root(配置root的密码)

                 Enter new unit passwd:输入新的密码

                 root@#init6

  • 磁盘操作

        3.1显示系统的磁盘空间用量

              df -h    //显示磁盘分区信息

              mkfs.ext4  /dev/sdb1    //格式化硬盘分区/dev/sdb1

              fdisk -l   //查看磁盘分区

              fdisk  /dev/sdb   //查看磁盘分区/dev/sdb 

              du -h -s  目录     //查目录使用大小

        3.2挂载(硬盘的挂载)

           mount  -t  vfat  /dev/sdb1  /media/umnt          //挂载   将/media/umnt目录挂载到 /dev/sdb1分区下

           mount  -o  remount rw  /           //重新挂载,或者将根目录以读写方式重新加载

           umount  /media/umnt     //卸载

        3.3文件系统修复

            fsck  -y  /dev/sda1     (修复的可以是分区可以是目录 , 最好在单用户模式下使用)

          //linux文件格式

          ext4  ext3  ext2 vfat(fat32)

          //window文件格式

          fat32   ntfs

  • 用户组用户         

         4.1账户

       超级账户:      root   uid=0

       普通账户         uid>=500

      系统账户          uid=1~499

       /etc/passwd    //保存账户的信息

       /etc/shadow     //保存账户密码信息

      /root     //root用户家目录

      /home/xxx    //普通用户xxx的家目录

        4.2添加和删除用户  useradd

             #useradd/创建用户

            -u   指定uid

            -d   制定宿主目录

            -s    指定使用shell

            -e   指定用户过期时间

            -g  指定基本组

            -G  指定附加组

           #useradd  openlab    //添加用户openlab

           #gpasswd -a openlab gropenlab   //将用户openlab添加到gropenlab组中

           #gpasswd -d openlab gropenlab   //将用户openlab从gropenlab组中删除

           #echo  "123456"  |  passwd--stdin feige    //不通过交互信息,直接该用户密码

           #userdel     //删除用户  不删除用户文件

           #userdel  -r    //连主目录一起删除

           #id openlab     //显示用户信息

              vipw  查看用户

          4.3创建用户组

              groupadd   manager

              vigr    查看组

              groups manager 查看用户在哪些组中

         4.4创建用户时附加到组中

                useradd -G  manager  tom   //创建tom用户添加到manager组中

                useradd  -G  manager tom2

         4.5更改密码方式1

               passwd   tom

         4.6更改密码方式2

                echo  "root"  |   passwd  --stdin  root

         4.7删除指定的账号

                userdel  tom2

         4.8锁定账户tom2禁止其登陆

                usermod  -L  tom2

         4.9切换当前用户账户为admin

                 su - admin

          4.10显示当前登陆用户账户

                whoami

          4.11查看系统文件判断添加用户组添加用户操作是否正确

                cat  /etc/passwd      或者使用vipw

                cat   /etc/group        或者使用vigr

  •  文件操作

         cd     进入操作

         5.1创建文件和目录(指定目录和不指定目录的区别)

              mkdir    /tmp/test01      //创建空文件夹

              mkdir   -p  /data1/hadoop/hdfs/name      //递归创建文件夹

              touch   /tmp/test01/file.txt            //创建空文件夹

              vi  file.log   //创建空文件并进入编辑模式

              echo '123'>>  file   //创建file并输入123到该文件夹

          5.2文本编辑器

               vim/vi/nano   file

              :q   //退出

              :w    //保存

              :wq  //保存退出

              :q!    //强制退出 不保存

          5.3文件内容查看

               cat -n            //查看内容时显示行号

               cat  /etc/redhat-release      //不显示行号

               cat -n /etc/passwd     //查看内容时显示行号   

               tail  文件名     //默认查看文件尾10行

               head   文件名    //默认查看文件头十行

                    -n    //查看文件头几行、

                tail -f    //动态监控文件数据

                 more     //百分比查看,不能回滚看

                 less     //可以回滚查看

            5.4 复制文件

                cp   /tmp/file.txt  /opt   //  把/tmp/file.txt文件复制到/opt下

            5.5复制目录

                cp -r  ./admin  ./test      //把当前目录下的admin目录复制到当前目录下的test目录

            5.6移动、剪切、重命名文件或目录

                mv  /opt/test01  /tmp       //   把/opt/test01 剪切到/tmp下

                mv  /opt/file.txt  /tmp/file2.txt      //   把/opt/file.txt剪切到/tmp/file2.txt 并重命名为file2.txt

                rename : 批量命名   

            5.7重定向和追加  >   >>

                > 先清空文件内容,后写入新的内容

                  #  ls -l /root > /tmp/file1.txt

                >>  追加新的内容  旧的内容不会消除

                 #   ls -l /root  >> /tmp/file1.txt

           5.8屏幕打印  echo

               echo  "Hello World"     //打印到屏幕

               echo   "Hello World" /data1/my.cnf    //打印到文件

               echo   "Hello World"  >> /data0/my.cnf    //打印追加到文件

           5.9删除

               rm    //删除

               rm  -r  //删除目录

               rm  -f    //强制删除

               rm  -rf   //常用命令  不可恢复

  •  打包压缩、查找

        6.1打包tar原理

             -z     压缩

             -c     打包

             -x     解包

             -f      必须要

             -C     指定解包位置

             -v      输出信息

    /usr/bin/zip

   /usr/bin/unzip

 

   /bin/gzip

   /bin/gunzip

          6..2打包tar命令(tar命令平常就代替了gz命令)

                  //将一个文件打包

                  # tar -cvf folder.tar file1.txt

                  //将多个文件打成一个包

                 # tar -cvf folder.tar file1.txt file2.txt

                 # tar -cvf file.tar *.jpg

                  //解包到当前目录

                 # tar -xvf folder.tar 

                 //解包到指定目录

                 # tar -xvf folder.tar -C /home/sss

                //将多个文件夹打包并压缩

                # tar -zvf file.tar.gz folder1  folder2

                //将文件解包并解压缩

                # tar -zxvf file.tar.gz  

          6.3使用tar备份指定目录/data0/内容包括子目录中内容备份至/data3/data0.tar.gz

               # tar -zcvf /data3/data0.tar.gz  /data0

          6.4恢复tar文件中的内容/data3/data0.tar.gz 至 /data2

               # tar -zxvf  /data3/data0.tar.gz -C /data2

          6.5  which  cmd 查找cmd命令所在路径    whereis

          6.6  locate文件查找 - 效率很快 (用的是数据库)

                 #locate httpd.conf   //查找文件所在

                 # updatedb    //更新数据库   使之生效

          6.7  find  文件查找 - 效率很慢

                 # find  / -name httpd.conf

                   find  路径  条件

          6.8 给shell命令起别名

                 vim /etc/bashrc

                 在文件最后一行添加

                 alias  cls = 'clear'

                 保存退出后输入#source /etc/bashrc生效

               

                  Linux别名设置和取消(暂时性,终端或者服务器关闭即失效)

                      查看命令别名:alias

                      设置命令别名 : alias  别名=’命令‘

                      取消命令别名 : unalias 别名

                  Linux别名设置和取消(永久生效):

                        办法就是将别名的设置加入~/.bashrc文件,然后重新载入下文件就可以了     

                         source ~/.bashrc

  •      特殊符号的含义

       cd  ~     //进入当前用户家目录

       cd  -    //回退到上一次所在位置

       cd  ../    //返回上一层目录

       cd  ./   //当前目录

  • 关闭防火墙

      //临时关闭

      service  iptables  status/start/stop/restart

      //永久关闭

       chkconfig  iptables  --list    //查看不同运行级别默认防火墙状态

       chkconfig iptables off/on  //永久关闭/开启

  • 网卡状态启动停止重启

      service network status/start/stop/restart

  • sudoer的配置

     普通用户想要使用root权限

     root用户执行  visudo  -f  /etc/sudoers

    

    在此处下面添加     普通用户名  ALL=(ALL)   ALL

    

    在此处下面添加     普通用户名  ALL=(ALL)   ALL

   

    此处修改为了免密操作

   修改完毕后切换到普通用户  执行命令  sudo+原先无法执行的命令 就修改完毕了。

  •    查看进程

  ps -aux

  ps -ef

  • 自启动

   chkconfig  服务名  on

  • 查看端口

  netstat -anp

  lsof -i

  • 负载

   w

   uptime

  • 内存查看

   top

   free

  • 磁盘查看

  df

  • 在默认的情况下,WC将计算指定文件的行数,字数,以及字节数使用的命令为:

   wc 文件名

  • 同步文件

   xsync

  • Expect是一个用来处理交互的命令。借助Expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。下文我们首先提出一个问题,然后介绍基础知四个命令,最后提出解决方法。

Expect中最关键的四个命令是send,expect,spawn,interact。

send:用于向进程发送字符串
expect:从进程接收字符串
spawn:启动新的进程
interact:允许用户交互

1. send命令

send命令接收一个字符串参数,并将该参数发送到进程。

expect1.1> send "hello world\n"
hello world

2. expect命令


(1)基础知识

expect命令和send命令正好相反,expect通常是用来等待一个进程的反馈。expect可以接收一个字符串参数,也可以接收正则表达式参数。和上文的send命令结合,现在我们可以看一个最简单的交互式的例子:

expect "hi\n"
send "hello there!\n"

这两行代码的意思是:从标准输入中等到hi和换行键后,向标准输出输出hello there。

tips: $expect_out(buffer)存储了所有对expect的输入,<$expect_out(0,string)>存储了匹配到expect参数的输入。

比如如下程序:

expect "hi\n"
send "you typed <$expect_out(buffer)>"
send "but I only expected <$expect_out(0,string)>"

当在标准输入中输入

test
hi

是,运行结果如下

you typed: test
hi
I only expect: hi

(2)模式-动作

expect最常用的语法是来自tcl语言的模式-动作。这种语法极其灵活,下面我们就各种语法分别说明。

单一分支模式语法:

expect "hi" {send "You said hi"}

匹配到hi后,会输出"you said hi"

多分支模式语法:

expect "hi" { send "You said hi\n" } \
"hello" { send "Hello yourself\n" } \
"bye" { send "That was unexpected\n" }

匹配到hi,hello,bye任意一个字符串时,执行相应的输出。等同于如下写法:

expect {
"hi" { send "You said hi\n"}
"hello" { send "Hello yourself\n"}
"bye" { send "That was unexpected\n"}
}

3. spawn命令

上文的所有demo都是和标准输入输出进行交互,但是我们跟希望他可以和某一个进程进行交互。spawm命令就是用来启动新的进程的。spawn后的send和expect命令都是和spawn打开的进程进行交互的。结合上文的send和expect命令我们可以看一下更复杂的程序段了。

set timeout -1
spawn ftp ftp.test.com      //打开新的进程,该进程用户连接远程ftp服务器
expect "Name"             //进程返回Name时
send "user\r"        //向进程输入anonymous\r
expect "Password:"        //进程返回Password:时
send "123456\r"    //向进程输入don@libes.com\r
expect "ftp> "            //进程返回ftp>时
send "binary\r"           //向进程输入binary\r
expect "ftp> "            //进程返回ftp>时
send "get test.tar.gz\r"  //向进程输入get test.tar.gz\r

这段代码的作用是登录到ftp服务器ftp ftp.uu.net上,并以二进制的方式下载服务器上的文件test.tar.gz。程序中有详细的注释。


4.interact

到现在为止,我们已经可以结合spawn、expect、send自动化的完成很多任务了。但是,如何让人在适当的时候干预这个过程了。比如下载完ftp文件时,仍然可以停留在ftp命令行状态,以便手动的执行后续命令。interact可以达到这些目的。下面的demo在自动登录ftp后,允许用户交互。

spawn ftp ftp.test.com
expect "Name"
send "user\r"
expect "Password:"
send "123456\r"
interact

解决方法

上文中提到:

如何从机器A上ssh到机器B上,然后执行机器B上的命令?如何使之自动化完成?

下面一段脚本实现了从机器A登录到机器B,然后执行机器B上的pwd命令,并停留在B机器上,等待用户交互。具体含义请参考上文。

#!/home/tools/bin/64/expect -f
 set timeout -1  
 spawn ssh $BUser@$BHost
 expect  "*password:" { send "$password\r" }
 expect  "$*" { send "pwd\r" }
 interact

 

 

 

 

 

 

 

 

 

 

 

  

 

 

 

  

  

 

     

 

 

     

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值