kết hợp cat grep awk khi xử lý log file trong linux

cat grep awk là những lệnh hay dùng và cực kỳ tiện lợi khi làm việc với log file.

Trong phạm vi bài viết này, giả sử tôi có một đống log file với content như sau

example-log-file
example-log-file

Và tôi muốn, in nội dung của đống log trên vào một file khác csv chẳng hặn, nội dung file csv như trên nhưng thay dấu “:” bằng tab

Có rất nhiều cách, lệnh sed chẳng hạn, nhưng trong bài này tôi muốn kết hợp cat grep awk để xử lý và dùng cờ(flag) F để replace “:” thành tab.

Và câu lệnh sẽ như sau:

Khi đó ta có nội dung file csv như sau:

result
result

Hope this will help 😉

disable touchpad on fedora 21

Sometimes, touch-pad is not disable when you typing on your laptop, and you might be got crazy with your laptop, and want to fuck it up. Calm down! You can overcome this irritation by following the instruction below:

Use xinput command to list your device and check PS/2 device information

Then, id=13 is my touch pad id on my laptop, so I will use the command below to disable or enable it

13 is id of touch pad device in my T420 laptop, maybe yours different .  You can you xinput list to get the id of touch pd device on your laptop.

If you want make it more convenience, you can make a script to make it easier

for eg: ~/touchpad.sh

then create an alias

use it:

Help this could help you ! 😉 And you will love your laptop with fedora (or linux in general) OS again 😉

Một vài lưu ý khi cài đặt php7 (php-fpm) từ source code trên linux (fedora)

Giả sử bạn muốn cài đặt trên fedora, php7, php-fpm với nginx là proxy hứng request đẩy qua cho php xử lý (thông qua php-fpm).

Khi cài đặt từ source code có thể bạn sẽ gặp những vấn đề sau:

  1. Thiếu các thư viện khi chạy lệnh ./congigure
  2. Chỉ định đường dẫn đến thư mục sẽ cài php mà bạn muốn( hữu ích khi bạn muốn cài nhiều phiên bản php trên môi trường làm việc của bạn).
  3. Chỉ định đường dẫn đến file php.ini
  • Thiếu các thư viện khi chạy lệnh ./congigure

Tuỳ theo các tuỳ chọn của bạn, khi chạy lệnh ./configure bạn có thể thiếu những thư viện mà php cần, ví dụ bạn thiếu thư viện liên quan đến utf8 chẳng hạn, hãy dùng yum để tìm

  • Chỉ định đường dẫn đến file php.ini

Khi đó bạn chỉ cần copy file php.ini vào thư mục /etc/php7/php.ini, mọi thay đổi trong file này, sẽ ảnh hưởng đến cấu hình của php trên máy của bạn.

  • Chỉ định đường dẫn sẽ cài php ( hữu ích khi bạn muốn cài nhiều phiên bản php trên môi trường làm việc của bạn).

Lưu ý nữa: khi bạn khởi động php-fpm, mặc định php-fpm sẽ đọc file cấu hình của php-fpm tại /usr/local/etc/php-fpm.conf. Nếu bạn muốn chỉ định đến file cấu hình php-fpm trong thư mục cài đặt php /opt/php7/etc/php-fpm.conf.

 

Đây là script mình lưu trên gíst
https://gist.github.com/nguyentienlong/120af89ab11e5ec48014

Tham khảo:
http://php.net/manual/en/install.pecl.php-config.php
http://php.net/manual/en/install.unix.nginx.php

My vim editor

what I am using with vim now ?

vundle https://github.com/VundleVim/Vundle.vim

Plugins:

~/.vimrc content ( personal preference)

 

Some shortcuts that I used to use:

when I want to run external bash cmd (:! semi and bang)

why vim ?:

fast, convenience with shortcut, search with regular expression …

Liệt kê toàn bộ tập tin, lưu vào mảng và các ví dụ liên quan trong bash script

Đôi lúc chúng ta cần lưu kết quả sau khi thực hiện lệnh ls hoặc lệnh find vào một mảng (array) để xử lý cho một yêu cầu nhỏ nào đó.
Trong bài này chúng ta sẽ tìm các file có đuôi .sql trong một thư mục, sau đó in ra tên không chứa đuôi .sql của từng tập tin.
Đầu tiên chúng ta cần list ra những file có đuôi .sql với lệnh ls và lưu vào array ten la files

Sau đó chúng ta tiến hành loop để in chỉ tên tập tin không co duoi .sql ( abc.sql thoi nhe, abc.xyz.sql ?? 😀 😛 )

Các bạn có thể mở rộng yêu cầu, chẳng hạn bạn muốn đọc từng file .sql ứng với từng table trong postgres database chẳng hạn, sau đó dùng lệnh pg_restore
ví dụ nhé:

Với $1 là param đuờng dẫn đến thư mục chứa file .sql.
Sau đó các bạn có thể lưu lại thành 1 file jjdo.sh, sau đó chạy :

P/S:
Để thay thế 1 pattern trong bash ta dùng ${var_name#shortest_matched_pattern} hoặc ${var_name#longest_matched_pattern} # tìm từ đầu – % tìm từ cuối

Đổi tên file hàng loạt trong linux với lệnh for và mv

Khi làm việc với bashscript, hay command trong linux, đôi khi dùng vòng lặp for hay while sẽ rất tiện lợi, ví dụ: đổi tên file, import .sql file chẳng hạn
Bài viết này sẽ lấy vị dụ bạn muốn đổi tên file hàng loạt trong 1 folder nào đó.
Giả sử tôi đang đứng tại folder /home/longnguyen/sandbox/demo-rename-file (pwd)
list file
Bạn muốn đổi tên các file txt thành docx chẳng hạn. Câu lệnh như sau:

Với cú pháp trên bạn có thể làm rất nhiều thứ khác, ví dụ bạn muốn import nhiều file .sql vào csdl postgres (hay bkì hệ csdl nào khác)

vduj với postgres:

Câu hỏi cho các bạn, nếu bạn muốn giải nến nhiều file nén dạng filename.partx_001.tar, filename.partx_002.tar, filename.partx_003.tar … thì câu lệnh sẽ thế nào ?

Tham khảo:
https://www.debian-administration.org/article/150/Easily_renaming_multiple_files
http://stackoverflow.com/questions/678905/untar-multipart-tarball-on-windows