Skip to main content

Posts

Showing posts with the label Linux

Các combo câu lệnh CLI từ năm 2021

Sau hơn 10 năm dùng Ubuntu/OSX/OpenBSD, các combo câu lệnh mình sử dụng đã có nhiều thay đổi, bài này sẽ cập nhật các combo hay dùng nhất: ls ls -la vốn là combo ưa thích, thì ngày nay, tay đã quen với 2 combo khác: ls -Fhtl hiển thị file và sắp xếp theo file mới nhất ở trên đầu ls -lFS hiển thị file theo size giảm dần (dễ nhớ: LinuxFromScratch ) free -m free là câu lệnh chỉ có trên Linux như Ubuntu, trên OSX và OpenBSD đều không có, vậy nên dùng top | head sẽ thay thế được cho lệnh free. Combo sau khi login vào 1 máy sẽ là: w; df -h; top | head grep Vẫn là combo grep -Rin pattern dir nhưng ngày nay mình đã thay grep bằng ripgrep nên thường chỉ gõ rg pattern dir ripgrep nhanh hơn grep nhiều lần, chú ý khi tìm file "ẩn"/ignored . curl curl vốn phổ biến như 1 CLI HTTP client tiện dùng khi dev, nhưng curl không có sẵn ở nhiều nơi như wget (ubuntu, busybox mặc định, trong các Alpine based container). $ curl -L -o elm.gz https://github.com/elm/compiler/rele...

Di chuyển trên less - xem web bằng w3m

less là lệnh để xem file (chỉ xem, không sửa). less là phiên bản cải tiến của "more", `less is more`. Có thể bạn chưa bao giờ gõ less, nhưng nếu bạn đã gõ man, tức là bạn đang dùng less. Trong less hỗ trợ phím chuyển trang của cả emacs lẫn vim. Với vim , đó là Ctrl f (forward - cuốn xuống) và Ctrl u (upward - cuốn lên). Với emacs , đó là Ctrl v và Meta v (thường là Alt-v )  - với chữ v giống dấu mũi tên xuống, và alt tạo ra hiệu ứng ngược lại với xuống - tức là lên. Do các tổ hợp phím (key binding) emacs được dùng khắp mọi nơi trên *NIX, sử dụng Ctrl v Meta v giúp bạn di chuyển ở hầu hết các chương trình *NIX khác, có thể kể tới trình duyệt w3m . w3m là trình duyệt trên terminal,

ALSA, PulseAudio, JACK - âm nhạc trên Ubuntu/Linux

Bình thường người dùng chỉ quan tâm đến việc cài máy xong: - có mở được nhạc không - chỉnh âm lượng to nhỏ được không - cùng lắm là mic có hoạt động không là xong. Vậy còn bất thường? Khi bạn muốn "sản xuất nhạc" trên Linux, cụ thể là đánh đàn, thu âm, ... nhu cầu ít phổ biến này thậm chí khiến Ubuntu sản xuất 1 phiên bản gọi là "Ubuntu Studio" với các software phục vụ mục đích trên cài sẵn. (Như KaLi là Distro cài sẵn các tool để Pentest). Trường hợp tốt nhất là bạn cài Ubuntu Studio, và lại không quan tâm. Nhưng ít ai dùng bản này, vậy nên ta rơi vào trường hợp tốt nhì, đã cài Ubuntu (hay 1 Linux distro nào đó). Các từ khóa liên quan: - snd: viết tắt của sound - pcm: Pulse-code modulation ( PCM ) - một phương pháp để biểu diễn tín hiệu analog dưới dạng số - đây là tiêu chuẩn cho digital audio, compact disk, ... ALSA The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. Alsa là viết t...

[Linux] Từ super user đến Sysadmin

