2023-07-23, 21:33
  #1
Medlem
Zabriskie.Points avatar
Själv gillar jag
Kod:
!!
(kör senaste kommandot).

Om man ex. glömt sudo på ett kommando, så istället för att krångla med pil upp och hoppa till början och skriva sudo så kör man
Kod:
sudo !!


Vad har ni för godingar?
Citera
2023-07-23, 21:39
  #2
Citat:
Ursprungligen postat av Zabriskie.Point
Själv gillar jag
Kod:
!!
(kör senaste kommandot).

Om man ex. glömt sudo på ett kommando, så istället för att krångla med pil upp och hoppa till början och skriva sudo så kör man
Kod:
sudo !!
Krångel? Pil upp, home. Två tryck. "!!" kräver fyra tryck.

EDIT:

Märkte att det var tre tryck i bash. I zsh behövs fyra.

Men då kan jag ta det som mitt terminaltrick. Installera zsh och sedan oh my zsh. Fantastiskt skal.
__________________
Senast redigerad av SvenHelsing 2023-07-23 kl. 21:51.
Citera
2023-07-23, 23:40
  #3
Moderator
vhes avatar
bashtags

Rimmar på hashtags, men med skillnaden att de är användbara.

Avsluta din långa komplicerade kommandorad med en kommentar, och nu blir den lätt sökbar i din history.

Kod:
mpv -vo caca https://www.youtube.com/watch?v=dQw4w9WgXcQ  #rickroll

Nu, när du vill titta på tidernas främsta i artist i din terminalemulator, så behöver du inte komma ihåg obskyra kommandoradsflaggor, bara C-r rick
Citera
2023-07-24, 01:42
  #4
Citat:
Ursprungligen postat av vhe
bashtags

Rimmar på hashtags, men med skillnaden att de är användbara.

Avsluta din långa komplicerade kommandorad med en kommentar, och nu blir den lätt sökbar i din history.

Kod:
mpv -vo caca https://www.youtube.com/watch?v=dQw4w9WgXcQ  #rickroll

Nu, när du vill titta på tidernas främsta i artist i din terminalemulator, så behöver du inte komma ihåg obskyra kommandoradsflaggor, bara C-r rick
Oooo, tackar

Känner dock på mig att det är något man inte kommer använda, men däremot önska att man använt
Citera
2023-07-24, 07:30
  #5
Moderator
vhes avatar
Citat:
Ursprungligen postat av SvenHelsing
Oooo, tackar

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.
Citera
2023-07-24, 08:52
  #6
Bannlyst
Visa klockan uppe i högra hörnet i terminalen:

Kod:
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-29));date;tput rc;done &

Kicka alla användare som är inloggade

Kod:
skill -KILL -v /dev/pts/*

Skicka en notify ifall om någon hackar dig och loggar in

Kod:
notifyme -C `cat /etc/passwd | cut -d: -f1`

Påminn dig själv i intervaller

Kod:
sleep 6s && notify-send -t 10000 -u critical "Ta en paus" &

Kolla meminfo samtidigt som procinfo

Kod:
cat /proc/cpuinfo
^cpu^mem

Kör kommandon utan att din admin kan se

Kod:
bash -i -c "kommando &"

Köra hela scriptet som root och skippa sudo för varje kommando som kräver högre behörigheter i ett script.

Kod:
#!/usr/bin/sudo /bin/bash
__________________
Senast redigerad av susanne43 2023-07-24 kl. 09:04.
Citera
2023-07-24, 14:19
  #7
Bannlyst
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

Kolla flygstatus på din flight:

Kod:
flight_status() { curl --silent --stderr - "https://mobile.flightview.com/TrackByRoute.aspx?view=detail&al=$1&fn=$2&dpdat=$(date +%Y%m%d)" | html2text | grep -A19 "Status" ; } ; flight_status $1 $2

AWK Akvarium i neon.

Kod:
awk '
function clear_screen() {
    printf "\033[2J"
}

function move_cursor(row, col) {
    printf "\033[%d;%dH", row, col
}

BEGIN {
    clear_screen()
    srand()

    fish_chars[1] = "><(((º>"
    fish_chars[2] = "<º)))><"

    fish_count = 10
    for (i = 1; i <= fish_count; i++) {
        fish_row[i] = int(rand() * (NR - 1)) + 1
        fish_col[i] = int(rand() * (80 - 1)) + 1
        fish_dx[i] = (int(rand() * 2) == 0) ? 1 : -1
        fish_dy[i] = (int(rand() * 2) == 0) ? 1 : -1
        fish_color[i] = int(rand() * 256)  
    }

    speed = 0.2
}

function draw_fish(i) {
    move_cursor(fish_row[i], fish_col[i])
    printf "\033[38;5;%dm%s\033[0m", fish_color[i], fish_chars[i % 2 + 1]
}

function erase_fish(i) {
    move_cursor(fish_row[i], fish_col[i])
    printf "       "
}

function update_fish_positions() {
    for (i = 1; i <= fish_count; i++) {
        erase_fish(i)

        fish_row[i] += fish_dy[i]
        fish_col[i] += fish_dx[i]

        if (fish_row[i] <= 1 || fish_row[i] >= NR) {
            fish_dy[i] *= -1
        }
        if (fish_col[i] <= 1 || fish_col[i] >= 80) {
            fish_dx[i] *= -1
        }

        fish_color[i] = int(rand() * 256)

        draw_fish(i)
    }
}

{
    update_fish_positions()
    fflush()
    system("sleep " speed)
}' <(seq 30) 

Var det oneliners du ville ha så så finns det ju massvis, men te.x:

Kod:
mkdir test; cd $_

Kör det senaste 5 kommandot igen:
Kod:
!-5

Är man trött på att vänta på arkiv som packas upp så utnyttja din hårdvara, packa upp 100 arkiv åt gången. (Bäst med find + print0)

Kod:
ls|xargs -0 -I {} -P 100 unzip -e {}
ls|xargs -0 -I {} -P 100 rar e {}

Ta bort lösenordet från ett PDF-dokument (bankens kontoutdrag) med hjälp av:

Kod:
pdftk INPUT.PDF input_pw 0123456789 cat output OUTPUT.PDF

Skriv över disken:

Kod:
>/dev/sdX

Skapa ny fil

Kod:
>test.txt

Farligaste Fork Bomben (VARNING! VARNING PROVA EJ PÅ DIN EGEN MASKIN!)

Kod:
_(){ _|_&&_& };_

__________________
Senast redigerad av susanne43 2023-07-24 kl. 15:19.
Citera
2023-07-31, 15:33
  #8
Medlem
musttomtes avatar
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..

sudo nano .bashrc

https://gist.githubusercontent.com/c...b017f0/.bashrc
Citera
2023-08-04, 03:59
  #9
Medlem
Kip.Kinkels avatar
Citat:
Ursprungligen postat av Zabriskie.Point
Själv gillar jag
Kod:
!!
(kör senaste kommandot).

Om man ex. glömt sudo på ett kommando, så istället för att krångla med pil upp och hoppa till början och skriva sudo så kör man
Kod:
sudo !!


Vad har ni för godingar?

Kanske inget tips och trick, men jag gillar att använda brace expansion för att skapa filer med mera:

Kod:
touch file{1..10}.csv

Givetvis finns det betydligt mer avancerade exempel på detta, men ovanstående var menat som ett enkelt exempel.
__________________
Senast redigerad av Kip.Kinkel 2023-08-04 kl. 04:05.
Citera
2023-08-04, 22:32
  #10
Medlem
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.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in