Kali 基础命令(二)
创始人
2024-02-20 21:12:24
0

Kali

目录

Kali

1-Linux常见目录

2.Linux基础命令

2-1  apt-get命令

2-2:  ls  ll  和 alias

2-3  花式grep

2-4  git命令

# 版本恢复

1、查看版本

# 多人操作 分支

2-5 sed(stream editor 流式编辑器)命令

2-6 awk命令详解

3.逻辑比较 &&  ||

# awk 流程控制, if,while 都是指令,指令必须放在 {}中

# 数组

# 格式化输出 column

# 显示可以登录的用户名

# 相同的key值做匹配

# 查看两个文件有重复值输出

# 查看两个文件没有重复值输出


 

1-Linux常见目录

/etc/shells                                   # 记录了当前Linux系统中所支持的shell版本

/etc/security/limits.conf        # 对系统的内存,cpu,最大打开文件数等资源进行限制。

/etc/hosts

/etc/profile                                 # 系统级环境变量和开始程序

# 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行

# 并从/etc/profile.d目录的配置文件中搜集shell的设置. 

/etc/cron.d/                                 # 定时任务目录

/etc/sysconfig/network                 # 网络

/etc/rc.d/init.d                         # 启动的配置文件和脚本

/etc/rc.d                                         # 启动的配置文件和脚本

/etc/passwd                                 # 用户信息文件

/etc/group                                         # 组信息文件

/etc/bashrc                                 # 系统级        为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. 

/var/log                                         # linux默认应用的日志路径

/var/log/cron                                 # 定时任务日志

/var/log/httpd/                         # Apache相关日志 mod_jk, access, error

/var/log/rpmpkgs                         # rpm packags

/var/spool                                         # 放置“假脱机(spool)”程序的目录,如mail、news、打印队列和其他队列工作的目录。每个不同的spool                                                                # 在/var/spool下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail 中。

/proc/version                                 # 查看linux版本信息

/proc/cpuinfo                                 # cpu 信息  命令:lscpu

/proc/meminfo                                 # 内存 信息

/proc/interrupts                         # 查看中断

/proc/loadavg                                 # 查看系统负载

/dev/null                                     # 丢弃的文件 , 一般 2>dev/null ,将错误信息放入文件

strings /dev/urandom                 # 生成随机字符串的设备文件

/var 包含 系统一般运行时要改变的数据。 通常这些数据所在的目录的大小是要经常变化或扩充的。原来/ v a r目录中有些内容是在/ u s r中的,但为了保持/ u s r目录的相对稳定,就把那些需要经常改变的目录放到/ v a r中了。每个系统是特定的,即不通过网络与其他计算机共享。

/bin                                                 # 该目录中存放Linux的常用命令,在有的版本中是一些和根目录下相同的目录。

/sbin                                                 # 该目录用来存放系统管理员的系统管理程序。

/etc                                                 # 该目录存放了系统管理时要用到的各种配置文件和子目录,

# 例如网络配置文件、文件系统、X系统配置文件、设备配置信息、设置用户信息等。

/home                                                 # 用来存放该用户独立数据的主目录。

/lib                                                 # 该目录用来存放系统动态连接共享库,几乎所有的应用程序都会用到该目录下的共享库

/lost+found                                 # 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。

/mnt                                                 # 该目录在一般情况下也是空的,你可以临时将别的文件系统挂在该目录下。

/proc                                                 # 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的

/root                                                 # 如果你是以超级用户的身份登录的,这个就是超级用户的主目录

/tmp                                                 # 用来存放不同程序执行时产生的临时文件

/boot                                                 # 该目录下存放的都是系统启动时要用到的程序,当用lilo引导Linux时,会用到这里的一些信息

/dev                                                 # 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,

# 你可以访问这些外部设备,与访问一个文件或一个目录没有区别。

# 键入"cd /dev/cdrom",就可以看到光驱中的文件;键入"cd /dev/mouse"即可看鼠标的相关文件。

2.Linux基础命令

sh  执行脚本 :新创建一个bash 在bash下执行脚本

