Các Lệnh Cơ Bản Linux

bởi | LPI

Home » LPI » Các Lệnh Cơ Bản Linux

– Cách gọi giao diện dòng lệnh ở desktop, sử dụng câu lệnh “gnome-terminal” , câu lệnh này được sử dụng khi ta đang ở trong giao diện GNOME DESKTOP

Xác định các thông số user đang đăng nhập

– # whoami : hiển thị tên của user đang login
– # id : hiển thị user-id, gid (group primary), groups ( các group user này thuộc )
+ Hiển thị thông số của một user khác. Ví dụ hiển thị thông số user test

# id test
uid=501(test) gid=501(test) groups=501(test)
context=root:system_r:unconfined_t:SystemLowSystemHigh

Sử dụng câu lệnh CD, PWD, LS

– Chuyển thư mục bằng câu lệnh “cd”
# cd /
# pwd
– Sử dụng câu lệnh CD và không truyền tham số thì chuyển về “Home Directory của user dang login”
+ Home directory của user root nằm ở vị trí /root
+ Home directory của các user khác mặc định sẽ là subfolder ben trong /home
# cat /etc/passwd
=> in ra màn hình danh sách các user có trong máy và thông số của các user.
# cd ~
=> chuyển về home folde của user đang đăng nhập
# cd ..
=> lùi lại một cấp thư mục
# cd ../../
=> lùi lại hai cấp thư mục.
– Liệt kê file và thư mục bằng câu lệnh “LS”
# ls
# ls -l
=> -l : long hiển thị dài
# ls -lh
=> -h : humanable hiện thị thông số hard disk dễ đọc hơn
# ls -lha
=> -a: hiển thị file và folder ẩn.
# man ls
=> man nghĩa là “manual” —> hiển thị các thông số của câu lệnh ls
– Lệnh “info” cũng hiễn thị sự giúp đỡ trên giao diện dòng lệnh

Sử dụng lệnh WHICH, WHEREIS, LOCATE tìm thông số đường dẫn của các lệnh

– Sử dụng lệnh which, whereis, locate xác định vị trí file thực thi của lệnh, file manual, các file liên quan đến chương trình
# whereis ping
=> cac thong tin lien quan den lenh ping
# which ping
=> vị trí file thuc thi của lenh ping
# locate ping
=> hiển thị thông tin có liên quan đến chữ “ping”

Đọc các thông số phần cứng của máy tính

– Các câu lệnh kiểm tra thông số phần cứng của máy tính
# cat /proc/cpuinfo
=> Kiểm tra thông số CPU
# cat /proc/meminfo
=>Kiểm tra thông bộ nhớ (RAM)
# cat /proc/version
=> Kiểm tra thông số kernel của Linux
# cat /proc/partitions
=> hiển thị thông tin physical hardisk,các thông số của partition
# df -h
=>Hiển thị các partition trong Linux

– Hien thi performance cua he thong

#cat /proc/cpuinfo
#cat /proc/meminfo
#cat /proc/swaps
#cat /proc/partitions

#ps -aux
=> hien thi tat ca cac process cua tat ca cac user
=> khong hien thi theo thoi gian

#ps -aux | more
=> ta co the xem cac tien trinh de dang hon
pipe
#ps -aux | grep -i postfix
=> hien thi tat ca process cua tat ca cac user, sau do pipe vao lenh grep va filter theo chuoi sendmail

#ps -p 1900
=> kiem tra ung voi pid 1900 la process gi

#kill -15 1900
=> Stop ung dung co so Proccess-ID la 1900
=> Sau do se Kill tien trinh
=> Se khong bi mat du lieu

#kill -9 1900
=> Kill tien trinh va co the mat du lieu

#top
=> hien thi process su dung cpu cao nhat theo thoi gian
thuc

#top -d 10
=> hien thi process dang su dung cao nhat voi thoi gian delay la 10 giay

#free -m
=> hien thi thong tin ve memory

#sh -c “sync; echo 3 > /proc/sys/vm/drop_caches”
=> giai phong vung nho duoc Cache

#w
=> hien thi thong so ve CPU

#fdisk -l
=> hien thi thong tin hard disk

Cấu hình Hostname, SELINUX, FireWall

– Thay đổi hostname của máy tính
#hostname
set hostname: # hostnamectl set-hostname thanhdd.lab

– Nếu chức năng SELinux không cần vì một số lý do như máy chủ chỉ chạy trong Mạng an toàn cục bộ hoặc những người khác. Có thể vô hiệu hóa nó như sau.
disabled SELINUX: # vi /etc/sysconfig/selinux
SELINUX=disabled
# reboot
+ Khi mở lại selinux cần: # touch /.autorelabel
=> Bởi vì khi một số tệp hoặc thư mục được tạo ở chế độ “disabled”, chúng không được gắn nhãn với SELinux Contexts, nó cũng cần phải gắn nhãn cho chúng.

