Linux là gì? Tại sao Linux lại trở nên phổ biến trên thị trường hiện nay? Các câu lệnh trên Linux thường sử dụng trong DevOps là gì? Bài viết này sẽ giải đáp một cách tổng quát nhất những câu hỏi này. #
Linux là gì? #
Linux là một hệ điều hành quản lý mã nguồn mở do hội đồng tăng trưởng, sử dụng cho các mạng lưới hệ thống máy tính, sever, mainframe ( một loại máy tính thường được sử dụng bởi các công ty, tập đoàn lớn cũng như những tổ chức triển khai cơ quan chính phủ nhằm mục đích Giao hàng cho các việc làm cần giải quyết và xử lý lượng lớn tài liệu ), thiết bị di động và thiết bị nhúng. Hệ quản lý này tương hỗ trên hầu hết các nền tảng máy tính gồm có x86, ARM, … khiến nó trở thành một trong những hệ quản lý và điều hành được tương hỗ thoáng đãng nhất trên thị trường lúc bấy giờ .
Linux được phong cách thiết kế tựa như như UNIX nhưng hệ quản lý và điều hành này được tăng trưởng để chạy trên nhiều loại phần cứng từ điện thoại thông minh đến siêu máy tính. Mọi hệ điều hành quản lý dựa trên Linux đều chứa Linux Kernel – quản trị tài nguyên phần cứng – và một bộ ứng dụng tạo nên phần còn lại của hệ quản lý và điều hành này .
Tại sao Linux lại trở nên phổ biến? #
Linux khác biệt với các hệ điều hành khác trên thị trường vì nhiều yếu tố quan trọng khác nhau. Trong đó bao gồm:
Miễn phí: Đây có lẽ là yếu tố chính khiến Linux trở nên phổ biến. Người dùng sẽ không phải bỏ ra bất kỳ số tiền nào để tải bản cài đặt cũng như sử dụng hệ điều hành này.
Mã nguồn mở: Linux là hệ điều hành mã nguồn mở. Người dùng hoàn toàn có thể xem mã nguồn xây dựng nên hệ điều hành, tùy chỉnh hệ thống một cách tự do.
Bảo mật: Khi bạn đã cài đặt Linux trên hệ thống của mình, bạn sẽ không cần phải sử dụng chương trình diệt vi-rút! Linux là một hệ thống bảo mật cao. Hơn nữa, có một cộng đồng phát triển toàn cầu liên tục tìm cách để tăng cường bảo mật. Mỗi lần nâng cấp làm cho hệ điều hành này trở nên an toàn và mạnh mẽ hơn.
Ổn định và hiệu quả: Linux cung cấp tính ổn định rất cao, tức là không cần khởi động lại sau một khoảng thời gian ngắn. Hệ thống Linux của bạn hiếm khi hoạt động chậm hoặc treo. Linux cung cấp hiệu suất cao đáng kể trên các hệ thống mạng và máy trạm khác nhau.
Những câu lệnh trên Linux thường sử dụng trong DevOps #
Sau đây sẽ là những câu lệnh trên Linux thường sử dụng trong việc làm của DevOps .
Câu lệnh này sẽ liệt kê hàng loạt nội dung tại thư mục đang thao tác .
Cú pháp:
ls
Câu lệnh
Chi tiết
ls <đường dẫn>
Liệt kê các nội dung đang được lưu trữ bên trong đường dẫn chỉ định.
ls -l
Liệt kê toàn bộ nội dung có trong thư mục kèm theo các trường thông tin như người sở hữu, các quyền trên nội dung, thời gian chỉnh sửa gần nhất.
ls -a
Liệt kê toàn bộ nội dung bên trong thư mục, bao gồm các tập tin ẩn.
Thực thi câu lệnh kèm theo với quyền root / superuser .
Cú pháp:
Câu lệnh
Chi tiết
sudo useradd
Thêm mới user vào hệ thống.
sudo passwd
Thiết lập mật khẩu cho user.
sudo userdel
Xóa user ra khỏi hệ thống.
sudo groupadd
Thêm mới group vào hệ thống.
sudo groupdel
Xóa group ra khỏi hệ thống.
sudo usermod -g
Thêm user vào một group primary.
Câu lệnh này sẽ giúp người dùng hoàn toàn có thể đọc, kiểm soát và điều chỉnh hoặc ghép các tập tin định dạng text .
Cú pháp:
cat
Câu lệnh
Chi tiết
cat -b
Đánh số thứ tự cho các dòng có ký tự.
cat -n
Đánh số thứ tự cho toàn bộ các dòng trong tập tin.
cat -s
Gộp những dòng không có ký tự lại thành 1 dòng.
cat -E
Hiển thị dấu $ ở cuối dùng.
Câu lệnh này sẽ giúp người dùng hoàn toàn có thể tìm kiếm một từ khóa hoặc một đoạn từ khóa trong một tập tin. Tương tự tính năng “ Ctrl + F ” nhưng thực thi bằng CLI .
Cú pháp:
grep
Câu lệnh
Chi tiết
grep -i
Hiện thị kết quả tìm kiếm không phân biệt in hoa và in thường.
grep -n
Hiển thị kết quả tìm kiếm cùng với số thứ tự của dòng.
grep -v
Hiển thị kết quả những dòng không giống với cụm từ cần tìm.
grep -c
Hiển thị số lượng dòng trùng khớp với cụm từ cần tìm.
Trong trong thực tiễn, grep thường được lồng ghép với các câu lệnh liệt kê thông tin để lọc hiệu quả cần hiển thị. Ví dụ như bạn cần tìm PID của tiến trình python đang hoạt động giải trí trong mạng lưới hệ thống, thì sẽ gõ câu lệnh như sau : ps ux | grep python
Câu lệnh này sẽ sắp xếp tác dụng tìm kiếm theo thứ tự alphabet hoặc theo số tăng dần. Ngoài ra, câu lệnh này cũng sẽ sắp xếp tập tin, nội dung tập tin và thư mục .
Cú pháp:
sort
Câu lệnh
Chi tiết
sort -r
Đảo ngược kết quả sắp xếp.
sort -f
Sắp xếp kết quả không phân biệt chữ hoa và thường.
sort -n
Sắp xếp kết quả dựa theo số tăng dần.
Câu lệnh này mặc định sẽ hiển thị 10 dòng ở đầu cuối của tập tin được chỉ định ra màn hình hiển thị. Người dùng cũng hoàn toàn có thể xem cùng lúc nội dung của nhiều tập tin .
Cú pháp:
tail
Câu lệnh
Chi tiết
tail -n
Hiển thị n dòng kết quả cuối cùng của tập tin.
tail +
Hiển thị kết quả từ dòng .
tail -c
Hiển thị byte cuối cùng từ tập tin được chỉ định.
Lệnh này được sử dụng để đổi khác user hoặc nhóm chiếm hữu tập tin hoặc thư mục. Bất cứ khi nào bạn muốn biến hóa quyền sở hữu, bạn hoàn toàn có thể sử dụng lệnh chown .
Cú pháp:
chown
Lệnh này được sử dụng để biến hóa quyền truy vấn của các tập tin và thư mục .
Cú pháp:
chmod
#
Quyền
7
Đọc, ghi và thực thi (read, write, execute).
6
Đọc và ghi.
5
Đọc và thực thi.
4
Chỉ đọc.
3
Ghi và thực thi.
2
Chỉ ghi.
1
Chỉ thực thi.
0
Không phân quyền.
9. lsof
lsof hay còn gọi là “list open files“, dùng để liệt kê thông tin về các tập tin trên hệ thống đang hoặc đã được mở bởi các tiến trình đang hoạt động.
Cú pháp:
lsof
Kết quả sẽ hiển thị với các cột có các nội dung tương ứng như sau :
Cột
Chú thích
COMMAND
9 kí tự đầu tiên của tên chương trình lệnh tương ứng với tiến trình.
PID
Thông tin PID của tiến trình.
USER
User thực thi tiến trình đó. Có thể là UID hoặc username.
FD
File Descriptor của tập tin được liệt kê, hoặc các thông tin khác hay mode (w,u,r) của tập tin.
cwd : là thư mục đang hoạt động của tiến trình.
txt : program text (code và data).
mmap : tập tin memory-mapped.
rtd : root directory (thư mục root).
DEL : Linux map tập tin đã bị xoá.
w : đang truy cập ghi xuống dữ liệu.
u : đang truy cập ghi và đọc dữ liệu.
r : đang truy cập đọc dữ liệu.
TYPE
REG : tập tin thông thường
sock : socket.
ipv4/ipv6 : socket IPv4/v6.
DIR : thư mục.
DEVICE
Số đại diện của thiết bị như partition mà tập tin thuộc về.
ifconfig ( interface configuration ) là một trong những câu lệnh dùng để xem nhanh các địa chỉ IP và các thông tin khác của giao diện mạng ( interface ). Gõ ifconfig để xem trạng thái các interface hiện đang hoạt động giải trí, trong đó gồm có tên, thực trạng thông tin địa chỉ IP, địa chỉ MAC. Bạn cũng hoàn toàn có thể chỉ định tên một interface cần xem thông tin thay vì xem hàng loạt .
Cú pháp:
ifconfig
Câu lệnh
Chi tiết
ifconfig -a
Liệt kê toàn bộ thông tin interface có trên hệ thống, kể cả chúng đã bị “tắt”.
ifconfig -s
Liệt kê tóm tắt thông tin interface trên hệ thống
Câu lệnh này sẽ liệt kê các thông tin ( name, group, … ) của user hiện tại hoặc user được chỉ định trên server .
Cú pháp :
id
Câu lệnh
Chi tiết
id -g
Liệt kê group ID của user được chỉ định.
id -G
Liệt kê toàn bộ group ID mà user “tham gia”.
id -n
Liệt kê tên của user được chỉ định thay vì ID.
id -r
Liệt kê real ID của user được chỉ định.
id -u
Hiển thị user ID của user được chỉ định.
Câu lệnh này được sử dụng thao tác với tệp dựa trên cột và được phong cách thiết kế để trích xuất các cột đơn cử .
Cú pháp:
cut -c
Ví dụ : Cần cắt 16 ký tự tiên phong từ tập tin tập tin.txt :
[root@tel4vn_lab ~]# cat file.txt
Roses are red, Violets are blue,
Sugar is sweet, And so are you.
[root@tel4vn_lab ~]# cut -c 1-16 file.txt
Roses are red, V
Sugar is sweet,
Ngoài việc lọc tác dụng từ cụm từ khóa mà người dùng chỉ định, câu lệnh còn tương hỗ người dùng thay thế sửa chữa các từ khóa tiên phong Open trong mỗi dòng ( hoặc tổng thể ) mà nó tìm thấy trong tập tin văn bản được chỉ định, và hiển thị hiệu quả ra màn hình hiển thị .
Cú pháp :
sed 's///'
Câu lệnh
Chi tiết
sed ‘s///’
Thay thế chuỗi đầu tiên xuất hiện trong mỗi dòng từ tập tin được chỉ định
sed ‘s///g’
Thay thế tất cả các lần xuất hiện trong mỗi dòng từ tập tin được chỉ định
sed ‘1,3s///g’
Thay thế tất cả các lần xuất hiện chuỗi trong một loạt các dòng từ tập tin được chỉ định
Câu lệnh này sẽ so sánh và hiển thị sự khác nhau giữa 2 tập tin chỉ định .
Cú pháp :
diff
Một vài tuỳ chọn (option) được dùng thường xuyên gồm:
Tuỳ chọn
Sử dụng
-c
Cung cấp 3 dòng trước và sau của sự khác nhau về nội dung.
-r
Sử dụng để so sánh đệ quy các thư mục con, thư mục hiện tại.
-i
Bỏ qua trường hợp chữ cái.
-w
Bỏ qua sự khác biệt về tab ( khoảng trắng ).
-q
Báo những tệp khác nhau mà không cần liệt kê sự khác biệt.
Ví dụ :
[root@tel4vn_lab ~]# cat test1.txt
this is the original text
line2
line3
line4
happy hacking !
[root@tel4vn_lab ~]# cat test2.txt
this is the original text
line2
line4
happy hacking !
GNU is not UNIX
[root@tel4vn_lab ~]#diff test1.txt test2.txt
3d2
< line3
6c5
> GNU is not UNIX
Câu lệnh history được sử dụng để xem các lệnh đã thực thi trước đó .
Cú pháp:
history
Sau khi có hiệu quả list các câu lệnh để thực thi, bạn hoàn toàn có thể triển khai lại 1 câu lệnh bất kể trong list câu lệnh bằng cú pháp :
!
Câu lệnh này sử dụng trong các trường hợp sau :
Sao lưu và phục hồi toàn bộ dữ liệu ổ cứng hoặc một partition
Chuyển đổi định dạng dữ liệu từ ASCII sang EBCDIC hoặc ngược lại
Sao lưu lại MBR trong máy (MBR là một tập tin dữ liệu rất quan trong nó chứa các lệnh để LILO hoặc GRUB nạp hệ điều hành)
Chuyển đổi chữ thường sang chữ hoa và ngược lại
Tạo một tập tin với kích cỡ cố định
Tạo một tập tin ISO
Cú pháp:
dd if=<địa chỉ đầu vào> of=<địa chỉ đầu ra>
Trong đó:
if= địa chỉ nguồn của dữ liệu nó sẽ bắt đầu đọc
of= viết đầu ra của tập tin
option : các tùy chọn cho câu lệnh
Ý nghĩa các tham số:
Tùy chọn
Ý nghĩa
bs=Bytes
Quá trình đọc (ghi) bao nhiêu byte một lần đọc (ghi)
cbs=Bytes
Chuyển đổi bao nhiêu byte một lần
count=Blocks
thực hiện bao nhiêu Block trong quá trình thực thi câu lệnh
Lệnh find được sử dụng để tìm kiếm và xác định list các tập tin và thư mục dựa trên các điều kiện kèm theo bạn chỉ định cho các tệp khớp với các đối số cần tìm : tên tập tin, tên thư mục, phân quyền, owner, groups, …
Cú pháp:
find <đối số cần tìm>
Bạn đọc có thể tham khảo thêm “29 câu lệnh find thường gặp trong Linux“: Tại đây
Câu lệnh này sẽ cung ứng thông tin về dung tích bộ nhớ đã sử dụng và chưa sử dụng, kèm theo đó là thông tin về dung tích RAM ảo SWAP .
Cú pháp :
free
Các tùy chọn (option) thường dùng
Tùy chọn
Ý nghĩa
-b
Hiển thị kết quả theo dung lượng byte
-k
Hiển thị kết quả theo dung lượng kilobyte (mặc định)
-m
Hiển thị kết quả theo dung lượng megabyte
-g
Hiển thị kết quả theo dung lượng gigabyte
Ý nghĩa các cột trong kết quả hiển thị
Cột
Ý nghĩa
total
Tổng dung lượng bộ nhớ hiện có trên thiết bị
used
Dung lượng bộ nhớ đang sử dụng
free
Dung lượng bộ nhớ còn trống
shared
Dung lượng bộ nhớ được sử dụng bởi tmpfs
buffers
Dung lượng bộ nhớ được sử dụng bởi kernel buffer
cache
Dung lượng bộ nhớ được sử dụng bởi page cache và slab
buffers/cache
Tổng dung lượng buffer và cache đang sử dụng
Sử dụng lệnh ssh-keygen để tạo cặp khóa xác nhận public / private, giúp người dùng liên kết với mạng lưới hệ thống từ xa mà không cần cung ứng mật khẩu. Các khóa phải được tạo riêng cho từng người dùng. Nếu bạn tạo các cặp khóa xác thực là với quyền user root thì chỉ user root mới hoàn toàn có thể sử dụng các khóa đã tạo .
Cú pháp:
ssh-keygen -t
Các option thường sử dụng gồm có :
rsa1
dsa
ecdsa
rsa
Để tránh việc khóa xác nhận bị tin tặc ( hacker ) chiếm đoạn và sử dụng, người dùng sẽ được nhu yếu nhập mật khẩu để sử dụng khóa xác nhận trong bước tạo khóa. Điều này giúp hạn chế được việc tin tặc lấy được khóa xác nhận và chiếm hàng loạt quyền trên server .
Câu lệnh này thuộc gói net-tools được thiết lập trên Linux, giúp người dùng có thể thao tác, quản trị mạng lưới hệ thống mạng trên thiết bị. Có công dụng gần như tựa như với câu lệnh ifconfig : hiển thị thông số kỹ thuật, kiểm soát và điều chỉnh các giao diện mạng ( interface ) .
Cú pháp :
ip
Các tùy chọn (option) thường dùng
Tùy chọn
Ý nghĩa
address
Hiển thị toàn bộ thông tin của các interface hiện có trên thiết bị
link
Hiển thị địa chỉ MAC của các interface hiện có trên thiết bị
route
Hiển thị thông tin định tuyến
nslookup được sử dụng để truy vấn các Internet Domain Name Servers ( DNS ). Nslookup có hai chính sách : tương tác ( interactive ) và không tương tác ( non-interactive ). Chế độ tương tác được cho phép người dùng truy vấn các tên sever để biết thông tin về các sever và tên miền khác nhau hoặc để in list các sever trong một miền. Chế độ không tương tác được sử dụng để chỉ in tên và thông tin được nhu yếu cho máy chủ tàng trữ hoặc tên miền .
Cú pháp:
nsloopkup <đường dẫn cần kiểm tra>
Ví dụ :
Một trong những điều cơ bản nhất bạn hoàn toàn có thể làm với curl là tải xuống một website hoặc tập tin .
Cú pháp:
curl
<đường dẫn / URL>
Nếu bạn muốn lưu kết quả sau khi “curl” được thì chỉ cần thêm option “-o ” vào trước URL để lưu kết quả vào tập tin mong muốn. Ví dụ:
curl - o hello.zip ftp://speedtest.tele2.net/1MB.zip
Câu lệnh này được sử dụng trên hệ quản lý Linux giúp người dùng hoàn toàn có thể biến hóa hoặc xóa các ký tự .
Cú pháp:
tr
Ví dụ : Bạn cần đổi khác các ký tự trong tập tin từ chữ thường sang chữ hoa
[root@te4lvn_lab ~]# cat test.txt
tel4vn training center
[root@te4lvn_lab ~]# cat test.txt | tr [:lower:] [:upper:]
TEL4VN TRAINING CENTER
Các tùy chọn (option) thường dùng
Tùy chọn
Ý nghĩa
-c
Áp dụng các option khác đối với các ký tự không có trong bộ lọc “set1”
-d
Xóa ký tự trong chuỗi
-s
Bỏ các ký tự lặp liên tiếp
iptables là ứng dụng tường lửa không tính tiền trong Linux, được cho phép thiết lập các quy tắc riêng để trấn áp truy vấn, tăng tính bảo mật thông tin cho mạng lưới hệ thống. Về cơ bản, iptables chỉ là giao diện dòng lệnh để tương tác với packet filtering của netfilter framework. Trong đó :
Table: được iptables sử dụng để định nghĩa các rule(quy tắc) dành cho các gói tin.
Chain: được tạo ra với một số lượng nhất định ứng với mỗi Table, giúp lọc gói tin tại các điểm khác nhau.
Rule: các điều kiện ứng với các loại gói tin.
Tagert: có thể được hiểu là hành động dành cho các gói tin khi gói tin thỏa mãn các rule đã quy định.
Policy: cơ chế mặc định đối với các trường hợp gói tin không trùng khớp với các Chain hiện có.
apt-get là một công cụ command-line giúp giải quyết và xử lý các gói setup trong Linux. Nhiệm vụ chính của nó là lấy thông tin và các gói từ các nguồn được xác nhận để setup, tăng cấp và vô hiệu các gói setup và các thành phần kèm theo của chúng. APT là viết tắt của Advanced Packaging Tool .
apt-get
command
apt-get update : lệnh này được sử dụng để đồng điệu hóa các tệp chỉ mục gói thiết lập từ các nguồn của chúng một lần nữa. Người dùng cần triển khai update trước khi tăng cấp các gói setup trên mạng lưới hệ thống của mình .
Lệnh df ( disk không lấy phí ) hiển thị thực trạng dung tích ổ đĩa trống đang được sử dụng bởi các tập tin của mạng lưới hệ thống. Lệnh du ( disk usage ) thực trạng dung tích của cây thư mục gồm có toàn bộ nội dung của chúng và kích cỡ của các tệp riêng không liên quan gì đến nhau. Công cụ này giúp người dùng hoàn toàn có thể quản trị được tài nguyên đang sử dụng trên mạng lưới hệ thống, giảm tình thiểu thực trạng mạng lưới hệ thống thiếu vắng tài nguyên .
Cú pháp:
df -h du -h
Đây là công cụ giúp người dùng hoàn toàn có thể theo các tiến trình đang hoạt động giải trí trên mạng lưới hệ thống, tổng quan các tài nguyên của mạng lưới hệ thống như CPU, lượng RAM và Swap sử dụng theo thời hạn thực ( real-time ) .
Cú pháp:
htop
Các tùy chọn (option) thường dùng:
Tùy chọn
Ý nghĩa
–d / –delay
Hiển thị độ trễ giữa các bản cập nhật, tính bằng 1/10 giây
–C / –no-color
Chế độ đơn sắc
–h / –help
Hiển thị thông báo trợ giúp và thoát
–u / –user=USERNAME
Chỉ hiển thị các PID đã chỉ định
–v / –version
Hiển thị thông tin phiên bản và thoát
Câu lệnh này sẽ hiển thị list các tiến trình đang hoạt động giải trí trên mạng lưới hệ thống .
Cú pháp:
ps
Các tùy chọn (option) thường dùng:
Tùy chọn
Ý nghĩa
a
Hiển thị tất cả các tiến trình của toàn bộ user trên hệ thống
u
Hiển thị người khởi tạo tiến trình
x
Hiển thị các tiến trình không attach terminal
Lệnh kill hoàn toàn có thể được dùng để ngắt một hoặc nhiều tiến trình đang hoạt động giải trí trên mạng lưới hệ thống .
Cú pháp:
kill
Telnet là một giao thức mạng ( network protocol ) và cũng là công cụ quản trị server từ xa trải qua command line. TELNET ( viết tắt của TErminaL NETwork ) được dùng phổ cập trong mạng máy tính cục bộ ( LAN ). Ngoài ra, bạn hoàn toàn có thể sử dụng câu lệnh này để kiểm tra TCP port của server hiện có đang mở hay không .