• 渗透——linux基础


    (有些图片未能显示 自己尝试才行)
     
     
    一、常用的文件、目录操作命令
    这是我们使用得最多的命令了,Linux最基础的命令!
    • 可用  pwd命令查看用户的当前目录
    • 可用 cd 命令来切换目录
    • .表示当前目录
    • .. 表示当前目录的上一级目录(父目录)
    • -表示用 cd 命令切换目录前所在的目录
    • ~ 表示用户主目录的绝对路径名
    绝对路径:
    • 以斜线(/)开头 ,描述到文件位置的完整说明 ,任何时候你想指定文件名的时候都可以使用
    相对路径 :
    • 不以斜线(/)开头 ,指定相对于你的当前工作目录而言的位置 ,可以被用作指定文件名的简捷方式
    tips:输入命令的时候要常用tab键来补全
    • ls:显示文件或目录信息
    • mkdir:当前目录下创建一个空目录
    • rmdir:要求目录为空
    • touch:生成一个空文件或更改文件的时间
    • cp:复制文件或目录
    • mv:移动文件或目录、文件或目录改名
    • rm:删除文件或目录
    • ln:建立链接文件
    • find:查找文件
    • file/stat:查看文件类型或文件属性信息
    • cat:查看文本文件内容
    • more:可以分页看
    • less:不仅可以分页,还可以方便地搜索,回翻等操作
    • tail -10: 查看文件的尾部的10行
    • head -20:查看文件的头部20行
    • echo:把内容重定向到指定的文件中 ,有则打开,无则创建
    • 管道命令 | :将前面的结果给后面的命令,例如:ls -la | wc,将ls的结果加油wc命令来统计字数
    • 重定向 > 是覆盖模式,>> 是追加模式,例如:echo "Java3y,zhen de hen xihuan ni" > qingshu.txt把左边的输出放到右边的文件里去
    二、文件打包和压缩命令
      
      
    压缩的方式也是有好几种,我们常用的有下面这三种:
    • gzip
    • bzip2
    • tar
    常用的压缩的命令就有:
    • gzip filename
    • bzip2 filename
    • tar -czvf filename
    常用的解压命令有:
    • gzip -d filename.gz
    • bzip2 -d filename.bz2
    • tar -xzvf filename.tar.gz
     三、正则表达式+grep
    1、正则表达式
      
          
      
    2、grep命令
      grep(global search regular expression)是一个强大的文本搜索工具。grep 使用正则表达式搜索文本,并把匹配的行打印出来。
      格式:grep [options] PATTERN [FILE...]
    • PATTERN 是查找条件:可以是普通字符串、可以是正则表达式,通常用单引号将RE括起来。
    • FILE 是要查找的文件,可以是用空格间隔的多个文件,也可是使用Shell的通配符在多个文件中查找PATTERN,省略时表示在标准输入中查找。
    • grep命令不会对输入文件进行任何修改或影响,可以使用输出重定向将结果存为文件
    例子:
    • 在文件 myfile 中查找包含字符串 mystr的行 
        grep -n mystr myfile 
    • 显示 myfile 中第一个字符为字母的所有行 
        grep  '^[a-zA-Z]'  myfile 
    • 在文件 myfile 中查找首字符不是 # 的行(即过滤掉注释行) 
        grep -v '^#' myfile 
    • 列出/etc目录(包括子目录)下所有文件内容中包含字符串“root”的文件名
        grep -lr root /etc/* 
    四、系统管理命令
      stat              显示指定文件的详细信息,比ls更详细
      who               显示在线登陆用户
      whoami          显示当前操作用户
      hostname      显示主机名
      uname           显示系统信息
      top                动态显示当前耗费资源最多进程信息
      ps                  显示瞬间进程状态 ps -aux
      du                  查看目录大小 du -h /home带有单位显示目录信息
      df                  查看磁盘大小 df -h 带有单位显示磁盘信息
      ifconfig          查看网络情况
      ping                测试网络连通
      netstat          显示网络状态信息
      man                命令不会用了,找男人  如:man ls
      clear              清屏
      alias               对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
      kill                 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
    五、远程登录与NFS
      Telnet是Internet提供的一项基本服务,用来将本地计算机作为远程计算机的终端机使用。 
      telnet 主机名或IP地址 
      exit或logout命令退出 
      telnet以明文传输不安全,因此禁止root身份登录 
      SSH 主机名或IP地址 //作为telnet的替代,以公开密钥算法加密数据,允许root登录
      scp 本地文件路径 远程用户名@主机:文件路径 //用于本地与远程计算机之间安全拷贝文件 如: 
        scp z3@202.207.30.136:a.txt
      sftp 远程用户名@主机 //以安全模式进入ftp状态,此时可执行该状态下的命令: 
      get 远程路径 本地路径 //下载 
      put 本地路径 远程路径 //上传 
      quit 退出 
      ? //列出该状态可使用的命令清单,其中不少同Linux Bash命令如mkdir、cd、ls等,都是针对被登录机操作,若对本地机操作,则在命令前加字母l,如lmkdir、lls等
      NFS(Network File System):通过网络将远程主机的文件系统挂载到本地主机目录下,以便于使用,它基于客户机/服务器模式,建立在TCP/IP协议的表示层协议与会话层协议机制之上。
    六、vim程序编辑器
      vim是vi文本编辑器的进阶版,在所有linux系统上均可使用,被称为“编辑器之神”。
      vi分为三种模式:一般模式,编辑模式和指令列命令模式 
      vi hello.c //进入hello.c文件,此时为一般模式,若hello.c不存在则自动新建 
      一般模式下执行vi定义的键盘上转义字符操作,del为删除光标上字符,dd为删除一整列,退格键及上下左右键移动光标,i进入插入光标前编辑模式,a进入插入光标后编辑模式,r进入改写编辑模式; 
      编辑模式下键盘上所有按键除ESC外都可输入字符,如上下左右键分别代表ABCD大写字母,按ESC退出编辑;
      在一般模式下按:进入指令列模式,最下面一行为指令列,wq保存并退出。
    七、gcc编程
      gcc中库的链接顺序是从右往左进行,所以要把最基础实现的库放在最后,这样左边的lib就可以调用右边的lib中的代码。同时,当一个函数的实现代码在多个lib都存在时,最左边的lib代码最后
    link,所以也将最终保存下来。
      objdump -T libmysqlclient.so //打开当前目录下的动态链接库libmysqlclient.so查看其中的API。objdump命令用来查看各种目标文件(elf文件)内部的结构 
      obidump -h hello.o //参数-h把hello.o各个段的基本信息打印出来,elf文件是分段的,通常分为Header、.data(数据段包括局部静态变量和全局变量)、.text(代码
    )、.rodata、.bss、.comment等 
      readelf -s hello.o //查看详尽段信息 
      gcc错误:undefined reference to function 该函数具体实现没有找到 
      info gcc //显示gcc的所有信息
    八、mysql操作
      SQL:Structured Query Language 
      netstat -tap|grep mysql //检查系统有没有已安装mysql,若socket显示listen则表示就绪。 
      mysql中unique key(唯一键)指除主键外确保某一列唯一性的约束,该列可包含NULL(空值);primary key为主键
      apt-get install mysql-server //安装mysql 
      mysql -u root -p //以root用户登录mysql server,之后需输入密码 
      show databases; show tables; //查看数据库和数据表单,注意在mysql server中输入指令以;结尾。 
      use mysql; //使用数据库mysql也可以在登录时输入指令: 
      mysql -D mysql -u root -p 
      quit; //退出 
      insert into students(id,name,sex) value(1,zhengfeng,man); //向students表中插入zhengfeng的信息 
      select * from students //输出students的所有信息,*是通配符,可指定为列名称
    1.   create table students(
    2.   id int(8) not null auto_increment,
    3.   name varchar(255) not null,
    4.   sex char(4) not null,
    5.   tel char(13) not null default “-”,
    6.   primary key(id),
    7.   unique key unique_name(name)
    8.   );  
      describe students //输出表结构信息 
      mysql_config --libs //使用mysql_config工具确定MySql程序的链接参数,同理,若需确定编译参数,使用mysql_config –include
    九、redis操作
      注:redis是一个高性能的key-value数据库,由ANSI C编写,支持网络,它支持的value类型包括string、list(字符串链表)、set(字符串集合)、zset(字符串有序集合)、hash(字符串哈希类型)。 
      竞态条件和原子操作的概念:
      原子操作指该命令在执行过程中不会被其他插入命令打断,是“一气呵成”的; 
      竞态条件:指一个系统或进程的输出,依赖于不受控制事件出现的顺序或时机,若多个客户端连接到redis,同时执行多项命令时有可能出现竞态条件,关于此问题的深入讨论在《链接、装载和库》中详细提及。
      apt-get install redis-server //安装redis 
      netstat -nlt grep|6379 //查看系统中redis运行状态,listen为就绪
      redis-cli //进入redis命令行客户端,cli:command line interface 此为进入交互模式,可自由输入命令。 
      select 1 //选择1号数据库,redis实例默认自带16个数据库,以数字编号,可通过配置文件更改。
     
     

    欢迎关注我的私人博客: https://arg1nt.gitee.io/2021/03/01/go/#more
  • 相关阅读:
    Java包装类
    Java锁机制ReentrantLock
    Java内部类介绍
    JAVA多线程学习六-守护线程
    JAVA多线程学习五:线程范围内共享变量&ThreadLocal
    JAVA多线程学习四
    Maven之阿里云镜像仓库配置
    JAVA多线程学习- 三:volatile关键字
    ansible学习(二)- 清单配置详解
    Java多线程学习(二)
  • 原文地址:https://www.cnblogs.com/Sabia/p/basis_5.html
Copyright © 2020-2023  润新知