30 Ocak 2019 Çarşamba

lsusb komutu

Giriş
Açıklaması şöyle.
lsusb is a utility for displaying information about USB buses in the system and the devices connected to them.
USB Kablosu
Açıklaması şöyle.
Classic USB had 4 wires. Power, Ground, data+ and data-. Power will be 5V when present (with some tolerance). Ground is defined as zero Volts. Data+ and Data- are often 3.3V signals, but they are not required to be.
Power Kablosundaki Voltaj
Açıklaması şöyle.
For versions 1 and 2 of USB The spec says 5V +/- 5%, so you should design to accept 4.75V to 5.25V.

USB Version 3.something introduces the availability of increased voltages (up to 20V). but a device has to explicitly request increased voltage, else they just get the same Approximately 5V.
USB Hızı
Açıklaması şöyle.
USB is defined at several data rates.

- 12 Mbps is called "Full Speed"
- 480 Mbps is called "High Speed"
- 5 Gbps is called "SuperSpeed"
- 10 Gbps is called "SuperSpeed+"

A USB product marketed as "High Speed" should be conforming to at least the USB 2.0 specification, and capable of carrying a 480 Mbps USB High Speed signal.

Örnek
Şöyle yaparız.
$ lsusb
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 0421:0802 Nokia Mobile Phones CA-42 Phone Parent
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
-t seçeneği
Ağaç şeklinde çıktı verir. Şöyle yaparız.
sudo lsusb -t|less
Çıktı olarak şunu alırız.
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=hub, Driver=hub/3p, 480M
            |__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M

28 Ocak 2019 Pazartesi

man komutu

Man Dosyaları Writable Olmamalı
Açıklaması şöyle
man maintains a cache of formatted pages in /var/cache/man or /usr/share/man if the appropriate directories are writable; however, this is a security risk. Most systems preformat the man pages once at installation time (see catman) or not at all.
-H/--html seçeneği
Çıktıyı html haline getirir ve tarayıcıda gösterir. 
Örnek
Şöyle yaparız.
man -Hfirefox mv
Örnek
nano için man sayfasını html olarak firefox ile görmek istersek şöyle yaparız.
man --html=firefox nano
-k seçeneği

Tüm man sayfalarında belirtilen string'i arar. Şöyle yaparız.
man -k foo
-P seçeneği
-P ile hangi pager uygulamasının kullanılacağını belirtiriz. man dosyaları göstermek için pager kullanır. Bazı sistemlerde pager less komutu ike bazılarında more olabilir. more sayfayı renkli gösterdiği için daha iyi.

Örnek
Şöyle yaparız.
man -P most mv
Örnek
cat kullanmak için şöyle yaparız.
man -P cat [[section] page...]
-T seçeneği
pdf çıktı almak için şöyle yaparız.
man -Tpdf man > manpage.pdf
--version seçeneği
Şöyle yaparız.
$ mv --version
mv (GNU coreutils) 8.25
Şöyle yaparız.
$ man --version
man 2.7.5
Diğer

MANOPT Değişkeni
Açıklaması şöyle.
If $MANOP is set, it will be parsed prior to man's command line and is expected to be in a similar format.
Örnek
Şöyle yaparız.
$ MANOPT='foo bar'
$ export MANOPT
$ man man
man: Too many arguments
Try 'man --help' or 'man --usage' for more information.
$
MANPAGER Değişkeni
Pager'ı değiştirmek için ~/bash.rc dosyasına şöyle yaparız.
export MANPAGER=most
Tüm sistem için değiştirmek istersek şöyle yaparız.
sudo update-alternatives --config pager


27 Ocak 2019 Pazar

mount iso9660 - CD-ROM seçenekleri

--nojoliet 
Joliet'i etksiz hale getirir. Açıklaması şöyle.
But the standard allows for extensions, and Microsoft has designed their own extension to the standard called "Joliet" that allows Microsoft Windows compatible operating systems to read different file names with more features (longer names and support Unicode) than the standard ISO 9660 file system allows.

For Unix-style operating systems (such as Linux), another extension called "Rock Ridge" was developed, to allow even longer file names, Unix-style permissions, and a few other things.

It is very common to have both Rock Ridge and Joliet extensions on the same optical medium, but it could be that the creator of that DVD used these extensions in a clever way to only have the MS-Windows related files show in the Joliet part of the system and only have the Linux specific files show in the Rock Ridge part of the system.

--norock seçenekleri
Rock Ridge'i etkisiz hale getirir.

23 Ocak 2019 Çarşamba

strip komutu

Örnek
Şöyle yaparız.
file shared_library.so
Çıktı olarak şunu alırız.
shared_library.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, stripped, with debug_info
-s seçeneği
Açıklaması şöyle.
"stripped" means the shared object (or any compiled object) has been stripped of its debugging symbols (generally by using strip -s object). strip removes debugging symbols resulting in a smaller library, faster load times, etc... Generally you think of "Released" code benefiting from being stripped while "Debug" code would not make sense to be stripped. Not everything is always stripped, there are many options ...


21 Ocak 2019 Pazartesi

md5sum komutu

