Re: Dela med dig av dina bästa shell-tips
Postat: 25 feb 2009, 01:17
Forum för Ubuntus svenska gemenskap
https://ubuntu-se.servebbs.org/
d. There is a new `autocd' option that, when enabled, causes bash to attempt
to `cd' to a directory name that is supplied as the first word of a
simple command.
Kod: Markera allt
$ cp filnamn{,.$(date +%y%m%d).bak}
Kod: Markera allt
cp filnamn{,.bak}
Grymt bekvämt.Kod: Markera allt
cp filnamn{,.bak}
palle-kuling skrev:Grymt bekvämt.Kod: Markera allt
cp filnamn{,.bak}
Synd att det inte funkar i ubuntus sh (dash) bara. Men bash är ju fortfarande login shell iaf.
Man får vara försiktig så man inte använder det närsomhelst.
Hittade detta dokument, för alla som är intresserade över hur det skiljer sig åt; https://wiki.ubuntu.com/DashAsBinSh
Kod: Markera allt
$ date +"%V"
Kod: Markera allt
#!/bin/sh
#
# ISO week function
# Uses `date' function to present various ISO date formats
#
if [ "$1" = "-d" ] ; then
date --iso-8601
elif [ "$1" = "-dt" ] ; then
datum=`date --iso-8601` ; datum="$datum `date +"%T"`"; echo $datum
elif [ -z "$1" ] ; then
date +"%V"
elif [ ${#1} -gt 5 ] ; then
date --date=$1 +"%V"
else
echo "Usage: isow [-d|-dt|-h]"
echo " prints ISO week number"
echo " -d prints ISO date"
echo " -dt prints ISO date + local time"
echo " -h prints this help message"
echo " isow YYYYMMDD|YYYY-MM-DD prints ISO week number of given date"
fi
Vad använder du för editor som inte gör backuper per automatik?Barre skrev:kanske redan finns här, men jag brukar använda detta kommando när jag behöver ta en snabb backup på en konfigurationsfil innan jag ändrar i den
eller, när jag inte behöver så många versioner av konfiurationsfilen, och inte bryr mog om jag skriver över någon äldre versionKod: Markera allt
$ cp filnamn{,.$(date +%y%m%d).bak}
Kod: Markera allt
cp filnamn{,.bak}
Man kanske bör påpeka att bash och dash skiljer sig åt på betydligt fler sätt än vad som listas i den länken.palle-kuling skrev:Grymt bekvämt.Kod: Markera allt
cp filnamn{,.bak}
Synd att det inte funkar i ubuntus sh (dash) bara. Men bash är ju fortfarande login shell iaf.
Man får vara försiktig så man inte använder det närsomhelst.
Hittade detta dokument, för alla som är intresserade över hur det skiljer sig åt; https://wiki.ubuntu.com/DashAsBinSh
Men herregud, vilken attityd och extremt konstig tolkning av min post?Konservburk skrev: Vad använder du för editor som inte gör backuper per automatik?
Men snälla Barre, det var inte alls meningen att du skulle ta illa upp. Jag brukar inte använda brace expansion på just det sättet. Antagligen mest för att själv upplever cp filnamn !#$~ vara smidigare ihop med autokomplettering. Jag tyckte dock det var en intressant idé med datummarkering av backuperna och funderade då över varför jag inte redan hade en sådan skalfunktion i min ~/.bashrc (jag är för lat för att skriva hela det kommandot varje gång) och kom då fram till att min editor redan automatiskt ordnar backuper åt mig.Barre skrev:Men herregud, vilken attityd och extremt konstig tolkning av min post?Konservburk skrev: Vad använder du för editor som inte gör backuper per automatik?
Du skrev "innan jag ändrar i den", vilket jag tolkade som att du kör backupkommandot precis innan du använder en editor.Barre skrev:Jag har inte nämnt någonstans att jag använder någonsomhelst editor i min post... jag har läst det min post ett flertal gånger nu för att försöka hitta texten där jag refererar till editorer, men inte lyckats....
Är det så att det krävs att man själv gör någon inställning för att vim ska ordna automatiska backuper? Jag minns inte riktigt hur det var med den saken. :-/Barre skrev:Kan i min själ inte förstå var din nyfikenhet om vilken editor jag använder kommer ifrån, men jag skall tala om det för dig.
Jag använder vi (eller snarare vim), jag är fullt medveten om att man kan ställa in vi att göra automatiska backupper av filer.
Då är jag formodligen naiv. Om editorn gör en backup ser jag inte riktigt syftet med att själv göra en egen. Ordentlig versionshantering av konfigurationsfiler är ett intressant ämne, men nu har vi som du redan påpekat hamnat helt "off topic".Barre skrev:Jag tolkar din relativt konstiga fråga att du ifrågasätter behovet att ta backup på konfigurationsfiler innnan man gör förändringar i dem. Och det anser jag är naivt.... För att inte på gränsen till "off topic".
Jag brukar undvika att använda "sed -i" just eftersom orginalfilen då går förlorad.Barre skrev:Jag har läst ganska många av dina inlägg och vet att du Konservburk är väl bevandrad i terminalernas förtrollade värld, och jag skulle bli mycket förvånad om du aldrig använd sed för att ändra t.ex en IP-adress i en fil...
Ett litet shell-tips: Med sed -i~ och perl -i~ så sparas en backup som slutar på ~.Konservburk skrev: Jag brukar undvika att använda "sed -i" just eftersom orginalfilen då går förlorad.
Kod: Markera allt
sed -i~ 's/shit/skit/g' *.txt
Kod: Markera allt
perl -i~ -pe 's/skit/shit/g' *.txt
Tack för tipset. Mycket praktiskt, åtminstone så länge man inte har något emot att låta editorn (i det här fallet sed eller perl) ta hand om backup:andet.David Andersson skrev:Ett litet shell-tips: Med sed -i~ och perl -i~ så sparas en backup som slutar på ~.Konservburk skrev: Jag brukar undvika att använda "sed -i" just eftersom orginalfilen då går förlorad.
Strålande! Nu vart jag glad. Vad mycket man lär sig i denna tråden.Ett litet shell-tips: Med sed -i~ och perl -i~ så sparas en backup som slutar på ~.
Kod: Markera allt
#!/bin/sh
if [ -n "$1" ]; then
TRACKS="$1"
else
TRACKS=10
fi
mpc clear > /dev/null && mpc listall|sort -R|head -n $TRACKS|mpc add && mpc play > /dev/null
Kod: Markera allt
#!/bin/sh
LISTDIR=/mnt/Music_2/Playlists
if [ "$1" ];
then
NAME="$1.m3u"
else
NAME=$(date +%Y%m%d).m3u
fi
if [ -f "$LISTDIR/$NAME" ];
then
echo $(mpc --format %file%|head -1 >> $LISTDIR/$NAME)
else
echo $(mpc --format %file%|head -1 > $LISTDIR/$NAME)
fi
echo -e " CONTENT:\n"
cat $LISTDIR/$NAME
Kod: Markera allt
cp -v $(cat favlist.m3u) /mnt/mp3spelare
[besserwisser]dmz skrev:Kod: Markera allt
if [ -f "$LISTDIR/$NAME" ]; then echo $(mpc --format %file%|head -1 >> $LISTDIR/$NAME) else echo $(mpc --format %file%|head -1 > $LISTDIR/$NAME) fi
Kod: Markera allt
echo $(mpc --format %file%|head -1 >> $LISTDIR/$NAME)
Kod: Markera allt
mpc --format %file%|head -1 >> $LISTDIR/$NAME
David Andersson skrev: Omdirigering till fil med >> lägger till i slutet om filen finns och skapar en fil om den inte finns. Man behöver alltså inte testa om filen finns.
Kod: Markera allt
scp1:shiva » echo nej >> jo
zsh: no such file or directory: jo
[messerschmitt]dmz skrev:David Andersson skrev: Omdirigering till fil med >> lägger till i slutet om filen finns och skapar en fil om den inte finns. Man behöver alltså inte testa om filen finns.En bashism, med andra ord.Kod: Markera allt
scp1:shiva » echo nej >> jo zsh: no such file or directory: jo
Det är precis tvärtom... zsh spökar för dig igen (Du har lyckats aktivera NO_CLOBBER). Kör set +C och gör ett nytt försök så ska du se att det går bättre. >> har faktiskt fungerat som David beskriver ända sedan början av 70-talet, en sådär 15 år innan bash ens blev påtänkt.dmz skrev:David Andersson skrev: Omdirigering till fil med >> lägger till i slutet om filen finns och skapar en fil om den inte finns. Man behöver alltså inte testa om filen finns.En bashism, med andra ord.Kod: Markera allt
scp1:shiva » echo nej >> jo zsh: no such file or directory: jo