İnternette dolaşırken sıkça kullanmaya başladığım birkaç kısa yol şöyle:
DuckDuckGo kısayolları
h : Arama kutusuna git, arama metnini seç
j veya alt ok : arama sonuçlarında aşağıya git (odağı kazanmamışsa sayfada boş bir yere tıklamak gerekebilir)
k veya üst ok : arama sonuçlarında yukarıya git
t : arama sonuçlarında en üste git
l (küçük L harfi) veya o (küçük O harfi) : seçili arama sonucunu aç
Youtube
Herhangi bir youtube videosunu izlerken Shift+? kısayollar listeler.
boşluk çubuğu : oynatmayı duraklat / devam ettir (odak videoda olmalı)
k : oynatmayı duraklat / devam ettir (odağın videoda olmasına gerek yok)
m : videoyu sessize al
c : altyazılar varsa etkinleştir
sola ok : videoda 5 saniye geriye git
j : videoda 10 saniye geriye git
sağa ok : videoda 5 saniye ileriye git
l (küçük L harfi) : videoda 10 saniye ileriye git
yukarı ok : sesi artır
aşağı ok : sesi azalt
0 (sıfır) : videonun başına git
1-9 : video'nun sırasıyla %10, %20, ... %90'ına atla
ö veya / : youtube'un arama kutusuna git
Shift + N : oynatma listesinde bir sonraki videoya atla
Shift + P : oynatma listesinde bir önceki videoya atla
Ctrl + sağ ok : videonun ilerleme çubuğunda görülen bir sonraki bölümüne atla
Ctrl + sol ok : videonun ilerleme çubuğunda görülen bir önceki bölümüne atla
> veya Shift + . : oynatma hızını artır
< veya Shift + , : oynatma hızını düşür
. / , : (duraklatılığında) videoda 1'er kare olarak ileri veya geri git
t : Sinema modunu aç veya kapat
i : mini oynatıcıya geç
---
[1] https://duck.co/help/features/keyboard-shortcuts
[2] https://support.google.com/youtube/answer/7631406?hl=en
Burada anlatılanlar benim küçük/büyük sorunlarımı çözerken izlediğim adımlardır. İlerde bu bilgilere kendim her yerden erişeyim diye, veya benzer sorunları yaşayan başkaları da erişebilsin diye burada biriktiriyorum. Bu adımları uygulamak, hata yapmamak ve doğabilecek herhangi bir hasar sizin kendi sorumluluğunuzdadır. Yazar(lar) veya yazılardaki bağlantıların sahipleri hiçbir şekilde oluşabilecek hata/hasarlardan dolayı sorumlu tutulamazlar.
2018-10-23
İnternet ve kısayollar
2018-07-23
archlinux kablosuz ağ şifresini güncelleme
Kablosuz erişim noktası üzerindeki kablosuz ağ şifremi değiştirdikten sonra /etc/netctl klasörü altında profil dosyama girip şifremi güncellemiştim. Benimki için dosya adı
/etc/netctl/wlo1-Denemeidi. Dosyanın içinde Key ile başlayan satırdaki şifreyi güncelledikten sonra
sudo netctl start wlo1-Denemekomutu ile profilimi başlatmayı denediğimde şöyle bir hata alıyordum:
Job for netctl@Deneme.service failed because the control process exited with error code.
See "systemctl status netctl@Deneme.service" and "journalctl -xe" for details.
Forumdaki yüce kişilik öncelikle bu hatanın birden fazla IP otomatik ayarlaması yapan hizmetin çalışması ile ilgili olabileceğini farkederek bu kontrolü yaptırmış:
ls -l /etc/systemd/system/multi-user.target.wantsKlasörünün altındaki hizmetleri listeletmiş. Benimkinde de dhcp hizmetine ait bir öğe vardı. Önce onu kaldırdım:
systemctl disable dhcpcd.service systemd-networkd.service wicd.serviceDaha sonra bilgisayarımı tekrar başlattım. Bilgisayarım tekrar başladıktan sonra netctl komutlarına daha önceki gibi hata vermeyi bıraktı. Artık wifi şifremi değiştirdikten sonra ilgili profil dosyamdaki şifreyi değiştirip sonrasında
netctl stop wlo1-Denemeve ardından (bazı durumlarda ip link set wlo1 up gerekebilir)
netctl start wlo1-Denemeyapmam yetiyor :)
Ek 2019-05-29: Bilgisayarımın bağlandığı varsayılan wifi ağını değiştirdim. Archlinux, hala eski ağa bağlanmaya çalışıyor. Yenisine otomatik olarak bağlanmıyor. Şu adımları izledim:
sudo netctl disable wlo1-EskiAgBu şekilde /etc/systemd/system/multi-user.target.wants altındaki varsayılan bağlantı değiştirilir.
sudo netctl enable wlo1-YeniAg
Archlinux ve pacman
Pacman'i biraz özetlemek benim için faydalı olacak.
Öncelikle söylenen o ki pacman, apt ve dnf'e kıyasla daha hızlı. Ama ihtiyaç duyulan parametreler biraz daha içgüdüden uzak. Kendi içinde bir yapısı var elbette, ama öğremek zaman alacak.
Pacman'da işlemler 5 ana kategoride:
-Q : (Query) pacman veritabanını sorgula
-R : (Remove) sistemden paket kaldır
-S : (Sync) paketleri senkronize et
-U : (Upgrade) Sistemdeki paketleri güncelle
-F : (File) sistemde kurulu dosyaların içinde sorgu çalıştır
Query (-Q) işlemleri için kullanılabilecek anahtarlar:
-i : Kurulu paket ile ilgili bilgileri göster. Örneğin
pacman -Qi firefox-k : Bir pakedin sahip olduğu dosyaları kontrol et. Ayrıntılı kontrol için -kk kullanılabilir.
-l : Bir paketin sisteme kurduğu dosyaları göster
-o : Bir dosyanın sahibi olan paketi ara
-s : Kurulu paketlerin arasında bir paket ismi ara
-e : explicit : sistemin kurduğu değil, kullanıcı tarafından kurulan programları listele.
-q : Quiet. sürüm no gibi ek bilgileri gösterme, sadece paket isimlerini listele.
-n : Sadece ana repo'lardan kurulan programları listele.
-m: AUR'dan kurulan programları listele.
-d : dependencies. Başka bir programın alt bağımlığı olarak kurulan programları listele.
-t : unrequired. gereksinim duyulmayan paketleri listele.
-dt: genelde ihtiyaç duyulmayan paketleri listelemek için ikisi beraber kullanılır.
vlc kurulu mu değil mi öğrenmek için:
pacman -Qs vlc
Remove (-R) işlemleri için kullanılabilecek anahtarlar:
-s : recursive. bir paketi ve o paketle gelen tüm alt bağımlılıkları kaldırmak için
-u : unneeded. gereksiz paketleri de kaldır
-n : paketle beraber gelen sistem yapılandırma dosyalarını da sil
-s : yapılandırma dosyalarını da sil
Dolayısıyla thunderbird ile gelen bütün herşeyi kaldırmak için gereken komut:
pacman -Rnu thunderbirdolabilir.
Sync (-S) anahtarları:
-c : clean, yerel belleği temizle
-i : Kurulu olmayan paket ile ilgili bilgileri göster
-l : list
-q : quiet. Ekstra ayrıntılara (sürüm no, repo adı vs) girmeden sadece isimleri listele.
-s : search. depolarda arama yap.
Depolarda chromium aramak için
pacman -Ss chromium-y : refresh. depolardan paket listesini tekrar indir (-Syy : liste yeniyse bile tekrar indir)
-u : upgrade. Tüm kurulu paketleri güncelle (-Suu: depodaki paket kurulu sürümden eskiyse bile güncelle)
-w : indir, ama kurma
File system (-F) işlemleri ile kullanılabilecek anahtar:
-s :
-yy : force update. Henüz yeni güncellenmiş olsa da yine de paket listesini güncelle.
pacman -Fy
pacman -F libmozgtk.so
pacman -F /usr/lib/firefox/libmozgtk.so
Yukarıdaki ilk adımda pacman'in dosya/paket listesini güncellemesini, ikinci adımda libmozgtk.so dosyasının hangi paketlerde bulunabileceğini, üçüncü adımda ise tam yolu verilen dosyanın hangi paketlerde bulunabileceğini sorguluyoruz. Buna benzer bir işlev pkgfile ile de sunuluyor:
pkgfile lsb-release
pkgfile /etc/lsb-releaseGenel bir anahtar:
-p : işlemi yapmaktansa sadece işlemin uygulanacağı paket adını yaz.
Birkaç örnek üzerinden gidelim:
pacman -Syy // yerel paket verisini sunucularla eşleştir (sync)
pacman -Syu // tüm paketleri güncelle
pacman -Ss firefox // repository'lerde adında firefox geçen paket ara
pacman -Ssq ^firefox$ // tam adı firefox olan paketi ara, ayrıntısız
pacman -S firefox // firefox'u depolardan kur
pacman -S extra/firefox // belli bir depodan kur
pacman -U /home/user/package // sistemdeki yerel dosyayı kur
pacman -U http://github/... // bir URL'den dosya kur
pacman -S gnome // gnome paket grubunu kur
pacman -R firefox // bir paket kaldır
pacman -Rs apache // bir paket ve tüm alt bağımlılıklarını kaldır
pacman -Rns $(pacman -Qtdq) // sistemdeki tüm kullanılmayan paketleri temizle/kaldır
pacman -Ru gnome // tüm gnome paket grubunu kaldır
pacman -Q | more // tüm kurulu paketleri listele
pacman -Ql apache // apache tarafından kurulan tüm dosyaları listele
pacman -Ss chromium // depolarda bir paket ara
pacman -Qs firefox // kurulu paketlerin içinde bir paket ara
pacman -Si chromium // kurulu olmayan bir paket hakkında bilgileri göster
pacman -Qi apache // kurulu bir paket ile ilgili bilgileri gösterpacman -Qk // kurulu paketlerin dosya bütünlüğünü kontrol eder.Kurulu olması gereken dosyalar kurulu mu, yetkilendirme doğru mu, bakar.pactree apache // bir paket ile ilgili bağımlılık ağacını göster
pacman -Qdt // artık gerekli olmayan paketleri listele
pacman -Sc // cache verileri temizle
pacman -Scc // cache belleğe alınan paketleri sil
pacman -Qo netctl // netctl dosyasını hangi paket kurmuş göster
pacman-optimize // optimize pacman
Ayrıca pacman'in yapılandırmasını /etc/pacman.conf dosyasını düzenleyerek de yapabiliriz. Örneğin şu ayarlar mümkün:
Color # renkli çıkış
CheckSpace # indirme yaparken her seferinde diskte boş yer var mı kontrol et
VerbosePkgList # kurulacak paketler ile ilgili ayrıntılı bilgi
TotalDownload # dosya bazında değil, tüm indirmelerin ne kadarının tamamlandığını göster
2021-12-23 ek:
Kurulu çekirdekleri listelemek için:
$ pacman -Qsq ^linux | grep -E '^linux[0-9]{2,3}$'
veya
$ ls -l /boot/vmlinux*
ve hatta sadece Manjaro'ya özel
$ mhwd-kernel -li
kullanılabilir.
---
2018-07-09
Komut satırından harici IP adresi bulmak
OpenDNS ile:
dig +short myip.opendns.com @resolver1.opendns.comBu sayede öğrendim ki OpenDNS sunucuları üzerinde myip.opendns.com için yapılan sorgularda sorguyu yapan istemcinin adresi dönüyormuş.
Web Hizmeti ile:
Aynı www.whatismyip.com gibi bir sayfaya girerek bakmak gibi, ama düz metin olarak IP dönüyor:curl -S http://whatismyip.akamai.com
Elbette şu sayfada whatismyip.akamai.com için alternatifler de verilmiş.
2021 güncellemesi: Şu video'da gördüm ki
curl ifconfig.me
gibi daha da basit olabiliyormuş.
2022 güncellemesi: Yeni bir alanadı
curl echoip.xyz
ya da
curl ipecho.net/plain
ya da
curl icanhazip.com
belki de
curl ifconfig.io
hatta
curl wtfismyip.com/text (json da var)
ve hatta
iwr api.ipify.org
Bir de bunları Windows'da yapmanın yollarını bulmak istedim. dig'in Windows eşdeğeri (basit bir DNS sorgusu yapmak aslında) nslookup veya Resolve-DnsName olabilir:
nslookup myip.opendns.com resolver1.opendns.comAma bu komut sonunda tek satırlık bir hedef dönmüyor, en alt satırdaki sonuca odaklanmak lazım.
Ya da Powershell eşdeğerini kullanarak
PS> (Resolve-DnsName -Name myip.opendns.com -Server resolver1.opendns.com).IPAddressCurl'un eşdeğerini aradığımda da zaten curl diye bir alias'ı bulunan Invoke-WebRequest cmdlet'ini gördüm. Sadece IP adresini döndürmek için alias'ı kullanarak:
PS> curl http://whatismyip.akamai.com | select -ExpandProperty content
2018-06-01
Windows'da güncelleştirmeleri komut satırından yükleme
Linux ile fazla içli dışlı olunca insan Windows'da da aynı şeyleri arıyor. Linux'taki bütün güncellemelerin komut satırından yönetilmesi çok güzel. Powershell ile bunu Windows'da yapmayı bulunca çok hoşuma gitti.
Sanıyorum sürüm 3'ten beri Powershell'de PoweShellGet adında bir sağlayıcı (provider) bulunuyor. Bu sağlayıcı aracılığıyla bazı ek paketler (packages) yüklenebiliyor. Bunlardan biri de PSWindowsUpdate paketi.
Öncelikle PowerShell ile gelen modülleri görelim:
PS> Get-Module -ListAvailable
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.1.7.2 PackageManagement {Find-Package, Get-Package, ...
Manifest 2.0.2 Posh-SSH {Get-SCPFile, Get-SCPFolder, ...
Script 1.6.5 PowerShellGet {Find-Command, Find-DSCResource, ...
Binary 2.0.0.4 PSWindowsUpdate {Enable-WURemoting, Get-WUJob, ...
Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Manifest 1.0.0.0 ActiveDirectory {Add-ADCentralAccessPolicyMember,...
Manifest 1.0.0.0 AppBackgroundTask {Disable-AppBackgroundTaskDiagnosticLog, ...
Manifest 2.0.0.0 AppLocker {Get-AppLockerFileInformation, ...
Liste bu kadar değild, kısa kestim. Burada kalın olarak vurguladığım kısım, bahsettiğim PowerShellGet modülü. Yanında bu modül ile gelen cmdlet'ler listelenmiş. Ben bunu güncellediğim için sürüm 1.6.5 gözüküyor. Güncellemek için
PS> Install-Module -Name PowerShellGet
kullanmak gerek. Tüm kurulumlar için yönetici yetkileri gerek. Ayrıca bu adımda NuGet'i de kurmak isteyecek, izin vermek durumundayız. Bunu yapınca sistemde 2 tane PoweShellGet olabilir, eski sürümü
$env:ProgramFiles\WindowsPowerShell\Modules\PowerShellGet
konumundan silebiliriz. Aslında Update-Module diye de bir cmdlet var, ama sadece Install-Module ile kurulan modüller Update-Module kullanarak güncellenebiliyormuş
Sonrasında PowerShellGet sağlayıcısının içinde ne gibi paketler var diye bakmak için Find-Package cmdlet'ini kullanabiliriz (öncesinde execution policy'yi remotesigned olarak ayarlamak gerekebilir):
Find-Package -ProviderName PowerShellGet
Bende 2820 tane paket çıktı. Bu paketlerden biri de PSWindowsUpdate. Yüklemek için şu komudu kullandım:
Install-Package -Name PSWindowsUpdate
Birkaç saniye içinde kuruldu. Bu paket ile acaba hangi komutlar geldi?
PS> Get-Command -Module PSWindowsUpdate
CommandType Name Version Source
----------- ---- ------- ------
Alias Download-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Get-WUInstall 2.0.0.4 PSWindowsUpdate
Alias Get-WUList 2.0.0.4 PSWindowsUpdate
Alias Hide-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Install-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Show-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias UnHide-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Alias Uninstall-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Add-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Enable-WURemoting 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUApiVersion 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUHistory 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUInstallerStatus 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUJob 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WULastResults 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WURebootStatus 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUSettings 2.0.0.4 PSWindowsUpdate
Cmdlet Get-WUTest 2.0.0.4 PSWindowsUpdate
Cmdlet Invoke-WUJob 2.0.0.4 PSWindowsUpdate
Cmdlet Remove-WindowsUpdate 2.0.0.4 PSWindowsUpdate
Cmdlet Remove-WUServiceManager 2.0.0.4 PSWindowsUpdate
Cmdlet Set-WUSettings 2.0.0.4 PSWindowsUpdate
Cmdlet Update-WUModule 2.0.0.4 PSWindowsUpdate
Şimdi Windows güncellemelerini kontrol edelim:
PS> Get-WindowsUpdate
Bu aşamada her güncelleştirme için status sütununda bazı kısatlamar yer alacak. Bunların anlamları şöyle:
[A|R]DIMHUB:
A: Accepted (kabul edilmiş)
R: Rejected (kabul edilmemiş)
D: Downloaded (indirilmiş)
F: Download failed (indirme başarısız)
?: Invoked (sanıyorum kurulumuna başlanmış ve devam eden)
I: Installed (kurulmuş)
R: Reboot required (tekrar başlatma bekleniyor)
M: Mandatory (zorunlu)
H: Hidden (gizlenmiş)
U: Uninstallable (kaldırılabilir)
B: Beta (test aşamasında)
Bu güncellemelerin tümünü indirip kurmak istiyorsak şunu yapabiliriz:
PS> Get-WindowsUpdate -AcceptAll -Install -
Ya da belli birkaç güncelleştirmeyi saat 23:30'da kurmak üzere zamanlamak ve sonrasında gerekiyorsa otomatik olarak tekrar başltmak için:
PS> Get-WindowsUpdate -KBArticleID KB7585315 -AcceptAll -Install -ScheduleJob (Get-Date -Hour 23 -Minute 30 -Second 0) -AutoReboot
Tüm bu komutların -ComputerName anahtarını kullanarak uzak bir veya birkaç bilgisayarda da yapabiliriz.
PowershellGet altında dikkatimi bir paket daha çekti: PSScreenFetch. Linux altındaki screenfetch'in bir benzeri olabilir mi diye bir de bunu kurayım dedim:
PS> Install-Package -Name PSScreenFetch
Sonrasında da bu paket ile acaba hangi komutlar geldi diye baktım:
PS> Get-Command -Module PSScreenFetch
CommandType Name Version Source
-------------------- ----- ------- ------
Function Invoke-PSScreenFetch 0.0.3 psscreenfetch
Gelen Invoke-PSScreenFetch'i çalıştırdım ve sürpriz...
Windows için screenfetch! Tek kötü tarafı, sadece Windows 10'da çalışıyor. Madem yaptınız, az daha uğraşıp diğer sürümlerde de çalıştırsaydınız ya... :/
---
2018-05-23
Fedora 28'e yükseltme sorunu
Error:
Problem: nss-pem-1.0.3-6.fc27.i686 has inferior architecture
- nss-pem-1.0.3-6.fc27.x86_64 does not belong to disupgrade repository
- problem with installed package nss-pem-1.0.3-6.fc27_i686
Sorunun bir dnf hatasından kaynaklandığı, çözüm olarak nss-pem'i elle kurulması önerilmiş [1]:
sudo dnf install nss-pem-1.0.3-9.fc28
ya da daha açık bir şekilde sürüm 28 için [2]:
sudo dnf install nss-pem-1.0.3-9.fc28 --releasever=28
İşe yaradı.
---
[1] https://ask.fedoraproject.org/en/question/119529/upgrade-issue-does-not-belong-to-a-distupgrade-repository/
[2] https://bodhi.fedoraproject.org/updates/FEDORA-2018-7f8b60cd0e
2018-05-15
Windows komut satırı gelişmiş kullanımı
Şu sayfada bazı ileri seviye teknikler anlatılmış. Benim ilgilendiğim ise iki bölümden oluşan bir komutun birinci ve ikinci kısımlarını tekrar yazmadan kullanabilmek.
Örneğin şöyle bir komut kullandığımızı varsayalım:
ping hedefpc1Burada komut boşlukla ayrılan iki bölümden oluşuyor. Birinci bölüm ping komutu, ikinci bölüm ise bilgisayar adı.
Eğer arka arkaya birkaç cihazı ping'lemek istiyorsak bu komuttaki ilk bölüm aynı kalacak, ikinci bölüm değişecek demektir. Her seferinde ise ping'i yazmaktan kurtulabiliriz. Bunun için önce F2'ye sonra da boşluk tuşuna basmak olacaktır. Bu tuş kombinasyonu bize bir önceki komutun ilk boşluk karakterine kadarki kısmını verecektir. Sonrasında bilgisayar ismini yazarak devam edebiliriz.
Veya tam tersi bir durum olsun. Varsayalım ki önce hedefin ICMP'ye cevap verip vermediğini kontrol ettik, eğer cevap veriyorsa başka bir işlem yapmak istiyoruz. Bu durumda bilgisayar adını yazmadan sadece ping komutunu başka bir komut ile değiştirmek istiyoruz. Bu durumda yapılacak olan önce F8 tuşu ile bir önceki komudu ekrana getirmek (takipçi otomatik olarak satır başına konumlandırılır) ve daha sonra F4'e ve boşluk tuşuna basmak. Bu şekilde boşluk karakterine kadar olan kısım (yani ping) silinir, sadece bilgisayar adı kalır.
Evet, bunun yerine linux terminalindeki gibi sadece Ctrl+w kısa yolunun olmasını isterdim, ama elimizdeki bu.
Bir de son olarak komut satırında kullanılan fontu değiştirmek var. Bu da aynı komut satırını yıllardır görüp sıkılanlar için. Komut satırı fontlarını değiştirmek için sistem menüsünden özelliklere gelerek Font sekmesine geçebiliriz. Ama buraya sistemde yüklü olan bütün fontlar gelmeyecektir. Buraya gelmesini istediğimiz fontlar için Windows kayıt defterine bazı girişler yapmak gerek.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
anahtarı altına adı ilk fonta ait kayıt defteri değeri adı "00"dan (çift sıfır) başlayarak, ikincisi "000" (üç sıfır) diye her seferinde 1 fazla sıfır "0" koyarak girişler yapmak, bunların da değerlerini font ismi olarak ayarlamak gerek. Örneğin ben Google'ın Noto Mono fontlarını kullanmak istedim. Bu font, girdiğim ilk ek font olduğu için "00" ismini kullandım. İkincisini girmek isteseydim "000" kullanacaktım. Bu girişin değeri olarak da "Noto Mono" (tabi öncesinde ilgili fontları download etmek lazım) yazdım, aşağıdaki gibi:
Nihayetinde font sekmesinde artık seçimim gözüküyor. Buraya sadece sabit genişlikli fontların (monospace) eklenmesini tercih etmek isteyebilirsiniz.
Bu yöntemin bir dezavantajı, F7 geçmiş menüsünde olduğu gibi karakter tabanlı pencere kenarlıkları istenilen şekilde görüntülenemiyor.


