xshell 常用命令

发布时间 2023-06-23 10:46:12作者: 阿东123

Linux 常用命令

  • 工具
    • xshell 工具

        链接:https://pan.baidu.com/s/1gLwhcbPQuRbOWK87sjTmBQ
        提取码:ep4n

    • putty 工具

        下载地址:https://www.putty.org/

 

  • xshell 常用快捷键

    # 停止日志
    chrl+s  
      
    # 继续日志
    ctrl+q
    
    # 中断日志
    ctrl+C
    
    # 挂载 
    ctrl+z
    
    # ' 单引号进入>状态 
    
    # 退出状态
    ctrl+d  
    
    # 透明窗口
    ALT + R

     

  • 常用命令 
    • 查看服务状态
      # 查看服务启停状态
      service xxx status

       

    • 启动/停止服务
      # 启动服务
          service xxx start
      # 停止服务
          service xxx stop

       

    • 更改文件属性
      # chgrp:变更文件或目录的所属群组,允许普通用户改变文件所属的组,只要该用户是该组的一员。
      # -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
      # -v 显示指令执行过程。
      # 直接更改组  
      chgrp -v 组名 文件
      
      # 根据文件更改组
      chgrp -v --reference=文件1 文件2
      
      # chown:更改文件属主,也可以同时更改文件属组
      chown 属主名 文件名
      
      # chmod:更改文件权限,两种设置方法,
      # 数字 r=4,w=2,x=1,
      # 符号 -rwxrwxrwx
      chmod 777 文件   # 全部可读可写可执行 
      chmod a+r 文件 # 全部增加可读权限
      chmod ug=rwx,o=x 文件 # 除其他用户仅可执行,主和组成员均可读可写可执行
      chmod 4755 filename # root 的权限

       

    • 命令sudo 以系统管理者的身份执行指令
      # 以管理员执行命令
      sudo 命令
      
      #eg:
      # 显示目录
      sudo ls
      
      # 修改服务器日期(时间保持原样)
      sudo date -s "2021-08-27 'date +%T'"
      
      # 频繁使用root权限操作命令,提示输入密码为当前用户密码而非root密码
      sudo -i

       

       

    • 命令date 日期
      # 显示当前时间
      date 
      
      # 修改服务器日期(时间保持原样)
      date -s "2021-08-27 17:30:30"

       

    • 命令ls 查看目录
      # 查看目录名称:
      ls

      # 查看目录详情: ls -l 或 ll # 第一个字符代表这个文件类型: d 则是目录, - 则是文件, # 三个为一组的代表权限,且位置不会改变:r 代表可读(read)、 w 代表可写(write)、 x代表可执行(execute) 、没有权限用-代表 # 示例: drwxr-xr-x # 0位-->d:目录文件; 123位-->rwx:属主权限 可读可写可执行;456位-->r-x:属组权限 可读不可写可执行; 789位-->r-x 可读不可写可执行

       

      ls -lh # size 使用KB/M/G 易读显示
      
      ls -l *.doc # 列出当前目录以。doc结尾的所有文件
      
      ls -la # 给出当前目录下所有文件的一个长列表,包括以. 开头的“隐藏”文件
      
      ls a* # 列出当前目录下以字母a开头的所有文件

        

    • 命令cd  更改目录
      cd ~ # 切换到主目录 
      cd /tmp # 切换到目录/tmp 
      cd dir # 切换到当前目录下的dir目录 
      cd / # 切换到根目录 
      cd .. # 切换到到上一级目录 
      cd ../.. # 切换到上二级目录 
      cd ~ # 切换到用户目录,比如是root用户,则切换到/root下 

        

    •  命令pwd  查看当前路径
      pwd

       

    •   命令mkdir 创建目录
      # 正常创建目录
      mkdir 目录名
      
      # 递归创建多层目录
      mkdir -p 目录1/目录11/目录111
      
      # 创建包含权限的目录(eg: rwx--x--x )
      mkdir -m 711 目录

       

    •  命令rmdir 删除空目录
      # 可删除空目录,存在文件的目录需要使用rm
      rmdir 目录/
      
      # 连同上一级空目录删除
      rmdir -p 目录/子目录1/子目录11/子目录111

       

    •  命令touch 创建或修改文件(时间属性)
      # 文件不存在,创建一个空白文件
      touch 文件名
      
      # 文件存在 ,修改文件时间为当前时间
      touch 文件名

       

    • 重定向文件
      # 打印文本到控制台
      echo "打印文本到控制台"
      
      # 打印所有的文件或目录
      echo *
      
      # 打印内容重定向到一个文件
      echo "Hello World">xx.log
      
      # 清空文件内容        
      echo >xxx.log

       

    • 命令vim 编辑器
      # 三种模式,命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)
      vim 文件    # 编辑文件
      i     # 编辑
      esc  # 退出编辑
      :wq  # 保存并退出
       
      # 命令模式
      i # 切换到输入模式
      x # 删除当前光标所在处的字符
      : # 切换到底线命令模式,以在最底一行输入命令
      
      # 输入模式 ,键盘按键生效
      esc #退出输入模式
      
      # 底线命令模式
      q # 退出程序
      w # 保存文件

       

    • 命令cp 复制文件 
      # -v: 告诉用户正在做什么
      # -i:若目标存在,在覆盖前询问用户 
      # -p:连同文件的属性一起复制过去 (常用于备份)
      # -r:递归持续复制
      # -a:相当於 -pdr 的意思
      
      #把文件1复制为新文件
      cp 文件1 新文件 
      
      # 把文件从当前目录复制到/home/usr/目录下 
      cp 文件 /home/usr/ 
      
      # 把当前目录下的所有未隐藏文件复制到/tmp/目录下 
      cp * /tmp 
      
      # 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项 
      cp -a docs docs.bak 

        

    •  命令mv 移动或重命名
      # 将文件1重命名为文件2 
      mv 文件1 文件2
      
      # 把当前目录下的文件1 移动到/tmp/目录下
      mv 文件1 /tmp 

        

    •  命令rm 删除
      # 直接删除
      rm 文件
      
      # 强制删除不提示
      rm -f 文件
      
      # 询问用户是否删除
      rm -i 文件
      
      # 递归删除,可删除目录
      rm -r 文件
      
      #递归删除全部数据 
      rm -rf *
      
      # 删除a开头的所有数据
      rm -rf a*

       

       

    •   命令df  检查文件系统的磁盘空间占用情况
      # 列出磁盘所有文件系统
      df 
      
      # 以 KBytes 的容量显示各文件系统
      df -k
      
      # 易读展示
      df -lh
      
      # -a 所有文件

       

    • 命令du 查看使用空间 
      # -s  列出总量
      # -h 易读的容量格式 (G/M) 显示
      # 查看当前目录总大小
      du –sh
      
      # 查看当前目录下各文件 总大小
      du -sh *
      
      # 根目录底下每个目录所占用的容量
      du -sm /*

       

    •  命令rz 本地文件上传 
      # 从本地选择文件上传到服务器
      rz # 弹出选择框
      
      # 覆盖原文件上传
      rz   -y

       

    •  命令sz 下载到本地
      # 将选定的文件发送到本地机器
      sz 文件

       

    • 命令scp 远程拷贝文件

      # 基于 ssh 登陆进行安全的远程文件拷贝命令;加密的
      # -r: 递归复制整个目录
      scp 复制的资源路径 粘贴的路径
      
      # 从远程复制到本地
      scp 用户@地址:路径 路径
      
      # 从本地复制到远程
      scp 文件 用户@地址:路径
      
      ##### 拓展 #####
      rcp 用户@地址:路径 路径    远端复制到本地(不加密)

       

    • 命令top 实时显示进程动态
      # 显示进程信息
      top
      
      # 设置信息更新次数 (更新2次后终止)
      top -n 2
      
      # 设置信息更新时间 周期单位s
      top -d 3

         

    • 命令ps 显示当前进程状态
      # 查看后台启动项
      ps
      
      # 列出所有进程
      ps -A
      
      # 查找指定进程
      ps -ef | grep 进程关键字
      
      # 显示所有包含其他使用者的行程 (-au 显示较详细的信息)
      ps -aux
      
      ###### 拓展 ######
      # 重启bin:
      ../exec_bin ''
      # 后台启动:
      exec_bin &
      # 前台启动:
      exec_bin

       

    • 命令jobs 查看进程号 
      # 查看已挂载的程序
      jobs

       

    • 命令kill 删除执行中的程序或工作
      # 1 (HUP):重新加载进程。
      # 9 (KILL):杀死一个进程。
      # 15 (TERM):正常停止一个进程。
      # 显示信号
      kill -l 
      
      # 杀死进程
      kill 进程号
      
      # 强制杀死进程
      kill -KILL 进程号
      
      # 发送SIGHUP信号,可以使用一下信号
      kill -HUP pid
      
      # 彻底杀死进程
      kill -9 进程号

       

    • 命令killall 杀死一个进程  
      # 与kill不同 killall会杀死指定名字的所有进程
      killall 进程名

       

    •  查看文件内容
      • 命令 head 

        # 显示文件前十行
        head 文件
        
        # 显示文件前五行
        head -n 5 文件
        
        # 显示文件前20个字节
        head -c 20 文件

         

      •  命令tail 
        # 显示文件后200行并持续打印正在改变的日志文件 
        tail -200f 文件

         

      •  命令cat 
        # 文档内容加上行号后输入新文件里
        cat -n 文件 > 新文件
        
        # 文档内容加上行号(空白行不加)之后将内容附加新文件
        cat -b 文件1 文件2 >> 新文件
        
        # 清空 /etc/test.txt 文档内容:
        cat /dev/null > /etc/文件
        
        # 根据关键词查看日志
        cat xxx.log |grep -C 10 '关键字'

          

      • 命令more
        # 类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读
        # 逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
        more -s 文件
        
        # 从第 20 行开始显示
        more +20 文件

          

      • 命令less
        # 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页
        # 查看文件
        less 文件
        
        # ps查看进程信息并通过less分页显示
        ps -ef |less
        
        # 浏览多个文件 n 向后切换,p 向前切换
        less 文件1 文件2

         

      • 命令 grep 
        # grep 关键词查找,查找文件里符合条件的字符串
        grep 关键字 文件
        
        # 递归查找 -r(包含关键字)
        grep -r 关键字 文件
        
        #  反显查找-v(不包含关键字)
        grep -v 关键字 文件
        
        # 关联查找
        cat 文件名 | grep -C 20 '关键字' 显示匹配关键字的上下20行
        cat 文件名 | grep -B 20 '关键字' 显示关键字及前20行
        cat 文件名 | grep -A 20 '关键字' 显示关键字及后20行

          

      •  命令diff
        # diff 比较文件的差异
        diff 文件1 文件2
        
        # 以并列的方式显示文件的异同之处 并设置列宽
        diff 文件1 文件2  -y -W 50

         

    •  命令reboot 重启
      # 重启服务器
      reboot 

       

    • xshell 操作sqlite数据库
      # 进入数据库:
      sqlite3 数据库名    
      
      # 退出数据库:
      crtl+c 
      
      ##### 拓展 #####
      # 查询表:
      select * from 表;
      
      # 显示方式 行
      .mode line
      
      # 修改数据:
      update 表名 set 列1= 'value1' where 列2= 'value2';
      
      # 查询所有表:
      .tables 
      
      # 查询表结构:
      PRAGMA table_info(表名)

    

    • xargs 替换工具,读取输入数据重新格式化后输出
      参数:
        -a file 从文件中读入作为 stdin
        -e flag ,注意有的时候可能会是-E,flag必须是一个以空格分隔的标志,当xargs分析到含有flag这个标志的时候就停止。
        -p 当每次执行一个argument的时候询问一次用户。
        -n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
        -t 表示先打印命令,然后再执行。
        -i 或者是-I,这得看linux支持了,将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
        -r no-run-if-empty 当xargs的输入为空的时候则停止xargs,不用再去执行了。
        -s num 命令行的最大字符数,指的是 xargs 后面那个命令的最大命令行字符数。
        -L num 从标准输入一次读取 num 行送给 command 命令。
        -l 同 -L。
        -d delim 分隔符,默认的xargs分隔符是回车,argument的分隔符是空格,这里修改的是xargs的分隔符。
        -x exit的意思,主要是配合-s使用。。
        -P 修改最大的进程数,默认是1,为0时候为as many as it can ,这个例子我没有想到,应该平时都用不到的吧。   

       

        
    • find 指定目录下查找文件
      • 语法 
        find 搜索路径 [选项] 搜索内容

        Tips:第一个参数用来指定搜索路径; 第二个参数用来指定搜索内容。

      • 按文件名搜索 选项:
        -name: 按照文件名搜索;
        -iname: 按照文件名搜索,不区分文件名大小;
        -inum: 按照 inode 号搜索;
      •  find 命令是完全匹配的,必须和搜索关键字一模一样才会列出
      •  按文件大小搜索 选项
        -size[+-]大小:按照指定大小搜索文件
      • 按修改时间搜索 选项
        -atime [+-]时间: 按照文件访问时间搜索
        -mtime [+-]时间: 按照文改时间搜索
        -ctime [+-]时间: 按照文件修改时间搜索

          

      •  按权限搜索 选项
        -perm 权限模式:査找文件权限刚好等于"权限模式"的文件
        -perm -权限模式:査找文件权限全部包含"权限模式"的文件
        -perm +权限模式:査找文件权限包含"权限模式"的任意一个权限的文件

         

      •   按所有者和所属组搜索 选项
        -uid 用户 ID  按照用户 ID 査找所有者是指定 ID 的文件
        -gid 组 ID   按照用户组 ID 査找所属组是指定 ID 的文件
        -user 用户名  按照用户名査找所有者是指定用户的文件
        -group 组名  按照组名査找所属组是指定用户组的文件
        -nouser   査找没有所有者的文件
        -nogroup 查询没有所属组的文件

         

      •  按文件类型搜索 选项
        -type d:查找目录
        -type f:查找普通文件
        -type l:查找软链接文件

         

      •  逻辑运算符 
        -a:and逻辑与
        -o:or逻辑或
        -not:not逻辑非

         

      •  操作查找到的文件
        -print  打印输出。 默认的选项,即打印出找到的结果。
        -exec  对搜索到的文件执行特定的操作,固定的格式为:-exec 'commond' {} \;   注意:{} 表示查询的结果。
        -ok  和 -exec 的功能一样,只是每次操作都会给用户提示
        
            举例1: 搜索 /etc 目录下的文件(非目录),文件以 conf 结尾,且大于 10k,然后将其删除。
                find /etc -type f -name '*.conf' -size +10k -exec rm -f {} \;
        
            举例2: 将 /data/log/ 目录下以 .log 结尾的文件,且更改时间在 7 天以上的删除。
                find /data/log -name '*.log' -mtime +7 -exec rm -f \;
        
            举例3: 搜索条件同 例1 一样,但是不删除,只是将其复制到 /root/conf 目录下
                find /etc -type f -name '*.conf' -size +10k -exec cp {} /root/conf/ \;