source 执行脚本:在当前bash执行脚本

2-1  apt-get命令

apt-get 命令是 Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本。

相比较Windows,需要打开应用商店,搜索软件,然后才能下载,安装。

Ubuntu只需要知道要下载的软件名一条命令就可以完成。

# 下载包目录:/var/cache/apt/archives

# 安装应用目录:/usr/share或/usr/local

apt-get install 软件名

# 删除已安装的软件包(保留配置文件),不会删除依赖软件包,保留配置文件;

apt-get remove 软件名

# 删除已经安装过的的软件安装包;即自动将/var/cache/apt/archives/下的所有deb删掉

apt-get clean

# 搜索:系统会列出与名称相匹配的包

apt-cache search

# 更新

apt-get update 是更新软件列表,

apt-get upgrade 是更新软件。

2-2:  ls  ll  和 alias

ls 是打印出当前目录的列表

ls -l 可以看到详细信息

ll 与 ls -l 的效果一样的

但是并不是有ll这个命令而是在环境变量中设置了别名

vi ~/.bashrc

在文末添加:

alias ll='ls -l --color=auto'

alias name=value                         # =两边不能有空格,可以自定义一些命令

source ~/.bashrc

2-3  花式grep

# 找到id_all.txt中所有不在id_1k.txt中的字符串           取反 字符串匹配 全部匹配 指定规则文件

grep -v -F -w -f id_1k.txt id_all.txt

-i 或 --ignore-case : 忽略字符大小写的差别。

-F 或 --fixed-regexp : 将样式视为固定字符串的列表。

-v 或 --invert-match : 显示不包含匹配文本的所有行。

-w 或 --word-regexp : 只显示全字符合的列。

-E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。

-q 或 --quiet或--silent : 不显示任何信息。

-f<规则文件> 或 --file=<规则文件> : 指定规则文件,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。

# grep 多种规则 ^$ 去除空行

grep -E'(John|Jerry|^$)' roster.txt

# 通过pgrep来获得正在被调度的进程的相关信息

pgrep -l 程序名

-l:同时显示进程名和PID

# fgrep 因为它搜索字符串而不是搜索匹配表达式的模式。 命令使用快速的压缩算法。

fgrep 使用相当于 grep -F 的效果

# egrep

egrep命令检索扩展的正则表达式

2-4  git命令

# 用户标识(必须配置)

git config user.name "username"

git config user.email "email"

git config --global user.name "zhangyiqian"  #名称

git config --global user.email 496115313@qq.com  #邮箱

# 局部配置

git config user.name "username"

git config user.email "email"

# 显示中文

git config --global core.quotepath false

# 初始化

git init

# git操作

git status                                                          # 查看文件状态

git add .                                                                  # 所有文件提交到暂存区

git commit -m "new file"  # 提交信息

git push                                                                   # push 到远程仓库

# 忽略文件 .gitignore

*.txt                                    # 忽略.txt结尾文件

!lib.txt                                #lib.txt        除外

/temp                                                # 忽略 /temp下所有文件

# 远程

ssh-keygen      # 生成公钥,免密登录

id_rsa.pub      # 公钥添加到gitee

# 版本恢复

1、查看版本

git log

# 方法1 git reset --hard 目标版本号

git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本

# 方法2 git revert -n  目标版本号

git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的。

比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用 git revert 命令来反做版本二,生成新的版本四,这个版本四里会保留版本三的东西,但撤销了版本二的东西。

# 多人操作 分支

git branch                                                                                 # 列出本地分支

git branch -r                                                                        # 列出远程分支

git branch [branch-name]                        # 新建分支

git checkout -b [branch]                        # 新建并切换分支

git merge [branch]                                                # 合并指定分支到当前分支

git checkout -d [branch]                        # 删除分支

git push origin --delete [branch-name] # 删除远程分支

git branch -dr [branch]                                # 删除远程分支

# 远程分支使用

git checkout -b new_branch                 # 本地新建分支

git push <远程> <分支>                                  # 提交到远程

2-5 sed(stream editor 流式编辑器)命令

# 语法

sed [-hnV][-e