(Hay một định nghĩa về "Linux Sysadmin") Bạn có thể dùng hệ điều hành nhân Linux (Ubuntu, Fedora...) OSX được 5 năm, nhưng điều đó không biến bạn thành " Sysadmin ". Bạn có thể biết apt/yum chạy thế nào, dpkg làm gì, bạn biết compile kernel, upgrade kernel, làm đủ trò trên máy tính của bạn, gõ các dòng lệnh, viết bash nhoay nhoáy, nhưng điều đó không biến bạn thành sysadmin. Bạn là một Linux Super user! Hệ thống hỏi đáp quốc tế StackExchange có hẳn 1 trang tên là "Super User", nơi dành cho các super user: Super User is a question and answer site for computer enthusiasts and power users. Và một trang riêng dành cho các "Sysadmin":

Xoá cache, clean RAM trên Android là vô dụng

Thậm chí là có hại. Trước tiên, bạn cần biết rằng Android là hệ điều hành sử dụng Linux kernel. Tức nó có phần nào đấy giống với các hệ điều hành dùng Linux kernel khác như Ubuntu, Fedora, ArchLinux ... Trên Ubuntu, bạn KHÔNG BAO GIỜ phải clean RAM hay xoá cache. Cách tính phần RAM còn có thể sử dụng trên Linux là có bao gồm cả phần cache

Kubernetes từ đầu ...

