27 Şubat 2020 Perşembe
23 Şubat 2020 Pazar
Message Of The Day
Giriş
Açıklaması şöyle.
Şöyle yaparız.
Açıklaması şöyle.
In general, the motd is the daily message from you the administrator to users as they log on.Mesaj /etc/motd dosyasına yazılır. Açıklaması şöyle.
Place the warning in your motd file, conventionally /etc/motd.Örnek
Şöyle yaparız.
echo "Server will be going down at 11:00pm UTC, March 1st, for updates." |
sudo tee -a /etc/motd
20 Şubat 2020 Perşembe
/dev/input/mouse Özel Dizini
X11 Window System
X11 Pencere Sistemi Nedir?
Grafik arayüz altyapısıdır. Basitçe iki kısımdan oluşur
1. Display Server
2. Xlib kütüphanesi
Display Server Nedir
Açıklaması şöyle. X11 ağ üzerinden de çalışmak üzere tasarlandığı için istemci-sunucu yapısındadır. Örneğin bir başka bilgisayarda çalışan tarayıcının görüntüsünü kendi bilgisayarımda görebilir. Window terminoloji ile konuşursak Remote Desktep (Uzak Masaüstü) açmış gibi olurum. Farklı olarak karşı bilgisayardaki tüm masaüstü yerine sadece bir uygulamaya erişimin olur.
Açıklaması şöyle. X11 ağ üzerinden de çalışmak üzere tasarlandığı için istemci-sunucu yapısındadır. Örneğin bir başka bilgisayarda çalışan tarayıcının görüntüsünü kendi bilgisayarımda görebilir. Window terminoloji ile konuşursak Remote Desktep (Uzak Masaüstü) açmış gibi olurum. Farklı olarak karşı bilgisayardaki tüm masaüstü yerine sadece bir uygulamaya erişimin olur.
Bu yapı yüzünden X11 bir sunucuya ihtiyaç duyar.
A display server or window server is a program whose primary task is to coordinate the input and output of its clients to and from the rest of the operating system, the hardware, and each other. The display server communicates with its clients over the display server protocol, a communications protocol, which can be network-transparent or simply network-capable. For instance Xorg and Wayland are display server communications protocols.Şeklen şöyle
Display Server Olmak Zorunda mı ?
Eğer sadece yerel bilgisayarda bir şey yapmak istiyorsam, gerekli değil. Açıklaması şöyle
You can display graphics using the Linux frame-buffer interface without X11 or Wayland at all.The fbida package includes the fbi image viewer, which can run directly on the virtual console. You can't get much more light-weight than that.
DISPLAY Ortam Değişkeni
Açıklaması şöyle
The remote server knows where it has to redirect the X network traffic via the definition of the DISPLAY environment variable which generally points to an X Display server located on your local computer.The value of the display environment variable is:hostname:D.Swhere:hostname is the name of the computer where the X server runs. An omitted hostname means the localhost.D is a sequence number (usually 0). It can be varied if there are multiple displays connected to one computer.S is the screen number. A display can actually have multiple screens. Usually, there's only one screen though where 0 is the default.
Örnek
Şöyle yaparız. Yerel makinedeki ekranın ne kadar süredir kullanılmadığını gösterir.
DISPLAY=":0" xprintidle
Açıklaması şöyle. Yani X11 pencerece sistemini Linux üzerinde gerçekleştirir.
Most Linux distribution uses X.Org Server which is the free and open-source implementation of the display server for the X Window System (X11) stewarded by the X.Org Foundation.
İsmi Neden X11
Açıklaması şöyle. X protokolünün geliştirilmesine 1984 yılında başlandı. 1987 yılında ise 11. sürümü yayınlandı. İsmi de X11 olarak kaldı.
X11 scriptleri /etc/X11 dizininde bulunur. X11 yerine ileriki zamanlarda Wayland kullanılacak.
Konuyla ilgili startx komutu yazısına bakabilirsiniz.
Ayrıca X11 İstemcisi yazısına da bakabilirsiniz
Mimari
Mimarisel olarak şöyle.
Açıklaması şöyle.
X11 uzaktaki makineye bitmap değil sadece çizim talimatlarını gönderir. Açıklaması şöyle.
Ancak zamanla bu durum değişti. Açıklaması şöyle.
The X Window System, X11 (X version 11) is a windowing system for bitmap displays, common on Unix-like operating systems, X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting with a mouse and keyboard. X does not mandate the user interface, this is handled by individual programs. As such, the visual styling of X-based environments varies greatly; different programs may present radically different interfaces. X originated at the Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at version 11 (hence "X11") since September 1987.X11 Script Dizini
X11 scriptleri /etc/X11 dizininde bulunur. X11 yerine ileriki zamanlarda Wayland kullanılacak.
Konuyla ilgili startx komutu yazısına bakabilirsiniz.
Ayrıca X11 İstemcisi yazısına da bakabilirsiniz
Mimari
Mimarisel olarak şöyle.
┌───────────────────────────────────────────────┐
│ User │
│ ┌─────────────────────────────────────────┤
│ │ Application │
│ │ ┌──────────┬─────┬─────┬─────┤
│ │ │ ... │ SDL │ GTK │ SDL │
│ │ ├──────────┴─────┴─────┴─────┤
│ │ │ xLib │
│ │ ├────────────────────────────┤
├─────┴───┬────────┴──┐ X11 │
│ Gnu │ Libraries │ Server │
│ Tools │ │ │
├─────────┘ │ │
├─────────────────────┤ │
│ Linux (kernel) │ │
├─────────────────────┴─────────────────────────┤
│ Hardware │
└───────────────────────────────────────────────┘
X11 User Space' te ÇalışırAçıklaması şöyle.
This runs in user-land (outside of the kernel): it is just another process, with some privileges. The kernel does not get involved, except to give access to the hardware. And providing inter-process communication, so that other processes can talk with the X11 server.Forwarding
X11 uzaktaki makineye bitmap değil sadece çizim talimatlarını gönderir. Açıklaması şöyle.
The X11 protocol was never meant to handle graphically (in terms of bitmaps/textures) intensive operations. Back in the day when X11 was first designed computer graphics were a lot simpler than they are today.Açıklaması şöyle.
Basically X11 doesn't send the screen to your computer, but it sends the display-instructions so the X-server on your local computer can re-create the screen on your local system. And this needs to be done on each change/refresh of the display.
So your computer receives a stream of instructions like "draw line in this color from coordinates x,y to (xx,yy), draw rectangle W pixels wide, H pixels high with upper-left corner at (x,y), etc."
The local client isn't really aware what needs to be updated and the remote system has very little information on what the client actually needs, so basically the server must send a lot of redundant information that the client may or may not need.
This is very efficient if the display to be rendered consists of a limited number of simple graphical shapes and only a low refresh frequency (no animations and such) is needed. Which was the case back in the days when X11 was first developed.
But modern GUI's have a lot of eye-candy and much of that needs to be send from the remote system to your client in the form of bitmaps/textures/fonts which take quite a lot of bandwidth. And all sorts of eye-candy includes animated effects requiring frequent updates. And the displays keep getting bigger too, twice as wide/high is 4x the number of pixels.
The reason X11 forwarding is called "X11 forwarding" is because it transports the actual X protocol messages used by applications to render their windows on the "X server" (typically Xorg). Those messages are commands for creating/moving windows, drawing text and graphical primitives (lines/rectangles), drawing bitmaps, etc.X11 Verimsizliği
You could say it's conceptually the opposite of "full screen image" protocols such as VNC/RFB. I think it is somewhat comparable to Windows' RDP, which was also made for transporting GDI drawing commands.
Ancak zamanla bu durum değişti. Açıklaması şöyle.
Over time this changed, programs started doing the rendering by themselves, and many of those instructions became just "here's a bitmap which I already rendered, put this on screen" – very fast locally, but very slow over the network due to X11 lacking any image compression.This means programs built using modern toolkits are much slower over networked X11, even if it's something as basic as antialiased fonts.(In contrast, RDP has adapted over time and includes various forms of image compression such as JPEG and even H.264; you can often notice the compression artifacts while the full image is loading.)
18 Şubat 2020 Salı
bash kodlama - exit built-in komutu
Giriş
Açıklaması şöyle.
Açıklaması şöyle.
Şöyle yaparız.
Açıklaması şöyle.
exit exits the current shell process.Örnek
Açıklaması şöyle.
Şöyle yaparız.Bash's exit status is the exit status of the last command executed in the script. If no commands are executed, the exit status is 0.
my_ip=$(resolve_ip) || exit
master_ip=$(resolve_ip "$hostname") || exit
if [ "$my_ip" = "$master_ip" ]; ...
ÖrnekŞöyle yaparız.
#!/bin/bash
if ...
then
...
else
exit 1
fi
17 Şubat 2020 Pazartesi
ip route komutu - static route ekler
Giriş
ip komutu ile birlikte birçok object kullanılabilir. Bunlar şöyle
link, addr, addrlabel, route, rule, neigh, tunnel, maddr, mroute, monitor.
Bu yazıda route anlatılıyor.
Seçeneksiz Kullanım
Örnek
Şöyle yaparız.
Örnek
Açıklaması şöyle.
Şöyle yaparız.
get seçeneği
Bir IP adresine nasıl ulaşacağımı öğrenmek için kullanılır. Kullanım şekli şöyledir.
Kendi IP adresimi öğrenmek için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Eğer birden fazla arayüz kartım varsa ve 255.255.255.255 broadcast adresine mesaj göndermek istersem hangi arayüzünü kullanılacağını öğrenmek için şöyle yaparız.
ip komutu ile birlikte birçok object kullanılabilir. Bunlar şöyle
link, addr, addrlabel, route, rule, neigh, tunnel, maddr, mroute, monitor.
Bu yazıda route anlatılıyor.
Seçeneksiz Kullanım
Örnek
Şöyle yaparız.
default ile başlayan satırlar ağ kartlarını (network card) gösterir. Açıklaması şöyle.$ ip route
default via 10.2.0.1 dev enp9s0 proto dhcp metric 100 default via 192.168.178.1 dev wlp6s0 proto dhcp metric 600
10.2.0.0/24 dev enp9s0 proto kernel scope link src 10.2.0.2 metric 100 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 192.168.178.0/24 dev wlp6s0 proto kernel scope link src 192.168.178.210 metric 600
If you have multiple WAN connections and both are set up correctly, the system will set up default routes for you. Those are a "catch-all" rule for everything that is sent.Hangi kartın tercih edileceği sondaki sayı ile belirtiliyor. Açıklaması şöyle.
One of those connections (10.2.0.1) is a LAN connection, the other is wireless (192.168.178.1). If both are present, the number at the end decides which connection should be preferred, the lower number having higher importance.Eğer her iki kart aynı önceliğe sahipse ilki terchi edilir. Açıklaması şöyle.
And if both default routes have the same metric, then the first one added will take priority.add seçeneği
Örnek
Açıklaması şöyle.
It's important to notice that the ip command will only block the return traffic not the incoming traffic. That means incoming traffic from that IP range may still consume some resources on your host by creating half-open TCP connections or sending packets to stateless services (usually UDP based).Şöyle yaparız.
For those reasons a firewall rule such as those created with ufw will likely work better for your particular use case than an ip route command.
ip route add unreachable 78.128.113.0/24
del seçeneğiŞöyle yaparız.
ip route del 10.0.0.1 via 192.168.1.1 dev eth0eth0'ın ip'si 192.168.1.1 olmasına rağmen niye bir daha yazılır bilmiyorum.
get seçeneği
Bir IP adresine nasıl ulaşacağımı öğrenmek için kullanılır. Kullanım şekli şöyledir.
ip route get <address>
ÖrnekKendi IP adresimi öğrenmek için şöyle yaparız.
ip route get 1|awk '{print$NF;1/0}'
eth0'daki IP adresim 192.168.0.121 olsun. awk olmasaydı çıktısı şöyle olurdu$ ip route get 1
1.0.0.0 via 192.168.0.1 dev wlan0 src 192.168.1.22
cache
ÖrnekŞöyle yaparız.
ip route get 8.8.8.8 | awk ' /^[0-9]/ { print $7 }'
ÖrnekŞöyle yaparız.
$ ip route get 4.2.2.1
4.2.2.1 via 192.168.0.1 dev eth0 src 192.168.0.121
cache
ÖrnekŞöyle yaparız.
$ ip route get 192.168.0.116
192.168.0.116 dev eth0 src 192.168.0.121
cache
ÖrnekEğer birden fazla arayüz kartım varsa ve 255.255.255.255 broadcast adresine mesaj göndermek istersem hangi arayüzünü kullanılacağını öğrenmek için şöyle yaparız.
$ ip route get 255.255.255.255
broadcast 255.255.255.255 dev eth0 src 192.168.0.121
cache <local,brd>
Bazı eski kodlarda, arayüzün broadcast adresi yerine 255.255.255.255 adresi kullanılıyor. Sorun çıkarsa bu yöntem işe yarıyor.nmcli komutu - Network Manager İçin Komut Satırı
Giriş
Network Manager için komut satırıdır. Bu komut biraz karışık.
komut + seçenek + object + object için command şeklinde bir söz dizilimi var
-a seçeneği
ask anlamına gelir. Şöyle yaparız.
Şöyle yaparız.
Örnek
Wifi kartını kapatmak için şöyle yaparız
Network Manager için komut satırıdır. Bu komut biraz karışık.
komut + seçenek + object + object için command şeklinde bir söz dizilimi var
-a seçeneği
ask anlamına gelir. Şöyle yaparız.
nmcli -a con up [SSID]
1. general Object'iŞöyle yaparız.
nmcli g
Çıktı olarak şuna benzer bir şey alırız.DURUM BAĞLANTI WIFI-HW KABLOSUZ WWAN-HW WWAN
bağlandı tam etkin etkin etkin etkin
2. networking Object'iÖrnek
Wifi kartını kapatmak için şöyle yaparız
nmcli networking off
Örnek
Bağlantı durumunu öğrenmek için şöyle yaparız nmcli networking connectivity
connectivity [check]
Get network connectivity state. The optional check argument tells NetworkManager to
re-check the connectivity, else the most recent known connectivity state is displayed
without re-checking.
Possible states are:
none
the host is not connected to any network.
portal
the host is behind a captive portal and cannot reach the full Internet.
limited
the host is connected to a network, but it has no access to the Internet.
full
the host is connected to a network and has full access to the Internet.
unknown
the connectivity status cannot be found out.
3. radio Object'i
Örnek ver
4. connection Object'i
Network kartlarını (NIC) yönetmek için kullanılır. NIC'leri listelemek için şöyle yaparız.
Örnek ver
4. connection Object'i
Network kartlarını (NIC) yönetmek için kullanılır. NIC'leri listelemek için şöyle yaparız.
nmcli con
Çıktı olarak şuna benzer bir şey alırız.İSİM Kullanıcı Kimliği TİP AYGIT
AIRTIES_RT-204 48103e7e-726f-4ac8-85b3-20d3d521fc79 802-11-wireless --
...
delete komutu
Bir NIC'i silmek için şöyle yaparız
down komutunmcli con delete eth0
Örnek
Şöyle yaparız.
nmcli con up id wifiman
Şöyle yaparız.
nmcli connection modify {networkwifiname} connection.autoconnect-priority 10
up komutuÖrnek
Şöyle yaparız.
nmcli con down id wifiman
ÖrnekŞöyle yaparız.
nmcli -a con up [SSID]
5. device Object'iŞöyle yaparız.
nmcli d
Çıktı olarak şuna benzer bir şey alırız.AYGIT TİP DURUM BAĞLANTI
wlan0 wifi bağlandı --
...
6. agent Object'i
Örnek ver7. monitor Object'i
Örnek ver
less komutu
Giriş
more komutunun daha gelişmiş halidir. Açıklaması şöyle.
Karşılaştırma
Açıklaması şöyle.
Çok az bellek kullandığı için büyük dosyaları görmek için kullanılabilir. Açıklaması şöyle.
Açıklaması şöyle.
Açıklaması şöyle.
Açıklaması şöyle.
Açıklaması şöyle.
Açıklaması şöyle.
less kullanırken bazı tuşlar da işe yarar.
1. Q Tuşu
less uygulmasından çıkış sağlar. Açıklaması şöyle.
more komutunun daha gelişmiş halidir. Açıklaması şöyle.
more is the oldest, less is an improvement and most is an improvement on that.
Kısayollar
Açıklaması şöyle
Navigate:j: go one line downk: go one line upz: go one page downw: go one page upg: go to the topG: go to the bottomYou can also search in the documentation:/: search from the cursor downwards?: search from the cursor upwardsn: go to the next matchN: go to the previous match
Açıklaması şöyle.
Short comparison:Bellek Kullanımı
more: forward navigation and limited backward navigation.
less: both forward and backward navigation and also has search options. You can go to the beginning and the end of a file instantly. Plus you can switch to an editor (like open the file in vi or vim). It is noticeably quicker than editor for when the file is large.
most: has all the features of more and less but you can also open multiple files, close 1 file at a time when you have multiple files open, allows locking and scrolling of the open windows and allows for splitting of open windows.
Çok az bellek kullandığı için büyük dosyaları görmek için kullanılabilir. Açıklaması şöyle.
GNU less only uses a default of 64k of buffer space when viewing an arbitrarily large file.Sayfalama
Açıklaması şöyle.
The output is paged through less by default, and long lines are "truncated" to screen-F seçeneği
width. The hidden part can be viewed by using the left-arrow and right-arrow keys. Paging
can be disabled; see the --no-pager option and the "Environment" section below.
Açıklaması şöyle.
Exit if the entire file can be displayed on the first screen (F)Şöyle yaparız
git config --global core.pager 'less -FRSX'
-R seçeneğiAçıklaması şöyle.
Output the raw control characters for terminal formatting (R)-S seçeneği
Açıklaması şöyle.
Chop long lines (S)-X seçeneği
Açıklaması şöyle.
Don't send the init/de-init strings to the terminal - avoids clearing the screen on exit (X)Tuşlar
less kullanırken bazı tuşlar da işe yarar.
1. Q Tuşu
less uygulmasından çıkış sağlar. Açıklaması şöyle.
q or Q or :q or :Q or ZZ
Exits less.
bash kodlama $! gömülü değişkeni - Arka Planda Çalıştırdığımız Son İşin Numarasını Verir.
Giriş
$! değişkeni arka planda çalıştırdığımız son işin numarasını verir. Arka planda çalıştırmak için komut& şeklinde kullanmak gerekir.
Örnek
Şöyle yaparız.
Elimizde şöyle bir kod olsun.
$! değişkeni arka planda çalıştırdığımız son işin numarasını verir. Arka planda çalıştırmak için komut& şeklinde kullanmak gerekir.
Örnek
Şöyle yaparız.
./called.sh &
called_pid=$!
# Later
kill $called_pid
ÖrnekElimizde şöyle bir kod olsun.
$(sleep 5) &
echo $!
Bu kod arka planda çalıştırılan işin numarasını dönmez. Açıklaması şöyle.runs a shell which runs sleep. The pid given by $! is the shell’s.Düzeltmek için şöyle yaparız.
sleep 5 &echo $!
Kaydol:
Kayıtlar (Atom)