Giriş
Çıktı olarak 32 karakte verir. Açıklaması şöyle
md5sum always produces a 32-character output for the hash.
Örnek
Şöyle yaparız.
md5sum firefox.tar.gz > md5.txt
-c seçeneği
Kontrol eder. Açıklaması şöyle
With -c, md5sum reads the file specs in the provided MD5 file, compute the MD5 of these files, and compares them to the values from the MD5 file (which is why the file specs are usually better left relative, so you can re-use the MD5 file on files in various directories).
Örnek
Şöyle yaparız.
md5sum * >/path/to/the/checksumfile.md5
Kontrol etmek için şöyle yaparız.
md5sum -c /path/to/the/checksumfile.md5



17 Ocak 2019 Perşembe

fdisk komutu

Giriş
Açıklaması şöyle.
Conversely, if you use fdisk (or any other partitioning tool) to create a new partition table, the tool will overwrite the first few bytes of the disk to store that new table
Örnek - Boot Partition
Şöyle yaparız. /dev/sda1 boot partition olarak işaretli
# fdisk /dev/sda

Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xfa4b1728

Device     Boot  Start        End    Sectors   Size Id Type
/dev/sda1  *      2048     499711     497664   243M 83 Linux
/dev/sda2       501758 1953523711 1953021954 931.3G  5 Extended
/dev/sda5       501760 1953523711 1953021952 931.3G 8e Linux LVM

Partition 2 does not start on physical sector boundary.

Command (m for help): quit
Örnek - Sector Size
fdisk şöyle bir çıktı versin. Diskin fiziksel sektör büyüklüğü 4096, ancak eski ile uyumluluk için 512 gibi davranıyor.
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Disk model: ST500DM002-1BD14
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x000d98d6

Device     Boot Start       End   Sectors   Size Id Type
/dev/sda1        2048 976773167 976771120 465.8G 83 Linux
-l seçeneği
Örnek
Şöyle yaparız
fdisk -l /dev/sda

Disk /dev/sda: 223.57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: CT240BX200SSD1  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 8D5A08BF-0976-4CDB-AEA2-8A0EAD44575E

Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1050623   1048576   512M EFI System
/dev/sda2  1050624 468860927 467810304 223.1G Linux filesystem


9 Ocak 2019 Çarşamba

nice komutu - Reduce The Process CPU Priority

Giriş
Açıklaması şöyle.
NAME
       nice - run a program with modified scheduling priority

SYNOPSIS
       nice [OPTION] [COMMAND [ARG]...]

DESCRIPTION
       Run  COMMAND  with an adjusted niceness, which affects process scheduling.  With
       no COMMAND, print the current niceness.  Niceness values range  from  -20  (most
       favorable to the process) to 19 (least favorable to the process).
- nice uygulama başlamadan önce kullanılır. 
- Koşmakta olan bir uygulamanın önceliğini değiştirmek için renice komutu kullanılır.
- I/O için ionice kullanılır

1. Kullanım
Find komutumuzun çok fazla kaynak tükettiğini düşünüyorsak şöyle yaparız. Burada varsayılan bir değer kadar find komutunun önceliği düşürülüyor.
nice find ...

2. Seçenekler
-n seçeneği
-20 ile 19 arasında değer alabilir.

Örnek
Şöyle yaparız
nice -n 15 java -jar fooApp.jar //Low priority
nice -n -10 java -jar fooApp.jar //High priority

bash variable expansion - Değişkenin Değerine Erişmek - "$variable" Şeklinde

Giriş
$ karakteri bir değişkenin başına gelirse variable expansion olur. Eğer $ karakteri başta değilse başka bir anlama gelir. Açıklaması şöyle
$ does not have a special meaning by itself (try echo $), only when combined with other character after it and forming an expansion, e.g. $var (or ${var}), $(util), $((1+2)).
$ karakterinine sonda olması ile ilgili bazı örnekler şöyle.
echo ab$: literal output, fully specified
echo a$ b: literal output, fully specified
echo a$ b$: literal output, fully specified
echo a$b: expansion of parameter b, fully specified
echo a$-b: expansion of special parameter -, fully specified
echo a$+b: unspecified behaviour
echo "a$ b": unspecified behaviour
Değişkenlerin "$var" şeklinde yani tırnak içinde kullanılması gerekir. Böylece empty words yani boş stringler de işlenir. Açıklaması şöyle
double-quote any expression involving a $VARIABLE, at least if one wanted it to be interpreted by the shell as one single item, otherwise, any spaces in the content of $VARIABLE would throw off the shell.
Örnek
Sıkça yapılan bir hata şöyle.
rm -- $line  # <- no double quotes to expand wildcards
Örnek
Şöyle yaparız.
$ args() { echo "got $# arguments"; }
$ var=""
$ args $var
got 0 arguments    //var has empty word
$ args "$var"
got 1 arguments
Örnek
"${!var}" şeklinde kullanırsak pointer gibi çalışır. Şöyle yaparız.
$ var=test
$ test="my string"
$ echo "$var"
test
$ echo "${!var}"
my string

7 Ocak 2019 Pazartesi

tshark komutu

Pass Sayısı
2 pass yapmak istersek şöyle yaparız.
$ tshark -r test/captures/tls13-rfc8446.pcap -2
  1   0.000000     10.9.0.1 → 10.9.0.2     TLSv1.3 304 Client Hello
  2   0.002634     10.9.0.2 → 10.9.0.1     TLSv1.3 658 Server Hello, Change Cipher Spec,
                                           Application Data
  3   0.005266     10.9.0.1 → 10.9.0.2     TLSv1.3 130 Change Cipher Spec, Application
                                           Data
  4   0.005772     10.9.0.2 → 10.9.0.1     TLSv1.3 468 Application Data
...