Showing posts with label shell commands. Show all posts
Showing posts with label shell commands. Show all posts

May 11, 2017

History from Free Dictionary and Aard2 Android Dictionary apps

I use Free Dictionary and Aard2 for in my Android phone to look up the meaning of words. If you ever need to get the list of words that were looked up in these apps from a Linux system, you may find this useful.


The first step would be to enable connect the phone to the computer and enable USB debugging.

Free Dictionary

adb shell run-as org.freedictionary cat shared_prefs/FreeDictionary.xml | 
xmlstarlet sel -T -t -v /map/string | tr ',' '\n' 

Aard2 Dictionary
Things are bit complicate for Aard2 as I found that it does not support run-as command.

adb backup -f ./aard2.ab -apk itkach.aard2
java -jar abe.jar unpack aard2.ab  aard2.tar
tar -O -xvf  aard2.tar apps/itkach.aard2/r/app_history 2>
  /dev/null | jq -r '.key'

December 3, 2014

ഷെൽ ബ്രേസ് എക്സ്പാൻഷൻ

ഒന്നിലധികം അക്ഷരങ്ങളോ വാക്കുകളോ കൂട്ടിച്ചേർത്ത് പുതിയ സ്റ്റ്രിങ്ങുകൾ നി‌‌ർമ്മിക്കാൻ പറ്റിയ ഒരു ഉപാധിയാണ് ഷെല്ലിലെ ബ്രേസ് എക്സ്പാൻഷൻ. ഉദാഹരണത്തിന് a,b എന്നീ അക്ഷരങ്ങൾ ആദ്യവും c, d എന്നീ അക്ഷരങ്ങൾ രണ്ടാമതും വരുന്ന 2 അക്ഷരങ്ങളുള്ള വാക്കുകൾ ഉണ്ടാക്കാൻ {a,b}{c,d} എന്ന എക്സ്പ്രഷൻ ഉപയോഗിക്കാം.
echo {a,b}{c,d}
ac ad bc bd
ഇംഗ്ലീഷ് അക്ഷരമാല മുഴുവൻ പ്രിന്റ് ചെയ്യണമെങ്കിൽ ഇരുപത്താറക്ഷരങ്ങളും ടൈപ്പ് ചെയ്യുന്നതിനുപകരം {a..z} എന്നു കൊടുത്താൽ മതി.
echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
echo {a..z}{a..z} എന്നു കൊടുത്താൽ aa മുതൽ zz വരെ പ്രിന്റ് ചെയ്യും
echo {1,2}{a..z}{a..z} എന്നത് 1aa..1zz,2aa...2zz എന്നും പ്രിന്റ് ചെയ്യപ്പെടും.
ബ്രേസ് എക്സ്പാൻഷൻ കാര്യങ്ങൾ എങ്ങനെ എളുപ്പമാക്കുന്നെന്നു കാണാൻ മറ്റൊരുദാഹരണം പറയാം. 2000 മുതൽ 2014 വരെയുള്ള മാസങ്ങളുടെ പേരിൽ 2000_jan, 2000_feb എന്നിങ്ങനെ ഫോൾഡറുകൾ ഉണ്ടാക്കണമെന്നു കരുതുക. നൂറ്റി എൺപതു ഫോൾഡറുകളുടേ പേരുകൾ ഒന്നൊന്നായി ടൈപ്പ് ചെയ്യുന്നതിനുപകരം
mkdir {2000..2014}_{jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec}
എന്നു കൊടുത്താൽ മതിയാകും.
ഇനി 2000 മുതൽ 2014 വരെ നാലു വർഷങ്ങൾ ഇടവിട്ടുള്ളവയാണു വേണ്ടതെങ്കിൽ {2000..2014..4}_{jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec} എന്ന് എക്സ്പ്രഷനുപയോഗിക്കാം.
അക്കങ്ങൾക്കു പകരം അക്ഷരങ്ങളിൽ ..4 എന്നു കൊടുത്താൽ നാല് അക്ഷരങ്ങൾ ഇടവിട്ട് പ്രിന്റ് ചെയ്യും. ഉദാ : echo {a..z..4} എന്നത് a e i m q u y എന്നു പ്രിന്റ് ചെയ്യും

June 13, 2013

യൂട്യൂബ് വീഡിയോ ഡൗൺലോഡ് - കമാന്റ് ലൈനിൽ നിന്നും


