Showing posts with label Tools. Show all posts
Whiptail - Công cụ tạo giao diện đồ họa trên terminal (bash shell)
Công cụ này được dùng để tạo ra một giao diện đồ họa đơn giản để install hoặc settting một phần mềm nào đó trên môi trường bash shell của terminal.
Một ví dụ, chẳng hạn khi muốn config cấu hình của raspberry pi:
Gõ lệnh "sudo raspi-config"
sẽ ra giao diện như dưới đây :
Note: Chi tiết cách sử dụng có thể tham khảo wiki
[Git] Download git submodule
Nhiều khi cần download chỉ một sub folder trên một git project khổng lồ thì phải làm sao, dưới đây là một số cách.
1. svn export
Link: https://github.com/eslinux/Utils/tree/master/build-app-template
Ở link trên ta có project tên là Utils và subfolder muốn download là build-app-template
svn export https://github.com/eslinux/Utils/trunk/build-app-templateLưu ý nhớ đổi tree/master => trunk
2. DownGit
Link: DownGit (https://minhaskamal.github.io/DownGit)
Vào link trên rồi paste đường dẫn đến sub folder
https://github.com/eslinux/Utils/tree/master/build-app-template
là xong, ko cần thay đổi gì cả.
Kate editor
1. Install on fedora
yum install kate
2. Các tính năng
- High light code khi click vào một biến hay chuỗi ký tự
- Bookmarks code trong từng file source
- Quản lý phiên làm việc với Sessions
Đặc biệt tính năng Block Sellection rất hiếm trên các code editor. Đây là tính năng cho phép chọn một block code theo cột thay vì hàng như mặc định.
[Git] Hệ thống quản lý source code (Part 2)
4. Git server (Github)
Trong phần này chúng ta tiếp tục với git server, bạn có thể tự tạo cho mình một git server riêng khá đơn giản, tuy nhiên bài viết này chỉ đề cập đến Github, một git server được sử dụng phổ biến nhất thế giới, rất nhiều hãng đặt source code của họ tại Github bao gồm cả Facebook :D
Ở phần trước là bài viết về cách làm thế nào để làm việc với git client, bài viết này sẽ tiếp tục bàn về cách để kết nối git client với git server (Github)
4.1 Xác thực git client
Bước đầu tiên cần làm là xác thực git client với git server thông qua SSH key.
Git client
Tạo khóa SSH key trên terminal của máy git client
$ ls -al ~/.ssh
$ ssh-keygen -t rsa -b 4096 -C "luongduyninh@gmail.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ninhld/.ssh/id_rsa): Enter
Enter passphrase (empty for no passphrase): Enter
Enter same passphrase again: Enter
Your identification has been saved in /home/ninhld/.ssh/id_rsa.
Your public key has been saved in /home/ninhld/.ssh/id_rsa.pub.
The key fingerprint is:
11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:f7 luongduyninh@gmail.com
The key's randomart image is:
+--[ RSA 4096]----+
| .o ..o |
| .= = |
| ..o.B. |
|. o.*... |
| . o = .S |
|. + o |
| o o |
| o . |
| . .E |
+-----------------+
$ cat ~/.ssh/id_rsa.pub
Lệnh trên sẽ show ra SSH key, bạn copy đoạn key đó để tiếp tục bước xác thực sau trên github server
Git server
Tạo một tài khoản Github - It is free :D
Login Github
Enter Settings
Enter SSH Keys
Kiểm tra kết nối đến github, kết quả như dưới là ok:
$ ssh -T git@github.com
The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.129' (RSA) to the list of known hosts.
Permission denied (publickey).
4.2 Tạo repository
git clone https://github.com/eslinux/Cproject.git
Tiến hành các thao tác add/modify/delete/commit/... như bình thường
Update lên github
git push -u origin master
5. Owner git server
5.1 Server
Create the user (the -d option specifies the home directory)
useradd -m -d /home/git gitSet the git user's shell
usermod -s /bin/git-shell gitor (using which git-shell)
usermod -s /usr/bin/git-shell git
Set up public key authentication (as the git user)
su -s /bin/bash gitcd /home/gitmkdir .ssh && chmod 700 .ssh && cd .sshtouch authorized_keys && chmod 600 authorized_keys
And your Git user is ready. Everyone who needs access must
have their public key in /home/git/.ssh/authorized_keys
Add a repository on your server; create bare repo (as the git user)
su -s /bin/bash gitcd /home/gitmkdir myrepo.git && cd myrepo.gitgit init --bare5.2 Client
git remote add origin git@<server domain>:OpenglES.gitorgit remote add origin git@<server ip>:OpenglES.git
git push origin master
git clone git@<server ip>:OpenglES.git
git pull
6. Sử dụng Git GUI
Tất cả các phần trên đều sử dụng git với command line là chính (gọi là Shell), tuy nhiên git cũng cung cấp cho chúng ta một phiên bản phần mềm với giao diện trực quan
Install
yum install git-gui
[Git] Hệ thống quản lý source code (Part 1)
Khi làm việc với một project có một điều là bạn không thể nhớ hết được ngày nào bạn làm cái gì, sự khác nhau giữa các version ở những đâu, làm thế nào để các coder ở xa nhau có thể làm chung một project, vv... thế nên một yêu cầu tất yếu là bạn cần một công cụ quản lý sao cho nó có thể làm tất cả các việc trên cho bạn.
Git là một hệ thống quản lý source code đáp ứng yêu được các cầu đó. Git được phân phối trên tất cả các hệ điều hành, trong thế giới Linux, nó là duy nhất.
Ngoài Git ra thì còn một số hệ thống quản lý source code khác bạn nên biết qua như CVS (Concurrent Versions System) và SVN (SubVersioN), chúng được dùng nhiều trên nền tảng Windows.
2. Mô hình hoạt động
Git được chia làm 2 phần gọi là Client và Server, Client chính là máy tính của bạn được cài đặt phần mềm git client, còn Server là một máy tính khác được cài git server, chúng tương tác hai chiều thông qua các API.
Mô hình hoạt động là môt server có nhiều client (mỗi programmer là một client).
Cách thức hoạt động như sau:
+ Admin của git server tạo một kho để chứa source code project của bạn gọi là Remote repository
+ Trên client, bạn cũng tạo một kho để chứa source code gọi là Local repository
+ Bạn tạo ra các thư mục, các file source code, các ghi nhớ cho project, ...
+ Bạn đẩy (push) tất cả project lên Remote repository
+ Ở một client khác từ bây giờ có thể lấy về (pull) tất cả project
3. Git client
3.1 Install
yum install git-all3.2 Initial project
Toàn bộ quá trình sau được thực hiện bằng command trên Terminal
cd <path to project folder>
git init
touch README.md
=> tạo readme file để giới thiệu project, có thể ko cần cũng được
git add ./
=> add tất cả các file hiện tại trong project vào danh sách tracking của git,
git add *.h, git add *.c, git add *.cpp add tất cả các file .h, .c và .cpp vào project
git commit -am "init project, add all source code"
=> commit là add thêm ghi chú
Sau khi init xong bạn tạo ra các file source code, modify, delete bình thường, mỗi lần muốn ghi lại một ghi chú thì bạn thực hiện lặp lại hai lệnh git add và git commit như trên.
Với trường hợp trên git server đã có sẵn source code và bạn muốn lấy nó về để tiếp tục phát triển các version thì thực hiện các lệnh như sau:
cd <new folder>
git clone https://github.com/eslinux/Utils.git
=> Utils là project đã có trên git server, sau lệnh này sẽ có thư mục cùng tên Utils nằm trong trư mục cha <new folder>
git pull
=> update from remote server
3.3 Một số lệnh thao tác
git log
=> xem lại các commit
git status
=> list current status about untrack, modify, delete ...
git rm -f filename
=> delete file on disk
git rm --cached filename
=> remove file from current tracking
git checkout
=> the similar to 'git status'
git ls-files
=> list all file in current folder and subfolder
git diff oldkey newkey
=> trace difference on screen, red text are old content, blue text are new content. oldkey và newkey có được nhờ lệnh "git log", mỗi key là ID cho một commit
3.4 Đẩy source code lên git server
Sau khi hoàn thành tương đối một version (hoặc một tính năng nào đó) của project, bạn đẩy source code lên git server bằng các lệnh sau:
git remote add origin https://github.com/eslinux/Utils.git
=> nếu init project bằng "git clone" thì không cần chạy lệnh này
git push -u origin master
Hướng dẫn sử dụng tất cả các lệnh git tại đây và tại đây :D
Xem tiếp Git - Hệ thống quản lý source code (Part 2) .
Patch File
Patch file là một file text bình thường trong đó chứa nội dung là sự khác nhau giữa hai version của cùng một project. Bạn là developer, khách hàng yêu cầu bạn tiếp tục nâng cấp version, sau khi làm xong thay vì đưa toàn bộ source code cho khách hàng thì bạn chỉ cần đưa patch file là khách hàng có thể tự update version cũ của họ lên bản mới hơn.
Trên Fedora linux cung cấp sẵn hai công cụ để bạn tạo patch file
+ diff (tạo patch file)
+ patch (dùng patch file để update version cũ)
1. Create patch file
Bạn tạo patch file
2. Update
Khách hàng update
Trên Fedora linux cung cấp sẵn hai công cụ để bạn tạo patch file
+ diff (tạo patch file)
+ patch (dùng patch file để update version cũ)
1. Create patch file
Bạn tạo patch file
diff -crB <old version folder> <new version folder> > new.patch
2. Update
Khách hàng update
cp -rf new.patch <old version folder>
cd <old version folder>
patch -p1 -i new.patch
Tag :
Tools












