10 Aralık 2018 Pazartesi
systemd-ask-password komutu
poweroff komutu
Giriş
DBus vasıtasıyla systemd'ye bağlanır. Aslında altta shutdown komutunu kullanır. Bu komut yerine şöyle de yapılabilir.
DBus vasıtasıyla systemd'ye bağlanır. Aslında altta shutdown komutunu kullanır. Bu komut yerine şöyle de yapılabilir.
gnome-session-quit -poweroff
Bazı sistemlerde yerel bağlantı varsa şifreye gerek yoktur. Açıklaması şöyle
ÖrnekOn some distributions using systemd, poweroff is now a symlink to systemctl, which instructs systemd to shut the system down on behalf of the user, without asking for the password (if the user has sufficient privileges, typically indicated by the fact that they’re using a local session, i.e. they have physical access to the system).
Şöyle yaparız.
poweroff
4 Aralık 2018 Salı
geteuid metodu
Giriş
Dosyanın sahibi olan kullanıcının numarasını döner.
geteid ve getid Farkı
Dosyanın sahibi root olsun.
Dosyanın sahibi olan kullanıcının numarasını döner.
geteid ve getid Farkı
Dosyanın sahibi root olsun.
chmod u+s foo
foo uygulamasını ben çalıştırınca getuid() root user id'sini döner. getid() ise benim user id numaramı döner.SIGINT (Ctrl+C) (2)
Giriş
SIGINT controlling terminal (yani shell) tarafından gönderilir. Kullanıcı Ctrl+C tuşuna basarsa tty sürücüsü bunu yakalar ve shell'i haberdar eder. Shell de kendisine bağlı olarak çalışan ön plandaki (foreground) uygulamayı haberdar eder.
Bu sinyali yakalayan kod yazarsak göz ardı edilebilir ancak bu kodu yazmazsak uygulamamız sonrlanır. Açıklaması şöyle.
- Why Linux always output “^C” upon pressing of Ctrl+C? sorusuna göz atmakta fayda var.
SIGINT controlling terminal (yani shell) tarafından gönderilir. Kullanıcı Ctrl+C tuşuna basarsa tty sürücüsü bunu yakalar ve shell'i haberdar eder. Shell de kendisine bağlı olarak çalışan ön plandaki (foreground) uygulamayı haberdar eder.
Bu sinyali yakalayan kod yazarsak göz ardı edilebilir ancak bu kodu yazmazsak uygulamamız sonrlanır. Açıklaması şöyle.
If you don't handle the SIGINT signal, the default action is to terminate the process (unconditionally).- Windows'ta Linux'taki gibi sinyaller yok. Ancak Ctrl+C console uygulamaları için aynı şekilde çalışıyor. Console Metodları başlıklı yazıya bakabilirsiniz.
- Why Linux always output “^C” upon pressing of Ctrl+C? sorusuna göz atmakta fayda var.
3 Aralık 2018 Pazartesi
bash kodlama - matematiksel işlemler
Giriş
Açıklaması şöyleç
Şöyle yaparız.
Eğer eq, gt gibi matematiksel operatör kullanmayacaksak değişken için dolar işareti eklemek gerekir. Şöyle yaparız.
Açıklaması şöyleç
An arithmetic operator: -eq, -gt, -lt, -ge, -le and -ne inside a [[ ]] (in ksh,zsh and bash) means to automatically expand variable names as in the c language, not need for a leading $.Örnek
Şöyle yaparız.
$ [[ x -eq 3 ]] && echo yes || echo no
yes
$ [[ x -eq 4 ]] && echo yes || echo no
no
ÖrnekEğer eq, gt gibi matematiksel operatör kullanmayacaksak değişken için dolar işareti eklemek gerekir. Şöyle yaparız.
exit_code="$?"
if [[ "$exit_code" != "0" ]]; then
...
fi
SIGKILL (9)
Giriş
Açıklaması şöyle.
Diğer
Linux'da bu sinyali göndermek için "kill -9" komutu kullanılır.
Açıklaması şöyle.
The SIGKILL signal is sent to a process to cause it to terminate immediately. In contrast to SIGTERM and SIGINT, this signal cannot be caught or ignored, and the receiving process cannot perform any clean-up upon receiving this signal.Açıklaması şöyle.
The program actually never receives the SIGKILL signal, as SIGKILL is completely handled by the operating system/kernel.SIGKILL sinyalini durdurmanın yolu yoktur. Uygulama bu sinyali alınca işletim sistemi tarafından kapatılır. Uygulamanın hiçbir şekilde uyarılmadan kapatılır. Hatta uygulamanın kapatılmaması bir hatadır. Açıklaması şöyle
When SIGKILL for a specific process is sent, the kernel's scheduler immediately stops giving that process any more CPU time (and interrupts its currently executing threads, if there is any). As a result, the process itself would never get the chance to actually process the information that it has received a SIGKILL. Then other kernel routines are called to remove the process from memory and free all resources it had open at the time. As usual, the parent (PPID) of the killed process is notified of the death of the child process with a SIGCHLD signal.
In fact, if SIGKILL fails to terminate a process, that by itself constitutes an operating system bug which you should report.
Linux'da bu sinyali göndermek için "kill -9" komutu kullanılır.
2 Aralık 2018 Pazar
jobs komutu
Giriş
Arka planda çalışan işleri gösterir. Çıktısının açıklaması şöyle.
Örnek
Şöyle yaparız.
Arka plandaki iş bitince yine çıktıda + veya - alabiliriz.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Arka planda çalışan işleri gösterir. Çıktısının açıklaması şöyle.
%+ : current job; last job stopped in foreground or started in background
%- : last/previous job
%% : same as +
Arka plandaki iş jobs komutu ile listelendikten sonra fg komutu ile ön plana alınabilir.Örnek
Şöyle yaparız.
$bash: /singh/test1 &
[1] 9223
$bash: /singh/test2 &
[2] 9226
$bash: /singh/test3 &
[3] 9234
$bash: /singh/test4 &
[4] 9237
$bash: jobs
[1] Running /singh/test &
[2] Running /singh/test2 &
[3]- Running /singh/test3 &
[4]+ Running /singh/test4 &
DiğerArka plandaki iş bitince yine çıktıda + veya - alabiliriz.
Örnek
Şöyle yaparız.
$ sleep 10
[1]+ Stopped sleep 10
# by running kill -STOP 28105 on another terminal
Örnek
Şöyle yaparız.
$ set -b
$ sleep 10 &
[1] 27866
$ sleep 10 &
[2] 27868
$ [1]- Done sleep 10
[2]+ Done sleep 10
disown komutu
Giriş
Açıklaması şöyle.
Açıklaması şöyle.
Açıklaması şöyle.
With disown, a process is removed from the list of jobs in the current interactive shell. Running jobs after starting a background process and running disown will not show that process as a job in the shell. A disowned job will not receive a HUP from the shell when it exits-h seçeneği
Açıklaması şöyle.
With disown -h, the job is not removed from the list of jobs, but the shell would not send a HUP signal to it if it exited
Kaydol:
Kayıtlar (Atom)