കംപ്യൂട്ടർ പ്രോഗ്രാമുകളെക്കുറിച്ചുള്ള (ഉദാ. KDE, GNOME) വീഡിയോകൾ യൂട്യൂബിൽ കാണുമ്പോൾ, സ്ക്രീൻ വ്യക്തമായി കാണാൻ നമുക്ക് ഹൈ ക്വാളിറ്റി വീഡിയോയിലേക്ക് മാറേണ്ടി വരും. ബാൻഡ്‌‌വിഡ്ത് പ്രശ്നങ്ങൾ കാരണം പലപ്പോഴും വീഡിയോകൾ സ്മൂത്തായി പ്ലേ ചെയ്യില്ല. ഒരു പോംവഴി വീഡിയോ pause ചെയ്ത് മുഴുവൻ ഡൗൺലോഡായ ശേഷം കാണുക എന്നതായിരുന്നു. കുറച്ചു കാലമായി pause ചെയ്താൽ വീഡിയോ മുഴുവനും ഡൗൺലോഡാകാതിരിക്കുകയും തൽഫലമായി മിസ്റ്റർ ശങ്കർ വീണ്ടും തെങ്ങിലേക്ക് പോവുകയും ചെയ്തു. മറ്റൊരുവഴി ഏതെങ്കിലും ഫയർഫോക്സ് എക്സ്റ്റൻഷൻ ഉപയോഗിക്കുക എന്നതായിരുന്നു. വല്ലപ്പോഴും ഒരു വീഡിയോ ഡൗൺലോഡ് ചെയ്യാൻ വേണ്ടിമാത്രം ഒരു എക്സ്റ്റൻഷൻ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് ഒരു കടന്നകൈയ്യല്ലേ എന്നോർത്ത് വേറെ മാർഗ്ഗങ്ങളന്വേഷിച്ചപ്പോഴാണ് youtube-dl നെ കുറിച്ച് അറിഞ്ഞത്. youtube-dl ന്റെ ഒരു മെച്ചം നമുക്ക് അതുപയോഗിക്കുന്ന ബാൻഡ്‌‌വിഡ്ത് നിയന്ത്രിക്കാം എന്നാണ്.

ആദ്യത്തെ പരിപാടി youtube-dl ഇൻസ്റ്റാൾ ചെയ്യുക എന്നതാണ്
ഉബുണ്ടു : sudo apt-get install youtube-dl എന്ന് ടെർമിനലിൽ നിന്നും റൺ ചെയ്യുക.
ഫെഡോറ : sudo yum install youtube-dl എന്ന് ടെർമിനലിൽ നിന്നും റൺ ചെയ്യുക.

ഒരു വീഡിയോ youtube-dl ഉപയോഗിച്ച് ഡൗൺലോഡ് ചെയ്യുന്നതെങ്ങനെ എന്നു നോക്കാം. ഇതിനായി KDE 4.10നെ കുറിച്ചുള്ള KDE 4.10: The Fastest And Most Polished KDE Ever എന്ന വീഡിയോ നമുക്ക് ഡൗൺലോഡ് ചെയ്യാം.
(Edit : പോസ്റ്റ് ചെയ്തപ്പോൾ യൂട്യൂബ് ലിങ്കുകൾ ശരിയായി കാണുന്നില്ല അതിനാൽ ഈ പോസ്റ്റിൽ ഷോർട്ട് യുആർഎൽ ഉപയോഗിക്കുന്നു)

ആദ്യം ഏതൊക്കെ ഫോർമാറ്റ്/സൈസ് വീഡിയോ ഉണ്ടെന്നു കണ്ടുപിടിക്കണം. youtube-dl -F  http://goo.gl/8Dwfx  എന്ന കമാന്റ് റൺ ചെയ്താൽ താഴെക്കാണുന്നതുപോലെ ഔട്ട്പുട്ട് കിട്ടും :
[prime@ford lm]$ youtube-dl -F KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
Available formats:
46      :       webm    [1080x1920]
37      :       mp4     [1080x1920]
45      :       webm    [720x1280]
22      :       mp4     [720x1280]
44      :       webm    [480x854]
35      :       flv     [480x854]
43      :       webm    [360x640]
34      :       flv     [360x640]
18      :       mp4     [360x640]
5       :       flv     [240x400]
17      :       mp4     [144x176]

