首页 > 系统相关 >学习笔记-God-Linux

学习笔记-God-Linux

时间:2022-11-04 15:12:56浏览次数:75  
标签:tmp .. popd God 笔记 cd Linux test 目录

God-Linux


bash

# 判断当前是否是登陆式或非登陆式 shell
echo $0

# 上一个命令的最后一个参数.例如:上一条命令(vim test.txt),cat !$ = cat test.txt
!$

# 以 root 身份运行最后一个命令
sudo !!

# 一个命令创建项目的目录结构
mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}

# 筛选出命令中错误的输出,方便找到问题
yum list 1 > /dev/null

# 优雅的使用 linux
alias please="sudo"

# 没用但有趣的东西.
P=(' ' █ ░ ▒ ▓)
while :;do printf "\e[$[RANDOM%LINES+1];$[RANDOM%COLUMNS+1]f${P[$RANDOM%5]}";done

# 让 freebad 机器叫出声
echo “T250L8CE-GE-C” > /dev/speaker
echo “O1L15aO2L15bO3L15cO4L15d” > /dev/speaker

# 在不使用 chmod 的情况下运行脚本
. ./test.sh
{.,./test.sh}
bash < test.sh
cat test.sh|sh
curl -s file://`pwd`/test.sh | sh

# 直接覆盖预原文件
sudo tee xxx.txt <<-'EOF'
aaa
bbb
test
EOF

# hex 转 ASCII
echo -e "\x68\x65\x6c\x6c\x6f"

cd

切换到上一个目录

cd -

创建时进入文件夹

mkdir /tmp/test && cd $_

使用 CDPATH 定义 cd 命令的基本目录

cd mail
-bash: cd: mail: No such file or directory

export CDPATH=/etc
cd mail
/etc/mail

有效率的向上移动

# cd ../../../../

alias ..4="cd ../../../.."
alias .....="cd ../../../.."
alias cd.....="cd ../../../.."
alias cd4="cd ../../../.."

..4
.....
cd.....
cd4

使用 dirs, pushd 和 popd 操作目录堆栈

# 如何使用 pushd 和 popd? 让我们首先创建一些临时目录,并将它们推入目录堆栈,如下所示。
mkdir /tmp/dir1
mkdir /tmp/dir2
mkdir /tmp/dir3
mkdir /tmp/dir4

cd /tmp/dir1
pushd .

cd /tmp/dir2
pushd .

cd /tmp/dir3
pushd .

cd /tmp/dir4
pushd .

dirs
# 在这个阶段,目录堆栈包含以下目录
# /tmp/dir4
# /tmp/dir3
# /tmp/dir2
# /tmp/dir1

# 最后一个被推送到堆栈中的目录将在顶部。当执行 popd 时,它会 cd 到堆栈中最上面的目录项,并将其从堆栈中删除。最后推送到栈中的目录是 /tmp/dir4,所以,当我们执行 popd 时,会 cd 到 /tmp/dir4,并从目录栈中删除,如下所示。

popd
pwd
# 在这个阶段,目录堆栈包含以下目录
# /tmp/dir3
# /tmp/dir2
# /tmp/dir1

popd
pwd
# 在这个阶段,目录堆栈包含以下目录
# /tmp/dir2
# /tmp/dir1

popd
pwd
# 在这个阶段,目录堆栈包含以下目录
# /tmp/dir1

popd
pwd
# 在 popd 后,目录 Stack 为空!

popd
-bash: popd: directory stack empty

使 cd 不区分大小写

bind "set completion-ignore-case on"

net

# 在当前目录起个 8000 端口的 HTTP 服务
python -m SimpleHTTPServer 8000

# 查看自己的外网地址
curl ifconfig.me

无依赖下载(仅支持http)

#!/bin/bash
# 无依赖的http下载
# https://zgao.top/linux%e5%9c%a8%e6%b2%a1%e6%9c%89curl%e5%92%8cwget%e7%9a%84%e6%83%85%e5%86%b5%e4%b8%8b%e5%a6%82%e4%bd%95%e7%94%a8shell%e5%ae%9e%e7%8e%b0%e4%b8%8b%e8%bd%bd%e5%8a%9f%e8%83%bd/
# https://github.com/c4pr1c3/cuc-ns/blob/master/chap0x07/exp/webgoat/wget.sh

