The CLI |
Namun, dokumentasi tetaplah hal yang mutlak harus dimiliki. Karena otak kita selalu memiliki keterbatasan dalam mengingat sesuatu. Dibawah ini adalah perintah-perintah yang umumnya kita gunakan saat berinteraksi dengan komputer berbasis Command Line Interprets. Catatan ini saya buat secara kasar, ke depan catatan ini akan saya buat spesifik per postingan sehingga penjabarannya lebih baik dan lebih detail.
Selain itu, saya sertakan pula versi command line beberapa aplikasi yang (mungkin) bisa anda jadikan "shortcut" sehingga dapat membantu anda dalam bercommandline ria. Catatan ini akan saya update setiap saya menemukan perintah-perintah yang kiranya bisa memberikan manfaat lebih, sehingga boleh sekali di bookmark atau anda comot commandnya. ;)
Oh ya, kebanyakan catatan ini saya rangkum saat saya menggunakan distro Linux Ubuntu, jadi mungkin di distro lain perintah nya bisa sedikit berbeda.
Berikut adalah commandline harian yang sudah pernah saya coba dan saya dokumentasikan :
Oh ya, kebanyakan catatan ini saya rangkum saat saya menggunakan distro Linux Ubuntu, jadi mungkin di distro lain perintah nya bisa sedikit berbeda.
Berikut adalah commandline harian yang sudah pernah saya coba dan saya dokumentasikan :
Per-List-an dan Metadata File
list file dalam direktori dengan sorting tanggal
ls -lt
list file dalam direktori dengan sorting tanggal, ekstensi tertentu, jumlah tertentuls -lt *.ekstensi_file
list file dengan batas jumlah file tertentuls -lt | head -n banyak_file
list semua file dalam direktori tanpa menampilkan folder "." dan ".."ls -A # biasanya untuk cek apakah folder itu kosong atau tidak
list file dan direktori beserta owner dan permissiontree -pufi /path/to/list
Mengetahui size sebuah folderdu -sh /nama/folder
Mengetahui size semua file dalam sebuah folderdu -sh *
Mengetahui usage hardisk dan berbagai mounting pada komputerdf -h
Melakukan cek status pada sebuah file
stat [nama_file]
Per-SSH-an
mengcopy file ke pc lain (dalam jaringan) melalui ssh
scp -P port_ssh /direktori/file/yang/akan/dicopy username@domain_atau_ip:/directory/target
agar aplikasi yang dipanggil (pada pc yang diremote) tampil secara gui ke pc yang meremotessh -X -Y -p port_ssh username@domain_atau_ip
mengirim perintah via sshssh -P -p port_ssh username@domain_atau_ip 'perintah_yang_dikirim'
jika perlu interaksi seperti memasukkan password saat perintah sudossh -P -t -p port_ssh username@domain_atau_ip 'perintah_yang_dikirim'
ssh tunnel, tunnel ssh ke server tertentu sebagai proxyssh -p port_ssh username@domain_atau_ip -D [port_proxy]
VirtulBox CLI
list vm pada virtualbox
VBoxManage list vms
list vm pada virtualboxVBoxManage list runningvms
start vm pada virtualbox menggunakan cliVBoxManage startvm "nama_vm" --type headles
mematikan vm pada virtualboxVBoxManage controlvm Windows7 poweroff soft
menambahkan vm yang ada (mungkin dari pc lain) ke virtualboxVBoxManage registervm /path/ke/file/[nama_file].vbox
Per-Download-an
download file menggunakan cli
wget "http://urlatauip.domain/nama/folder/yang/akan/di/download" -O [nama_file_terdownload]
ataucurl "http://urlatauip.domain/nama/folder/yang/akan/di/download" -o [nama_file_terdownload]
download seluruh file dalam sebuah folder webserver (tested pada folder ftp)wget -r --no-parent -e robots=off "http://urlatauip.domain/nama/folder/yang/akan/di/download"
download beberapa file pada sebuah list url dalam file sebuah filewget -i /path/ke/file/list/url.txt
Memecah dan Menggabung Isi File
memecah file menjadi beberapa bagian
split --verbose -d -n banyak_pecahan_file nama_file_yang_displit nama_depan_pecahan_
Menggabungkan file yang di split (cara kerja mirip hjsplit)cat namafile* > namafilebaru.ekstensi
Manipulasi String
Menghapus white space / baris kosong (e.g menggabungkan paragraf)
cat namafile | sed '/^$/d'
Menimpa karakter pada nama file/teks, menjadi karakter yang lain, misal misal semua spasi pada teks akan berubah menjadi underscorecat namafile | sed "s/ /_/g" > namafile_baru
cat namafile | nl
Atau mengganti huruf a menjadi oecho "ki joko bodo" | tr "o" "a"
Mengambil kata terakhir dari sebuah variabelecho $var_string | awk '{print $NF}'
Menghapus karakter tertentu pada teks atau operasi file (e.g. menghapus spasi)echo "susu ndak pakai s" | tr -d "s"
Menghapus karakter selain yang disebutkan (e.g. menghapus spasi)echo "dekat sama mbak cantik" | tr -d " "
Menambah line angka pada saat menampikan isi filecat nama_file | grep -n ""
Mengambil value pada kolom 1, baris 3 ("df -h" hanya sebagai contoh string)df -h | grep -v grep | awk 'NR==3{print $1}'
Menghapus kolom 2 pada sebuah list detail ("df -h" hanya sebagai contoh string)df -h | grep -v grep |awk '!($2="")'
memproses string dengan kata sebagai limitercat file.txt| awk -F '[kata_sebagai_limiter]' '{print $1}'
Mengetahui tanggal berapa linux kita di install (fresh install bukan upgrade)sudo ls -alct / | tail -1 | awk '{print $7" "$6" "$8}'
Generate angka random, dibawah ini contoh menggenerate ip-address secara random
echo $((RANDOM%254+0))"."$((RANDOM%254+0))"."$((RANDOM%254+0))"."$((RANDOM%254+0))
Mengubah menjadi huruf kapital diawal stringSTRING="saya ganteng"
echo ${STRING^}
Mengubah menjadi huruf kapital keseluruhanSTRING="saya ganteng"
echo ${STRING^^}
Mengubah menjadi huruf kecil di awal stringSTRING="SAYA GANTENG"
echo ${STRING,}
Mengubah menjadi huruf kecil keseluruhanSTRING="SAYA GANTENG"
echo ${STRING,,}
Cari-Mencari
Mencari kata atau kalimat dalam file pada sebuah kumpulan folder
grep -rnw '/path/folder/yang/dicari' -e "pola yang dicari"
Menampilkan perbedaan konten dua buah file yang identik,grep -xvFf file1 file2 # pastikan file2 adalah file yang paling lengkap
Mencari string tertentu pada file ekstensi tertentugrep -r -i --include \*.[ekstensi_file] "string yang dicari"
Mencari jenis file, folder, symbolic link dengan pola nama tertentu.
find . -name *polaNama* -type f # untuk tipe file
find . -name *polaNama* -type d # untuk tipe folder
find . -name *polaNama* -type l # untuk tipe symbolic link
Mencari file dengan ekstensi tertentu dalam sebuah komputer, misal file *.3gp
find / -name '*.3gp*'
Mencari file dengan pola tertentu, lalu mengcopy file ke dalam sebuah folder
find /path/to/find -name '*pola*' -exec cp {} /destination/folder \;
Mencari file yang tidak memiliki ekstensi file
find . -type f ! -name "*.*"
Mencari file symbolic links yang rusak dalam sebuah folder
find . -type l ! -exec test -e {} \; -print
Perhistorian
Menampilkan history command dengan jumlah tertentu
history 7 # menampilkan history 7 perintah terakhir yang
Menghapus seluruh history command linehistory -c # awas ilang semua history nya
Pertanggalan
Styling pada tanggal
date +"%H:%M:%S" # menampilkan jam:menit:detik
date +"%d-%m-%Y" || date +"%D" # menampilkan jam:menit:detikMengetahui waktu, tanggal yang lalu atau yang akan datang
date --date='91 days ago' # 91 hari kebelakang
date --date='91 days' # 91 hari kedepan
date --date='5 hours' # 5 jam kedepan
date --date='5 hours ago' # 5 jam yang lalu
Cek Process Pada PC
Mengetahui usage cpu dan ram sebuah proses
ps --no-headers -o "%cpu,%mem" -p pid_process
Mengetahui seluruh child process dari sebuah processps --pid pid_proses
Mencari parent proses dari sebuah prosesps -aux | grep -w " $(ps -ef | grep pid_proses | awk '{print $3}') " #beta
Mencari zombie proses yang ada pada sistemps axo stat,ppid,pid,comm | grep -w defuncts " #beta
Mengetahui lama running sebuah proses pada PC Desktop/Serverps -p "$pid_proses" -o etime= #(atau) ps -o stime,time $pid_proses
Mengurutkan proses berdasarkan urutan eksekusips -ef --sort=start_time
Mencatat durasi proses yang dieksekusi/usr/bin/time -f "%E" command_dan_parameter
Networking
Cek ip address di tiap interface
ip add show
atauifconfig -a # jika gagal, install net-tools
Cek ip address pada interfaceip add show [nama_interface]
atauifconfig [nama_interface]
Menghapus virtual interfacesudo ip link set br100 down
sudo brctl delbr br100
cek DNS yang kita gunakannslookup [situs.yang.dituju.domain]
mengetahui ip public kitacurl -s ipinfo.io/ip
cek kecepatan lan network interface card (perlu install ethtool)ethtool [id_nic]
Miscellaneous dan lain-lain
cURL ke website dengan otentikasi username dan password
curl -vv -H 'Accept:[content]/[type]' --anyauth http://[username]:[password]@hostname.domain/
cek status website dengan curl (mengembalikan return code http)curl -L -s -o /dev/null -w "%{http_code}" http://[ip_atau_domain_web]
atau lebih lengkap dengan kecepatan download, waktu koneksi dllcurl -L -s -o /dev/null http://[ip_atau_domain_web] -w "time : %{time_connect} \ntime-total : %{time_total} \ntime-total : %{speed_download} \nreturn-code : %{http_code} \ndownload-size : %{size_download} \nURL-target : %{url_effective}\n"Run apache foreground
source /etc/apache2/envvars; apache2 -X
Melihat status file yang sudah di delete, namun masi berstatus oleh aplikasi tertentu (detail)lsof +L1
Menggabungkan file1 dan file2 secara kolompr -mts" " file1 file2
Ekstrak file bz2
bzip2 -d filename.bz2
Mencari configurasi file pada php
php --ini
Membuat dummy file dengan ukuran file
dd if=/dev/zero of=[nama_file] bs=[ukuran_file] count=1
Melakukan trace perintah pada commandline
strace -f [command param_command11 param_command2]
List cron yang aktif pada user
crontab -l| while read -r command; do if [[ $(echo $command | cut -c 1) != "#" ]];then echo "$command"; fi; done
cek shell yang sedang digunakanecho $0
menampilkan baris secara random pada sebuah fileshuf -n 1 namafile # -n adalah jumlah line yang muncul
cek ssl expirationecho | openssl s_client -servername [domain] -connect [domain]443 2>/dev/null | openssl x509 -noout -dates| cut -d "=" -f2
Maaf jika kurang rapi dalam penataan dan kategori perintah. Next time akan saya rapikan. Apabila ada kritik atau saran, komentar, dan lain sebagainya, silahkan koment dibawah, atau kontak saya via email.
Semoga bermanfaat. :)
referensi :
No comments:
Post a Comment