渗透——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
原文地址:https://www.cnblogs.com/Sabia/p/basis_5.html