– FireWall
+ hiển thị Trạng thái Dịch vụ của FireWall
# systemctl status firewalld
+ Nếu dịch vụ FireWall không cần vì một số lý do như máy đang chạy trong Local Netowrk. Có thể dừng và tắt nó như sau.
# stop service
[root@dlp ~]# systemctl stop firewalld
# disable service
[root@dlp ~]# systemctl disable firewalld

# Đảm bảo không cho các dịch vụ khác start firewalld

systemctl mask --now firewalld

– Mở lại firewalld

systemctl unmask --now firewalld
systemctl start firewalld
systemctl enable firewalld

Sử dụng lệnh TOUCH, STAT

– Lệnh touch sử dụng để tạo ra 1 file rỗng
# touch 123456.txt
=> “touch” so với “vi hay vim” thi tao ra file nhanh hơn.
– Ta sử dụng lệnh touch vào file 123456.txt đã được tạo sẽ làm thay đổi timestamp của file
– Sử dụng lệnh touch -t để thay đổi timestamp của file
Cú pháp: touch -t YYYYMMDDhhmm filename
– Sử dụng lệnh stat để kiểm tra các thuộc tính của file.

Sử dụng lệnh FIND để tìm kiếm

– Cú Pháp: find [vi_tri_tim_kiem] [phuong_thuc_tim_kiem]
– Ví dụ tìm kiếm file và folder có tên là ifconfig ở vị trí /sbin
[root@linux ~]# find /sbin -name “ifconfig”
/sbin/ifconfig
– Tìm kiếm file và folder có tên là “i?config”
[root@linux ~]# find /sbin -name “i?config”
/sbin/iwconfig
/sbin/ifconfig
– Tìm kiếm file có user owner là nhanld và có tên là “?bash*”
[root@linux ~]# find /home -user nhanld -name “?bash*”
/home/nhanld/.bash_history
/home/nhanld/.bash_profile
/home/nhanld/.bashrc
/home/nhanld/.bash_logout
– Tìm kiếm các thư mục đang có ở trong thư mục hiện hành.
[root@linux ~]# su root
[root@linux ~]# find . -type d
– Tìm kiếm các file Hidden ở trong thự mục hiện hành
[root@linux ~]# find . -type f -name “.*”

Sử dụng câu lệnh ALIAS

– Liệt kê danh sách các lệnh ALIAS
[root@linux home]# alias
– Tạo một alias mới
[root@linux ~]# alias pinggoogle=’ping 8.8.8.8 -c 4′
– Định nghĩa các Alias “có tình chất cố định” cho user root
[root@linux ~]# vi ~/.bashrc
#ghi thêm vào dòng
alias tatmay=’init 6′
# source .bashrc

Sử dụng lệnh History

– History được sử dụng để kiểm tra các câu lệnh đã nhập
[root@linux ~]#history
– Thực thi lại một câu lệnh ở trong history
[root@linux ~]#!50
– Xóa đi cache history
[root@linux ~]#history -c
-c : clear

Sử dụng câu lệnh MKDIR

– Tạo ra một thư mục đơn lẻ
[root@linux ~]#mkdir Test
– Tạo nhiều thư mục đồng cấp
[root@linux ~]#mkdir t1 t2 t3
– Tạo cấu trúc thư mục nhiều cấp
[root@linux ~]#mkdir -p Test1/Test2/Test3
[root@linux ~]#mkdir -p Test10/{Test11,Test12,Test13}

[root@linux ~]#mkdir -p
Test100/{Test11/Test111,Test12/Test222,Test13/Test333}

[root@linux ~]#mkdir -p Test1000/{Test101,Test102,Test103}/abc

Sử dụng VISUDO

– VISUDO được sử dụng để định nghĩa các lệnh user có thể thực thi.
+ Sử dụng user root để cấu hình visudo
+ Phân quyền cho một user có quyền Root
+ Định nghĩa các lệnh được thực thi hệ thống cho một user

– Kiểm tra các user đang có trong máy và chọn ra 1 user để cấu hình và cho user này có quyền Root

[root@linux ~]# cat /etc/passwd | cut -d : -f1
=> list all of usernames

– Cấu hình thiết lập cho user “nhanle” có quyền root

[root@linux ~]# visudo
or
[root@linux ~]# vi /etc/sudoers

#Go to row number 98
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
nhanle ALL=(ALL) ALL

– Cấu hình các lệnh có thể thực thi của một user.

[root@server ~]# visudo

#Đi đến dòng thứ 98
#Chữ ALL thứ nhất: thực thi tất cả các lệnh trong terminal
#Chữ ALL thứ hai : có thể đóng vai trò trong tất cả các user
#Chữ ALL thứ ba: có thể thực thi tất cả các “lệnh”

root ALL=(ALL) ALL

#Cho phép tất cả các user thuộc group “admin” thì có toàn quyền
%admin ALL=(ALL) ALL

#user thuộc group nhanld thì thực hiện được mọi lệnh và không cần nhập
%nhanle ALL=(ALL) NOPASSWD: ALL

+ Dinh nghia user test co quyen thuc thi 1 so lenh
## Allow user test to run only one command
test ALL=(ALL) /usr/sbin/init