നമുക്ക് 720x1280 സൈസിലുള്ള mp4 വീഡിയോ ആണ് വേണ്ടതെന്നു കരുതുക. അത് ഡൗൺലോഡ് ചെയ്യാൻ youtube-dl -f 22  http://goo.gl/8Dwfx എന്നു റൺ ചെയ്താൽ, വീഡിയോ ഡൗൺലോഡാകാൻ തുടങ്ങും:
[prime@ford lm]$ youtube-dl -f 22 KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
[download] Destination: Fqe5ZcXJUHI.mp4
[download]   0.8% of 70.17M at  120.36k/s ETA 09:51

ഈ കമാന്റിൽ ചെറിയ എഫ് (മുമ്പത്തേതിൽ ക്യാപ്പിറ്റൽ എഫ് ആയിരുന്നു) ഓപ്ഷനു ശേഷം കൊടുത്ത 22 മുമ്പ് റൺ ചെയ്ത കമാന്റിലെ ഔട്ട്പുട്ടിൽ കണ്ട 720x1280 mp4 നെ സൂചിപ്പിക്കുന്നു. 22നു പകരം മറ്റു നമ്പരേതെങ്കിലും കൊടുത്താൽ അതിനനുസൃതമായ വീഡിയോ ഡൗൺലോഡ് ചെയ്യും. ഇവിടെ "[download] Destination: Fqe5ZcXJUHI.mp4" എന്നു പറഞ്ഞിരിക്കുന്നതു പ്രകാരം Fqe5ZcXJUHI.mp4 എന്ന പേരിലായിരിക്കും വീഡിയോ ഡൗൺലോഡ് ചെയ്തിട്ടുണ്ടാകുക. ഈ പേര് കണ്ടാൽ വീഡിയോ ഏതാണെന്നറിയാൻ പറ്റില്ലല്ലോ? നമുക്ക് ഒരു കമാന്റ്‌‌ ലൈനിൽ നിന്നോ, ഫയൽ മാനേജറുപയോഗിച്ചോ പേരു മാറ്റാം, പക്ഷേ -t എന്ന ഓപ്ഷൻ ‌കൊടുത്താൽ വീഡിയോയുടെ ടൈറ്റിൽ തന്നെ ഫയലിന്റെ പേരായി വരും.
[prime@ford lm]$ youtube-dl -t -f 22 KDE 4.10: The Fastest And Most Polished KDE Ever
[youtube] Setting language
[youtube] Fqe5ZcXJUHI: Downloading video webpage
[youtube] Fqe5ZcXJUHI: Downloading video info webpage
[youtube] Fqe5ZcXJUHI: Extracting video information
[download] Destination: KDE 4.10 - The Fastest And Most Polished KDE Ever-Fqe5ZcXJUHI.mp4
[download]   0.2% of 70.17M at  118.79k/s ETA 10:03

ഇപ്പോൾ ഫയലിന്റെ പേര് KDE 4.10 - The Fastest And Most Polished KDE Ever-Fqe5ZcXJUHI.mp4 എന്നായിട്ടുണ്ട്, Fqe5ZcXJUHI.mp4 നേക്കാൾ മെച്ചമാണ്.

നമ്മൾ ഡൗൺലോഡ് പകുതിവഴിയിൽ  എന്തെങ്കിലും കാരണവശാൽ നിന്നു പോയി എന്നു കരുതുക. വീണ്ടും ഡൗൺലോഡ് ചെയ്യുമ്പോൾ -c എന്ന ഓപ്ഷൻ കൊടുത്താൽ നിന്നുപോയ സ്ഥലത്തുനിന്നും തുടരും.
youtube-dl -c -t -f 22  http://goo.gl/8Dwfx

