目录
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值做匹配
# 查看两个文件有重复值输出
# 查看两个文件没有重复值输出
/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"即可看鼠标的相关文件。
sh 执行脚本 :新创建一个bash 在bash下执行脚本
source 执行脚本:在当前bash执行脚本
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 是更新软件。
ls 是打印出当前目录的列表
ls -l 可以看到详细信息
ll 与 ls -l 的效果一样的
但是并不是有ll这个命令而是在环境变量中设置了别名
vi ~/.bashrc
在文末添加:
alias ll='ls -l --color=auto'
alias name=value # =两边不能有空格,可以自定义一些命令
source ~/.bashrc
# 找到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命令检索扩展的正则表达式
# 用户标识(必须配置)
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
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 <远程> <分支> # 提交到远程
# 语法
sed [-hnV][-e