Känner dock på mig att det är något man inte kommer använda, men däremot önska att man använt
Jag använder det en hel del. Enda problemet är att jag använder bash (ja, jag vet) utan något hjälpverktyg för att synkronisera historik, så ibland går historik förlorad p.g.a. att olika sessioner skriver över varandra.
En vettigare lösning är så klart att göra funktioner, alias eller separata script av dem, men man är ju rätt ofta lat.
Skriv ett W / Eller ett Berg beroende på hur du ställer in det, öka takten efter varje bounce, byt färg varje gång våran sträng studsar mot terminalens kanter, räkna ut bouncers i mitten så vi räknar antal kant stötningar.
Screensaver jag skapade nu.
Kod:
#!/bin/bash
ROWS=$(tput lines)
COLS=$(tput cols)
tput civis
trap "tput cnorm; exit" SIGINT
symbols=("@" "#" "%" "&" "*" "+" "-" "=" "!" "?" "/" "\\" "|" "(" ")" "[" "]" "{" "}" "<" ">" "^" "~" "," "." ":" ";" " ")
function random_color() {
local color_code="\e["
local colors=("31m" "32m" "33m" "34m" "35m" "36m" "91m" "92m" "93m" "94m" "95m" "96m")
echo -n "${color_code}${colors[$((RANDOM % ${#colors[@]}))]}"
}
function get_w_char() {
local col=$1
local middle_col=$((COLS / 2))
local symbol=${symbols[$((RANDOM % ${#symbols[@]}))]}
local color_code=${color_codes[$color_index]}
if [ $col -eq 0 ] || [ $col -eq $((COLS - 1)) ]; then
echo -ne "\e[0m${symbol}"
elif [ $col -lt $middle_col ] && [ $col -gt 0 ]; then
local distance=$((middle_col - col))
if [ $((distance % 2)) -eq 0 ]; then
echo -ne "${color_code}${symbol}"
else
echo -ne "${color_code}${symbol}"
fi
elif [ $col -eq $middle_col ]; then
echo -ne "${color_code}${symbol}"
else
local distance=$((col - middle_col))
if [ $((distance % 2)) -eq 0 ]; then
echo -ne "${color_code}${symbol}"
else
echo -ne "${color_code}${symbol}"
fi
fi
}
function display_bounce_counter() {
local counter=$1
local message="Bounces: $counter"
local message_length=${#message}
local center_row=$((ROWS / 2))
local center_col=$((COLS / 2 - message_length / 2))
tput cup $center_row $center_col
echo -n "$message"
}
function clear_screen() {
tput reset
}
function move_cursor() {
local row=$1
local col=$2
tput cup $row $col
}
function screensaver() {
local x=0
local y=0
local direction_x=1
local direction_y=1
local bounce_counter=0
local stop_x=$((COLS / 2))
local stop_y=$((ROWS / 2))
local color_codes=()
local color_index=0
local sleep_duration=0.03
local direction_change_timer=0
local max_direction_change_time=20
while true; do
color_codes+=($(random_color))
move_cursor $y $x
echo -n "$(get_w_char $x)"
sleep $sleep_duration
x=$((x + direction_x))
y=$((y + direction_y))
if [ $x -eq $stop_x ] && [ $y -eq $stop_y ]; then
sleep 0.2
direction_x=$((direction_x * -1))
direction_y=$((direction_y * -1))
color_index=$((color_index + 1))
sleep_duration=$(awk -v sleep_duration="$sleep_duration" 'BEGIN {print sleep_duration * 0.8}')
((bounce_counter++))
display_bounce_counter $bounce_counter
((direction_change_timer++))
if [ $direction_change_timer -ge $max_direction_change_time ]; then
direction_x=$((RANDOM % 3 - 1))
direction_y=$((RANDOM % 3 - 1))
direction_change_timer=0
fi
fi
if [ $x -ge $((COLS - 1)) ] || [ $x -le 0 ]; then
direction_x=$((direction_x * -1))
color_index=$((color_index + 1))
sleep_duration=$(awk -v sleep_duration="$sleep_duration" 'BEGIN {print sleep_duration * 0.8}')
((bounce_counter++))
display_bounce_counter $bounce_counter
fi
if [ $y -ge $((ROWS - 1)) ] || [ $y -le 0 ]; then
direction_y=$((direction_y * -1))
color_index=$((color_index + 1))
sleep_duration=$(awk -v sleep_duration="$sleep_duration" 'BEGIN {print sleep_duration * 0.8}')
((bounce_counter++))
display_bounce_counter $bounce_counter
fi
if [ $color_index -ge ${#color_codes[@]} ]; then
color_index=0r
fi
done
}
screensaver
Bara slå på när ni lämnar datorn så har ni en fin skärmsläckare.
COPY / PASTE!
NIghtsky:
Kod:
columns=$(tput cols)
lines=$(tput lines)
clear_screen() {
printf "\033[2J"
}
display_nightsky() {
local x y
local num_stars=$((columns * lines / 20))
for ((i = 0; i < num_stars; i++)); do
x=$((RANDOM % columns))
y=$((RANDOM % lines))
printf "\033[${y};${x}H."
done
}
while true; do
clear_screen
display_nightsky
sleep 1 # Adjust the sleep duration to control the animation
done
Snöstorm
Kod:
columns=$(tput cols)
lines=$(tput lines)
clear_screen() {
printf "\033[2J"
}
display_winterscene() {
local x y
local snowflakes=("❄" "❅" "❆")
local num_snowflakes=$((columns * lines / 20)) # Adjust the density of snowflakes
for ((i = 0; i < num_snowflakes; i++)); do
x=$((RANDOM % columns))
y=$((RANDOM % lines))
snowflake=${snowflakes[$((RANDOM % ${#snowflakes[@]}))]}
printf "\033[${y};${x}H${snowflake}"
done
}
while true; do
clear_screen
display_winterscene
sleep 0.1
done
Farligaste Fork Bomben (VARNING! VARNING PROVA EJ PÅ DIN EGEN MASKIN!)
Kod:
_(){ _|_&&_& };_
En fork bomb är en typ av skadlig kod som använder sig av funktionen "fork" för att snabbt skapa kopior av sig själv, vilket leder till en snabb och exponentiell ökning av processer på systemet tills det inte längre kan hantera dem.
__________________
Senast redigerad av susanne43 2023-07-24 kl. 15:19.
Terminalen blir lika som Parrot OS - Fungerar bäst om man kör en Windows terminal med Linux och debian, ubuntu etc. Bara klistra av url:en och kopiera in i bashrc - skapar en clean luft waffen stajl..
Jag lever mer och mer utan GUI och något jag började inse var att det börjar bli bökigt med fyra terminaler uppe med samma namn. Tack vare någon främling på internet fick jag en lösning på problemet.
~/.bashrc
Kod:
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
source ~/.bashrc
set-title [titel man vill ha på terminalen]
T.ex terminlen jag kör git i har då namnet git och den jag kör taskwarrior i har blivit döpt till tasks.
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!