സാധാരണഗതിയിൽ youtube-dl ലഭ്യമായ മുഴുവൻ ബാൻഡ്‌‌വിഡ്തും ഉപയോഗിക്കും. ആ സമയത്ത് നമുക്ക് ബ്രൗസ് ചെയ്യാൻ ബുദ്ധിമുട്ടായിരിക്കും. -r എന്ന ഓപ്ഷനുപയോഗിക്കുകയാണെങ്കിൽ youtube-dl ഉപയോഗിക്കുന്ന ബാൻഡ്‌‌വിഡ്ത് പരിമിതപ്പെടുത്തുവാൻ സാധിക്കും. ഉദാ:
youtube-dl -r 30 -c -t -f 22  http://goo.gl/8Dwfx ഇവിടെ -r ഉപയോഗിച്ച് സ്പീഡ് 30k ആയി പരിമിതപ്പെടുത്തിയിരിക്കുകയാണ്. ഞാൻ ശ്രദ്ധിച്ച ഒരു കാര്യം, ഒന്നു വച്ചാൽ രണ്ടെന്നെ പോലെ 30 കൊടുത്താൽ 60ൽ ആണ് സ്പീഡ് ലിമിറ്റ് ആകുനെന്നാണ്. 30 വേണമെങ്കിൽ 15 കൊടുക്കേണ്ടി വന്നേയ്കും. ഇതെന്തുകൊണ്ടാണെന്ന് എനിക്കിപ്പോൾ അറിയില്ല.

കുറിപ്പ്:
youtube-dl ന്റെ പേരിൽ KDE യെ പ്രമോട്ട് ചെയ്യുന്നതാരും ശ്രദ്ധിച്ചില്ലെന്നു വിശ്വസിക്കുന്നു.

Edit 2014-April-08

ഉബുണ്ടുവിന്റെ പഴയ വെർഷനുകളിൽ youtube-dl ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ അതിന്റെ പഴയ വെർഷനുകൾ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടുന്നതായാണ് കണ്ടിട്ടുള്ളത്. അതിനാൽ അവ ശരിയായി പ്രവർത്തിക്കണമെന്നില്ല. അങ്ങനെവരികയാണെങ്കിൽ youtube-dl -U  എന്നു കൊടുത്ത് youtube-dl അപ്ഡേറ്റ് ചെയ്തു നോക്കുക.

ഡയസ്പോറയിൽ ഇതു പോസ്റ്റ് ചെയ്തപ്പോൾ സർവശ്രീ Anoop Narayanan, Akhilan | അഖിലൻ **, Jishnu ** എന്നിവർ പങ്കുവെച്ച കൂടുതൽ വിവരങ്ങൾ ചേർക്കുന്നു.
youtube-dl ഇല്ലാത്തവർക്ക് http://www.keepvid.com എന്ന സൈറ്റിൽ പോയാൽ വീഡിയോകൾ ഇതുപോലെ ഡൗൺലോഡ് ചെയ്യാനുള്ള സൗകര്യം ലഭിക്കുന്നതാണ്.

youtube-dl ല്‍ പ്ലേലിസ്റ്റ് ഡൗണ്‍ലോഡ് ചെയ്യുമ്പോള്‍ ഓഡര്‍ പോലെ പേരിനുമുമ്പില്‍ സംഖ്യ കൊടുക്കുവാന്‍ സാധിക്കും. -A --autonumber-size 3 ഇങ്ങനെ കൊടുത്താല്‍ 001, 002... എന്നു് ഫയലിന് prepend ചെയ്തു് വരുന്നതാണ്.
വളരെ ഉപയോഗപ്രദമായ audio conversion ആണ് -x ഓപ്ഷൻ :  -x --audio-format mp3 --audio-quality 0 default ആയി audio extract ചെയ്താല്‍ വീഡിയോ ഫയല്‍ ഡിലീറ്റ് ചെയ്യും -k കൊടുത്താല്‍ അത് ചെയ്യില്ല.

June 3, 2013

കമാന്റ്‌‌ ലൈനിൽ നിന്നും ഓഡിയോ റിക്കോർഡിങ്

 കുറച്ചു ദിവസം മുമ്പ് പ്ലേ ചെയ്തുകൊണ്ടിരിക്കുന്ന ഓഡിയോ കുറച്ച് റിക്കോർഡ് ചെയ്യേണ്ട ആവശ്യമുണ്ടായി. സൗണ്ട് സിസ്റ്റം കുറച്ചുനാൾ മുമ്പ് പണിഞ്ഞ് ഒരു വഴിക്കാക്കിയതിനാൽ  audacityയിൽ കാര്യം നടന്നില്ല. എന്നാൽ പിന്നെ കമാന്റ് ലൈൻ തന്നെ ശരണം എന്നു കരുതി ആ വഴിക്ക് അന്വേഷണം തുടങ്ങി. അവസാനം pacat & sox ഉപയോഗിച്ച് താഴെ പറയുന്നതു പോലെ ഓഡിയോ റെക്കോർഡ് ചെയ്യാമെന്ന് ഒരിടത്തു കണ്ടു.