function DOWNLOAD() {

    local URL=$1

    if [ -z "${URL}" ]; then
        printf "Usage: %s \"URL\" [e.g.: %s http://www.xxx.com/test.json]" \
            "${FUNCNAME[0]}" "${FUNCNAME[0]}"
        return 1;
    fi

    read proto server path <<< "${URL//"/"/ }"
    DOC=/${path// //}
    HOST=${server//:*}
    PORT=${server//*:}
    [[ x"${HOST}" == x"${PORT}" ]] && PORT=80

    exec 3<>/dev/tcp/${HOST}/$PORT
    echo -en "GET ${DOC} HTTP/1.0\r\nHost: ${HOST}\r\n\r\n" >&3
    while IFS= read -r line ; do
        [[ "$line" == $'\r' ]] && break
    done <&3
    nul='\0'
    while IFS= read -d '' -r x || { nul=""; [ -n "$x" ]; }; do
        printf "%s$nul" "$x"
    done <&3
    exec 3>&-
}

DOWNLOAD "$1"

shell

fork 炸弹

:(){:|:&};:

Thanos

This command could delete half your files randomly

#!/bin/sh
let i=`find . -type f | wc -l`/2 ; find . -type f -print0 | shuf -z -n $i | xargs -0 -- cat

# Explaination
## Step 1: Get the count of files in current path divided by two.
## Step 2: Get all the files in current path and print in one line.
## Step 3: Turn half of the second step output into standard input randomly.
## Step 4: Show half of the files in terminal.

# Key Point
## If you want to make delete, what you need to do is turn 'cat' into 'rm'.

VIM

无 root 权限,保存编辑的文件
:w !sudo tee %

性能

sync    # sync 命令做同步,以确保文件系统的完整性,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延的块 I/O 和读写映射文件.否则在释放缓存的过程中,可能会丢失未保存的文件.
echo 1 > /proc/sys/vm/drop_caches   # 清理 pagecache(页面缓存)
echo 2 > /proc/sys/vm/drop_caches   # 清理 dentries(目录缓存)和inodes
echo 3 > /proc/sys/vm/drop_caches   # 清理 pagecache、dentries 和 inodes
sync

# 取消开启文件数限制
ulimit -n 65535

# 优化内存
echo 128 > /proc/sys/vm/nr_hugepages        # 默认为0
sysctl -w vm.nr_hugepages=128

文本

计算文本文件中的单词出现次数

grep -o -i test example.txt | wc -l         # 计算"test"出现在文件中的次数

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:tmp,..,popd,God,笔记,cd,Linux,test,目录
From: https://www.cnblogs.com/haidragon/p/16857833.html

相关文章

  • 学习笔记-Secure-Linux
    Secure-LinuxLinux加固+维护+应急响应参考文档内容仅限Linux,web服务和中间件的加固内容请看加固大纲文件可疑文件文件恢复系统密码重置会话......
  • 详解随机森林-机器学习中调参的基本思想【菜菜的sklearn课堂笔记】
    视频作者:[菜菜TsaiTsai]链接:[【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili]调参的方式总是根据数据的状况而定,所以没有办法一概而论那我......
  • 学习笔记-Iptables
    Iptables什么是iptablesLinux系统在内核中提供了对报文数据包过滤和修改的官方项目名为Netfilter,它指的是Linux内核中的一个框架,它可以用于在不同阶段将某些钩子函......
  • 学习笔记-mysql
    mysqlmy.cnf配置文件port=3309socket=/usr/local/mysql/tmp/mysql.sock[mysqld]#服务器端配置!include/usr/local/mysql/etc/mysqld.......
  • 学习笔记-LAMP
    LAMPLAMP指的Linux(操作系统)、ApacheHTTP服务器,MySQL(有时也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台Mai......
  • 学习笔记-nfs 配置案例
    nfs配置案例案例1服务端在Centos上配置nfs服务以只读的形式方式共享目录/public(目录需要自己创建).yum-yinstallnfs-utilsvim/etc/exports/public......
  • 学习笔记-Nginx
    Nginx项目地址https://www.nginx.com/配置生成https://github.com/digitalocean/nginxconfig.io反向代理反向代理(ReverseProxy)方式是指以代理服务器来接受......
  • linux学习笔记-auditd
    auditdauditd.conf#目录或这个目录中的日志文件。log_file=/var/log/audit/audit.log#日志所属组log_group=root#审计应采用多少优先级推进守护进程。必须......
  • 学习笔记-Bandit-WalkThrough
    Bandit-WalkThrough免责声明本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.https://overthewire.org/wargames......
  • 【数据库数据恢复】LINUX环境EXT3文件系统下ORACLE数据库误删除的数据恢复案例
    数据库数据恢复环境:LINUXEXT3文件系统,部署ORACLE数据库。​数据库故障&分析:管理员在建立测试库时选错了服务器,在ORACLE数据库平台上CREATE了一套新库,创建至10%左右时发现......