Một công nghệ xây dựng dựa trên 15 tinh hoa vận hành hệ thống G o o g l e . Một sản phẩm của chính G o o g l e , viết trên ngôn ngữ lập trình phát triển tại G o o g l e ( Golang ). Một công nghệ mới được công bố từ giữa năm 2014, nhưng đã chiếm lĩnh thị phần không nhỏ trên các hệ thống cloud. Một từ khoá nóng nhất mà các sysadmin/devops đều muốn có trong danh sách kỹ năng của mình. Đó là Kubernetes ! Kubernetes là gì Kubernetes hay K8s là một hệ thống để quản lý các "container". Theo Kubernetes GitHub repository : Kubernetest - Production-Grade Container Scheduling and Management Kubernetes is an open source system for managing containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications. Nói một cách dễ hiểu, nếu bạn biết dùng Docker hoặc rkt [0] để chạy các container, thì K8s là giải pháp để quản lý chúng (quản lý bao gồm: tạo, sửa, xoá, xếp lịch(schedule), hay mở rộng (s...

[Linux] Máy còn free bao nhiêu RAM?

Ai dùng Linux, một thời gian sẽ biết cách kiểm tra dung lượng bộ nhớ (memory - RAM) còn trống bằng lệnh free: $ free -m               total       used       free     shared    buffers     cached Mem:           992        789        203          0         43        413 -/+ buffers/cache:        332        660 Swap:            0          0 Lệnh này không dễ đọc và rất nhiều người sẽ nhầm tưởng là máy c...

Kiểm tra máy ảo, liệt kê danh sách các device

Kiểm tra xem máy có phải máy ảo không: # dmesg | grep -i virtual [    0.000000] Booting paravirtualized kernel on KVM [    0.092149] KVM setup paravirtual spinlock [    2.065254] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input4 [    2.067808] input: VirtualPS/2 VMware VMMouse as /devices/platform/i8042/serio1/input/input3 Đây là một máy ảo KVM. Còn đây là kết quả khi chạy trong một Docker busybox container: / # dmesg | grep -i virtual CPU MTRRs all blank - virtualized system. Booting paravirtualized kernel on bare hardware ixgbevf: Intel(R) 10 Gigabit PCI Express Virtual Function Network Driver - version 2.12.1-k VMware vmxnet3 virtual NIC driver - version 1.4.5.0-k-NAPI Liệt kê danh sách các block device # lsblk NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda     253:0    0  30G  0 disk ├─vda1  253:1 ...

[CLI] tail -F, F hoa F***

Là *NIX user, hẳn phải biết dùng lệnh tail để theo dõi một file (thường là file log). Mỗi khi có dòng mới ghi vào file, ta sẽ thấy được dòng đó: tail -f /var/log/syslog (Trên Ubuntu, có thể gõ "logger FAMILUG" để ghi một dòng vào syslog). Log ghi ra file mãi liệu có chán mà dừng lại? Chán thì không chán, nhưng các nhà viết phần mềm sẽ không ghi hàng GB log vào 1 file rồi để nó dùng hết ổ cứng trên máy rồi làm chương trình chết vì hết ổ cứng. Từ đó khai niệm "log rotate" ra đời. Mỗi file log cũ sẽ được đi chuyển, đổi tên mới (thường là thêm đuôi .1 .2 .3 ... vd: /var/log/syslog.1  và sau đó nếu cũ quá thì được nén lại bằng gzip cho tiết kiệm ổ cứng), chuyện này thường được làm hàng ngày hay hàng tuần. File log mới được tạo ra, cùng tên với file log cũ, nhưng giờ trống trơn. Xem thêm chương trình logrotate để biết thêm chi tiết. Nếu ai đã thử dùng -f để theo dõi file log, rồi may mắn hơn nữa, file log đó được rotate, từ ấy trờ đi, không thấy lệnh tail output ...

[Windows] PowerShell đã đến thế giới *NIX

PowerShell là gì?  PowerShell is an automation and configuration management platform. It consists of a cross-platform command-line shell and associated scripting language Trên các hệ điều hành giống UNIX (*NIX) có sh, bash , fish , zsh ... thì trên M$ xưa nay chỉ có "cmd" - một shell thuộc loại vô cùng đơn giản. Gần đây, M$ đã phát triển PowerShell với những cải tiến vượt trội so với "cmd" cổ cũ. Không biết "shell" là gì? xem thêm ở đây Sau vài chục năm ghét mãi không xong, M$ (Microsoft) đã quay sang bày tỏ tình yêu với Linux Các cụ dạy: "kẻ biết thời thế mới là anh hùng", các cụ đã dạy chắc là không sai. Đúng hay sai thì ai cũng thấy, M$ ngày càng được giới *NIX quan tâm hơn (ngay cả bài viết này), và người khổng lồ vẫn chưa ngã sau bao nhiêu sóng gió. Ai từ chối thay đổi, sẽ phải chết, hoặc sống dè dè 😁 Bạn muốn trở thành Linux Sysadmin? thử bấm vào đây Bạn muốn trở thành Windows Sysadmin? đóng 5 triệu rồi cũng bấm vào l...

[Linux kernel] dm - đang mệt

dm là từ viết tắt phổ biến cho "device mapper" trong thế giới Linux. dm xuất hiện từ phiên bản 2.6.9 [2] của Linux kernel, tức đến giờ này thì các hệ điều hành Linux-based đều có sẵn dm để dùng. Trang chủ: https://www.sourceware.org/dm/ đã định nghĩa một cách nghiêm túc về dm như sau [3]: The Device-mapper is a component of the linux kernel (since version 2.6) that supports logical volume management. It is required by LVM2 and EVMS. The original LVM (included in stock 2.4 kernels) does not use it. Vậy dm: là một thành phần của Linux kernel - cụ thể nó là một kernel module (wikipedia gọi nó là một "framework" [4]). dùng để hỗ trợ việc quản lý các volume một cách "logical". là phần yêu cầu bởi LVM2 và EVMS - nếu không biết chúng là gì - tạm bỏ qua Trên Linux, dm thể hiện là một block device, có thể thấy ở :

[CLI] namei - theo em đến cuối chân trời

Khi cho một đường dẫn và kiểm tra xem đường dẫn đó có tồn tại hay không, ls có thể trả lời có hoặc không. Nhưng namei mới là giải pháp để tìm ra đường dẫn đứt ở đoạn nào. $ whatis namei namei (1)            - follow a pathname until a terminal point is found $ ls /etc/salt/minion.d/extra.conf/hihi/hehe ls: cannot access /etc/salt/minion.d/extra.conf/hihi/hehe: Not a directory $ namei /etc/salt/minion.d/extra.conf/hihi/hehe f: /etc/salt/minion.d/extra.conf/hihi/hehe  d /  d etc  d salt  d minion.d  - extra.conf hihi - No such file or directory Kết quả cho biết đường dẫn này không tồn tại từ phần "hihi" chứ ko phải phần "hehe".

Những khái niệm khi bắt đầu "chọc" Android

Android là con robot hư hỏng, đã sản sinh vô tính và thống trị thế giới smartphone. Trong những con robot hư hỏng này, có những con còn zin và rất ngoan. Để "trưởng thành" và hư hỏng hơn, nó cần phải trải qua quá trình đầy thay đổi và đau đớn mà đâu đó trong thế giới loài người, người ta gọi là DẬY THÌ. Còn với Android, đó là rooting, flash ROM mới ... Có rất nhiều từ khoá quan trọng để có thể bắt đầu quá trình phá hoại này. Bài viết sẽ tổng hợp những khái niệm này giúp người dùng bắt đầu lấn sang sân chơi mới. ROM là gì?

Chạy service bằng port < 1024 - không cần quyền root

Trên các hệ điều hành nhân Linux, để một process có thể nghe (bind) ở port < 1024, process ấy phải có quyền root. Các port < 1024 còn được gọi là các "privileged port". Có nhiều cách để workaround giới hạn này, như: - dùng iptables để chuyển hướng các kết nối tới privileged port đến port mà service đang listen - dùng authbind Linux từ bản 2.6.24 trở lên hỗ trợ thêm tính năng set "capability" để cho phép 1 file có thể thực hiện 1 khả năng nào đó mà không cần quyền root. Để cho phép 1service listen ở privileged port mà không cần quyền root, chạy lệnh sau với quyền root:

Kiểm tra một process đang chạy hay không (dựa vào PID)?

NOTICE : bài viết tập trung vào vấn đề "kiểm tra xem một process có đang chạy hay không dựa vào PID đã biết" Tất nhiên cách thô thiển nhất là gõ ps auxww | grep PID để tìm, nhưng bài viết này không viết về cái thô thiển ấy. Trên Linux, có sử dụng một thứ gọi là proc filesystem . Với mỗi process đang chạy có pid là PID, sẽ tồn tại tương ứng một thư mục /proc/PID Vậy trên các OS sử dụng Linux, có thể kiểm tra thư mục này có tồn tại không là sẽ biết process có đang chạy hay không. # ps -ef | grep bin[d] bind     32511     1  0 05:33 ?        00:00:00 /usr/sbin/named -u bind # python -c 'import os; print os.path.isdir("/proc/32511")' True # process với PID 32519 không tồn tại # python -c 'import os; print os.path.isdir("/proc/32519")' && ps -ef | grep [3]2519 False Có vẻ đã bớt thô thiển hơn nhiều, nhưng cách này chỉ áp dụng được với các hệ điều hành dùng Linux (và một số hệ điều hành hỗ...

man + man = men

Với người mới sử dụng UNIX-like OS, man là một thứ khá dài dòng, khó đọc, khó hiểu. Bài viết này sẽ mang ``man`` đến gần bạn hơn: man + man = (vodka) men $ whatis man man (1)              - an interface to the on-line reference manuals man(1) là chương trình để đọc các file manual (manpage) 1. sections Các manpage được phân thành 8 sections khác nhau, sections thường gặp nhất là 1 2 3 5 và 8 (fibonacci?!!!) Khi thấy viết login(1) login(3), chúng ám chỉ chương trình login và function login. Người dùng bình thường sẽ chỉ gõ ``man caulenh`` và nó thường trả về man 1, để chỉ rõ section muốn dùng, thêm số section cần mở, vd ``man 3 login`` (nếu máy bạn chưa cài gói  ``manpages-dev`` câu lệnh man trên sẽ báo lỗi). # apt-get install -y manpages-dev ... Setting up manpages-dev (3.35-0.1ubuntu1) ... Để liệt kê tất cả các manpage chứa 1 từ khoá, sử dụng man -k

Để trờ thành Linux sysadmin ...

Làm thế nào để trở thành Linux sysadmin? học gì để trở thành Linux sysadmin? Đăng ký học Linux Sysadmin OFFLINE tại   https://pymivn.github.io/sysad101/ Khoan hãy đi vào phần trả lời, hãy tự hỏi mình vài câu sau: - bạn có sẵn sàng thức dậy vào lúc 3h sáng vì hệ thống có sự cố ? bạn có sẵn sàng / muốn ở trung tâm dữ liệu suốt một tuần không biết ngày đêm? Nếu câu trả lời là có, hãy tiếp tục. Nếu có chút ngần ngại, hãy ngó qua khả năng trở thành một python developer ... Nhưng dù sao đi nữa, hãy cứ tiếp tục :))

sysctl - cấu hình các tham số kernel khi đang chạy

sysctl là một công cụ đơn giản ( vâng, đơn giản hơn cả ls ), công việc của nó chỉ có hiển thị hoặc thay đổi một tham số nào đó của kernel. Vấn đề biết phải thay đổi tham số nào, để làm gì mới là phần ... phức tạp. Hỏi theo phong cách CCGU : # whatis sysctl sysctl (8)           - configure kernel parameters at runtime # whereis sysctl sysctl: /sbin/sysctl /etc/sysctl.d /etc/sysctl.conf /usr/share/man/man8/sysctl.8.gz Hiển thị 1 parameter có tên là net.ipv4.ip_forward (để cho phép forward gói tin) : # sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0 Thay đổi giá trị của parameter nói trên: # sysctl -w net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1 Các settings của sysctl nằm ở /etc/sysctl.conf và có thể trong thư mục /etc/sysctl.d , để thay đổi có hiệu lực cả sau khi reboot , cần sửa các file này thay vì set trực tiếp bằng sysctl. Các parameter mà sysctl thao tác được liệt kê ở dạng file tại thư mục /proc/sys . ...

[cmd] linux utilities - có gì cần thiết?

Một danh sách các command line tool tuyển chọn bởi FAMILUG. Những dòng hiện "nothing appropriate." là nhưng built-in command của bash hoặc là các tool chưa cài đặt trên máy chạy script này. ./linux-util.sh FAMILUG's list of essential Linux utilites 1.0 TOTAL: 80 man (1)              - an interface to the on-line reference manuals man (7)              - macros to format man pages ls (1)               - list directory contents cd: nothing appropriate. pwd (1)              - print name of current/working directory grep (1)             - print lines matching a pattern head (1)             - output t...

[bash] shellshock - từ gốc đến ngọn

Shellshock là gì? shellshock là tên của lỗi bảo mật của phần mềm bash mới được phát hiện (tháng 9/2014) và hiện đang gây một cơn sốc trên Internet. Nó không phải sốc theo kiểu "cộng đồng mạng phát cuồng", hay "cộng đồng mạng bị sốc", mà là kiểu sốc "cộng đồng mạng" cơ bản là không tham gia vào :D Shellshock có nguy hiểm không? Cực kỳ nguy hiểm! cực kỳ là đến mức nào? Hãy google với từ khoá "shellshock dangerous" để tìm ra câu trả lời cho chính mình. Nói thẳng ra thì người dùng Windows không bị ảnh hưởng (trực tiếp), còn ai không biết thì chẳng thấy nguy hiểm gì. Giống như dịch Ebola, ai biết nó gây chết người trong vài ngày thì thấy sợ, ai không biết nó là cái gì thì làm sao mà thấy nó nguy hiểm?!!! Lỗi này có từ năm 1993 1989 [Thanks Le Manh Cuo ng ] và đến nay đã 25 năm từ khi nó ra đời, nhưng đến giờ mới được phát hiện. Hãy tưởng tượng trong 25 năm ấy, hacker có thể dễ dàng vào máy tính của bạn với quyền root (tức muốn làm gì thì ...

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG