Vài lệnh trong Linux

Vài lệnh trong Linux

Những kiến thức vỡ lòng để làm việc với linux

Giới thiệu.

(chú ý khái niệm: umask – dùng để khởi tạo giá trị quyền mặc định ban đầu cho file hoặc directory - tuy nhiên thầy không có hỏi mà nên biết để nhìn bài tập còn biết làm.)

  • Đối với file thông thường giá trị base perm là 666 (rw-rw-rw-)
  • Đối với thư mục (file đặc biệt) giá trị base perm là 777 (rwxrwxrwx) umask 022
  • Câu hỏi muôn thuở: (Что такое total?) total là gì? đơn vị của nó? GNU
    total int = Сумма (physical_blocks_in_use) * physical_block_size/ls_block_size) для каждого файла. Где :
    ls_block_size -это произвольная переменная окружения (обычно 512 или 1024 байта), которая может свободно изменяться с помощью флага --block-size= на ls, переменной окружения POSIXLY_CORRECT=1 GNU (для получения 512-байтовых единиц) или флага -k для принудительного Единицы измерения 1 Кб.

    Lệnh cơ bản:

  • mkdir -> make directory: tạo directory
    Tạo directory trực tiếp trong directory cha: mkdir namedirectory
    Tạo directory gián tiếp trong khi chưa có directory cha: mkdir -p name
    super_directory /../name_directory (không cần biết có bao nhiêu directory cha chưa được tạo, chỉ cần chưa tạo là sẽ tự động tạo)
  • cd -> change directory: lệnh di chuyển.
    Di chuyển đến root: cd .
    Di chuyển đến home directory: cd ~
    Di chuyển vào một directory: cd name_directory
    Di chuyển lùi về một directory: cd ..
    Di chuyển về directory gần nhất: cd –
  • ls: used to list files or directories in Linux
    In ra tên và các thuộc tính: ls -l
    In đệ quy ra tên và các thuộc tính của tất cả file và directory: ls -lR
    In ra tên của file và directory: ls -F
    Một vài cờ khác như -t, -a, -d khá hữu dụng nhưng không quá quan trọng.
  • echo: tạo file và viết sẵn nội dung hoặc chỉ in ra màn hình.
    Cú pháp: echo “day la noi dung” > fileName
    In ra nội dung mong muốn: echo “in ra doan nay”
    Cần chú ý khi làm việc với std (stdin(0), stdout(1), stderr(2))
    Dấu > ghi đè lên những gì đã có, >> ghi nối tiếp vào.
    Lưu ý là: echo sẽ tự xuống dòng cho nội dung.
    Trong đoạn nội dung nếu muốn chia dòng thì cần có -E và chỗ cần xuống dòng có \n, tương tự với \t ...
  • touch
    Tạo ra một file giống như echo nhưng không có nội dung.
    touch fileName
  • cat
    Tạo ra file : cat >fileName, sau đó viết nội dung, nhấn Ctrl+D để dừng ghi.
    Đọc file: cat fileName
    Nối các file cat file1 file2 > file3 (nối file1, file2 thành file3)
    cat -n để đọc và đánh số thứ tự các file trong directory
  • chmod: change mode
    Kiểm tra quyền bằng cách ls -l ra và nhìn cột đầu tiên
    Ký tự đầu tiên:
    “-“ đây là file
    “d” đây là directory
    “l” đây là link
    9 kí tự tiếp theo dạng: --- --- --- (nếu có quyền nào thì quyền đó thay thế vào chỗ dấu gạch)
    Vd: -r--rw---x thì đây là file (bắt đầu bằng “-“): u có quyền đọc, g có quyền đọc và viết, o có quyền thực thi.

sử dụng ugo rwx: u là chủ sở hữu, g là nhóm sở hữu, o là người khác
r là đọc, w là viết, x là thực thi.
chmod u=r,g=w,o=x file hoặc directory.
Chú ý là không có dấu cách phía sau dấu “,” có thể thiếu một trong 3 dạng sở hữu, có thể viết gộp lại thành một nếu có quyền giống nhau, có thể bỏ trống cả ba quyền. Ví dụ:
chmod g=r,o=w file # bỏ trống quyền của chủ
chmod ug=rwx, o= file #o không có quyền nào, ug đều có tất cả các quyền
• Tăng giảm quyền: chmod u+r file, chmod u-w file. Lưu ý là không thể dùng số dạng chmod u-1 file # không thể

sử dụng số: Là bộ ba số dạng [0-7][0-7][0-7] Để đơn giản ta hiểu nó là ba dãy nhị phân như sau 000 000 000 (rwx rwx rwx) tương ứng với ugo, mỗi bit tương ứng với rwx, có quyền nào thì bit đó là 1.
Ví dụ, chmod u=r,g=w,o=x file <=> chmod 421 file (421 chuyển sang nhị phân là 100 010 001 -> r---w---x)
Lưu ý là luôn phải viết đủ ba số, không có khái niệm cộng trừ, chỉ là một bộ ba số. Tức là chmod 777-1 file (không, ở đây chúng tôi không làm thế)

  • wc đếm Đếm số kí tự -m Đếm số chữ - w Đếm số dòng -l Đếm số byte -c
  • ln: tạo link (liên kết) Cứng
    Mềm -s
    • ln -s source_file target_file
    • lưu ý cách truyền vào địa chỉ (này chỉ biết dựa vào kinh nghiệm)
  • rm: xóa
    Có xin phép: rm -i, trong một vài hệ điều hành thì mặc định là phải hỏi
    Xóa bất kể không hỏi han gì: rm -f. lệnh này vô cùng nguy hiểm vì xóa xong không thể hoàn tác.
    Xóa thư mục thì thư mục phải trống và dùng rmdir, nếu trong thư mục còn file thì dùng rm -r Name_directory rồi mới rmdir Name_directory
    Các lệnh dưới này này thường không đi một mình mà hay kết hợp với ls hoặc cat -n
  • grep: tìm kiếm theo biểu thức chính quy
    grep “regex” -> sẽ trả về nội dung mà nó tìm được dưới dạng text
    Các flag phổ biến:
  • Chỉ in ra tên file nếu là tìm file: -w
  • Theo mặc định thì nội dung sẽ bị phân biệt hoa thường, dùng -i để có thể tìm bất kể hoa thường
  • Tìm kiếm ngược -v (tức là nội dung không khớp với regex thì nhận)
  • Rất nhiều flag nhưng chưa gặp mấy
  • sort: sắp xếp
    Mặc định là từ a-z từ 0-9 a-z nhưng -r thì ngược lại
  • more: in thêm các dòng trong file # chẳng gặp mấy trong bài tập
  • less: in ít dòng lại # chẳng gặp mấy trong bài tập
  • head: số lượng dòng đầu vd head – 5 => in ra 5 dòng đầu của kết quả
  • tail: số lượng dòng cuối vd tail – 5 => in ra 5 dòng cuối của kết quả