#user test được thực thi 2 lệnh là “init và dịch vụ sshd”
nhanle ALL=(ALL) /usr/sbin/init, /bin/systemctl

+ Định nghĩa 1 group dòng lệnh tên là “TEST”
#user test được phép thực thi tất cả các lệnh trong TEST
Cmnd_Alias TEST = /usr/sbin/init, /bin/systemctl restart sshd, /bin/systemctl status sshd
test2 ALL=(ALL) TEST

#user test2 khong được phép thực thi tất cả các lệnh trong TEST
Cmnd_Alias TEST = /usr/sbin/init, /bin/systemctl restart sshd, /bin/systemctl status sshd
test2 ALL=(ALL) ALL, !TEST

Sử dụng biến đường dẫn PATH

– Biến đường dẫn là một loại biến môi trường

– Để hiện thị biến đường dẫn ta dùng lệnh “echo $PATH”

[thanhdd@linuxserver ~]$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

Đổi nơi lưu biến đường dẫn
[thanhdd@linuxserver ~]$ export PATH=$PATH:/opt

[thanhdd@linuxserver ~]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt

==> duong dan /opt moi duoc them vao”

– Cấu hình thêm biến đường dẫn một cách cố định cho 1 user ở trong máy tại file “~/.bash_profile”
[nhanld@linuxserver ~]$ vi ~/.bash_profile
#Them vao ben duoi
#PATH=$PATH:$HOME/bin:
PATH=$PATH:$HOME/bin:/sbin:/opt:

[nhanld@linuxserver ~]$ source ~/.bash_profile

Sử dụng lệnh “GREP”

– Lệnh “GREP” sử dụng lọc ra dòng có ký tự ta tìm kiếm

[root@server ~]# cat test_grep.txt
==> print tat ca noi dung cua file test_grep.txt

[root@server ~]# head test_grep.txt
==> mac dinh print ra 10 dong dau tien cua file tu tren xuong

[root@server ~]# tail test_grep.txt
==> mac dinh print ra 10 dong dau tien cua file tu duoi len

[root@linux ~]# head -n 5 test_grep.txt
=> in ra man hinh 5 dong dau

[root@linux ~]# tail -n 5 test_grep.txt
=> in ra man hinh 5 dong cuoi

[root@server ~]# grep ‘linux’ test_grep.txt
=> search va xuat ra man hinh cac chuoi ky tu co chu linux. Phan biet chu hoa va chu thuong

[root@server ~]# grep -i ‘linux’ test_grep.txt
=> -i nghia la ignore. Nhu vay cau lenh khong biet chu hoa va chu thuong

[root@server ~]# grep ‘^linux’ test_grep.txt
=> tim kiem nhung chu ma “bat dau” bang chu linux

[root@server ~]# grep -i ‘^linux’ test_grep.txt
=> tim kiem nhung chu ma “bat dau” bang chu linux va khong phan biet hoa thuong

[root@server ~]# grep -i ‘linux$’ test_grep.txt
=> tim kiem nhung chu ket thuc bang chu linux va khong phan biet hoa thuong

[root@server ~]# grep -i ‘[0-9]linux’ test_grep.txt
=> neu nhu bat dau cac ky tu dau tien la so tu 0 -9 thi dung [0-9] de dai dien

[root@server ~]# grep -i ‘[1,3]linux’ test_grep.txt
=> in ra man hinh dong co chu so 1 hoac 3 va phia sau co chu linux

[root@server ~]# grep -v ‘#’ /etc/ssh/sshd_config
=> tim kiem nhung dong o trong file config sshd_config ma “khong co chua dau #”

Kiểm tra các Connection và các Port đang Open

#ss -tal
=> hien thi tat ca (-a), ket noi tcp (-t) dang listen (-l)

#netstat -ltunp
-l: listen
-t: tcp
-u: udp
-n: hien thi IP va port cua ket noi
-p: process-id

#netstat -atunp
-a: hien thi tat ca cac ket noi TCP va UDP o trang thai LISTEN va ESTABLISHED

#netstat -etunp
-e: ESTABLISHED kiem tra cac ket noi tren nen TCP, UDP dang ket noi den Server

#netstat -i
=> hien thi cac interface dang hoat dong cua PC

[root@linux /]# mii-tool eth0
eth0: negotiated 100baseTx-FD flow-control, link ok
=> hien thi cac interface vat ly dang hoat dong cua PC

#netstat -r
=> print ra man hinh bang dinh tuyen

#route
=> print ra man hinh bang dinh tuyen
=> U: hien thi duong mang dang hoat dong
G: dai dien thong so gateway

Tải source cài đặt từ máy window vào linux server

PS C:\Users\thanhdd-HP\Downloads> scp C:\Users\thanhdd-HP\Downloads\filenamehere thanhdd@192.168.126.203:/home/thanhdd

Tải file từ máy linux về máy windows

pscp username_linux_machine@ip_of_linux_machine:/home/ubuntu/myfile.ext C:\Users\Name\Downloads