1. ഓഡിയോ ഡിവൈസ് കണ്ടുപിടിക്കുക : ടെർമിനലിൽ നിന്ന്
pacmd list |grep monitor എന്നു റൺ ചെയ്യുക. ഈ കമാന്റ്‌‌ റൺ ചെയ്യുമ്പോൾ താഴെ കാണുന്നവിധം ഔട്ട്പുട്ട് കിട്ടും. അതിൽ  "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor" എന്നതാണ് നമുക്ക് വേണ്ട സിങ്ക് സോഴ്സ്.
        monitor source: 0
        name:
        monitor_of: 0
                device.class = "monitor"
                alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#0: Monitor of Internal Audio Analog Stereo

2. pacat --record -d  alsa_output.pci-0000_00_1b.0.analog-stereo.monitor| sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 - "output.ogg" എന്ന കമാന്റിൽ -d ക്കു ശേഷം നേരത്തേ കണ്ടുപിടിച്ച സിങ്ക് സോഴ്സ് കൊടുത്ത് റൺ ചെയ്താൽ ആ സമയത്ത് കമ്പ്യൂട്ടർ പ്ലേ ചെയ്തുകൊണ്ടിരിക്കുന്ന ഓഡിയോ output.ogg എന്ന ഫയലിൽ കിട്ടും. റിക്കോർഡിങ് നിർത്താൻ ctrl+c അമർത്തുക.

ഇനി ഈ .ogg ഫയൽ mp3 ആക്കണമെങ്കിൽ ffmpeg -i output.ogg output.mp3 എന്ന കമാന്റ്‌‌ റൺ ചെയ്താൽ output.mp3 എന്ന mp3 ഫയൽ കിട്ടും.

April 8, 2013

സമയം കൊല്ലൽ കമാന്റുകൾ

കഴിഞ്ഞ ചില പോസ്റ്റുകളിലായി ലിനക്സ് പരീക്ഷിച്ചു നോക്കാനുള്ള രീതികളെ കുറിച്ചു  എഴുതിയിരുന്നല്ലോ, ഇനി ഒന്നു രണ്ട് ചെറിയ കമാന്റുകൾ ടെർമിനലിൽ ചെയ്തു നോക്കാം
ആദ്യത്തേത് ബാനർ (banner) കമാന്റാണ്. പേരു സൂചിപ്പിക്കുന്നതുപോലെ വാക്കുകൾ വലിയ അക്ഷരങ്ങളിൽ എഴുതുകയാണിതന്റെ ജോലി. ഉദാ:

banner Hello

നിലവിൽ ബാനർ കമാന്റിന് മലയാളമറിയാത്തതിനാൽ മലയാളത്തിൽ ബാനറെഴുത്ത് നടക്കില്ല. ബാനർ കമാന്റ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ അത് ഇൻസ്റ്റാൾ ചെയ്യാൻ ഈ കമാന്റ് ഉപയോഗിക്കാം:
ഉബുണ്ടുവിൽ : sudo apt get install banner
ഫെഡോറയിൽ : sudo yum install banner

ബാനർ കമാന്റിനെക്കാളും രസമുള്ള കമാന്റാണ് sl. പലപ്പോഴും ls നു (ഫയലുകളുടെ പേര് ലിസ്റ്റ് ചെയ്യുന്ന കമാന്റ്, ഡോസിലെ dir പോലെ) പകരം sl എന്നു തെറ്റായി ടൈപ്പുചെയ്യപ്പെടാറുണ്ട്. അങ്ങനെ sl എന്നു ടൈപ്പു ചെയ്താൽ ഒരു തീവണ്ടി ടെർമിനലിൽ കൂടി ഓടിപ്പോകുന്നതു കാണാം.
sl ഇൻസ്റ്റാൾ ചെതിട്ടില്ലെങ്കിൽ ഇങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം:
ഉബുണ്ടുവിൽ : sudo apt get install sl
ഫെഡോറയിൽ : sudo yum install sl

cowsay, cowspeak എന്നിങ്ങനെ വേറെ ചില കമാന്റുകളുമുണ്ട്, അതൊക്കെ പരീക്ഷിച്ചു നോക്കുക.