11 tháng 10, 2016

Mẹo vặt và các phím tắt thường sử dụng trong Visual Studio

1. Các hotkey cơ bản
Sử dụng hotkey nhiều sẽ khiến người ngoài thấy bạn code có vẻ prohơn. Bạn cũng đỡ tốn công di chuyển chuột hơn
F5 – Ctrl F5 – Debug
Capture
Sau khi code xong, thay vì phải di chuyển chuột lên, bấm nút Start này để chạy chương trình, hãy bấm F5 (Cái này cơ bản quá rồi, bỏ vào cho những ai chưa biết thôi).
Trường hợp ta đặt breakpoint để bug, hãy bấm Ctrl + F5 để chạy chế độ no debug, bỏ qua breakpoint nhé.
F12 – See implementation
7e283a9a8eb79982555108a368bd55c1
Khi đọc code, ta muốn xem 1 class hay method viết như thế nào, hãy sử dụng phím F12. Nếu bạn cài Reshaper hoặc VS Productivity Tool, bạn có thể giữ Ctrl và click vào class để có hiệu quả tương tự
Ctrl K + Ctrl D – Format Code
dc4142a79110417ebf8e261dad97900a
Code xong, nếu thấy code xiêu vẹo thì hãy dùng Ctrl K + Ctrl D để tự động format lại. Nếu code không tự động format thì code thể là bạn quên đóng () hoặc {} nhé.
Ctrl K + Ctrl C – Comment Code / Ctrl K + Ctril U – Uncomment Code
Để comment code, ta thường comment bằng tay dùng 2 nút này trên toolbar
Capture
Ta có thể áp dụng hotkey để comment/uncomment nhanh nhé
2579938a9039a675c6e87060f8601ec3
F9 – Set breakpoint
Capture
Để đặt breakpoint ta thường phải click vào thanh dọc bên trái. Sao phải làm vậy khi ta có thể bấm F9 là xong, nhanh gọn lẹ.
F10/F11 – Step over/Step into
Capture2
Khi debug, thay vì bấm 2 nút trên toolbar này, dùng hotkey F10 và F11 sẽ tiết kiệm thời gian hơn.
2. Sử dụng snippet
Trong quá trình code, có những đoạn code ta phải lặp lại nhiều lần. Visual Studio đã tích hợp sẵn những đoạn code này, gọi là snippet, tiết kiệm khá nhiều thời gian (Netbeans hay Eclipse cũng có).
Cách sử dụng snippet: Gõ ra rồi Tab là xong
ctor – Tạo contrucstor cho class
4ba583d625ea477f4e2a6e6d487688e3
prop – Tạo properties – Gõ xong nhớ Tab Tab
7ff4683654699f984f00a56826df2b50
Hồi mới chuyển từ java qua C#, mình thắc mắc sao Visual Studio xịn vậy mà ko có cái tạo getter, setter cho field. Sau này mới biết getter, setter được hiện thực bằng property nhé.
cw – Console.WriteLine() – Cho mấy bạn hay code Console
60575fb39be324ef353e21227d2f0cee
for/forr – Tự tạo hàm for
89d840b75c4ddc6cde266edeb4046d48
Các bạn có thể thử với một số snippet khác như if/else, do/while, switch, try nhé.

3. Một số mẹo nhỏ khác
Giữ Ctrl + Nhấp chuột – Box Selection
Bạn từng gặp cảnh phải sửa nhiều dòng code 1 lúc chưa? Sử dụng Box Selection sẽ giúp việc này trở nên vô cùng dễ dàng
b17623192b9f9f6779f115aac3c325ed
Ctrl + Shift + V – Nghịch clipboard
Trong đời code, chắc ai cũng đã từng phải copy paste. Đã bao giờ bạn từng copy A, sau đó lỡ bấm nhầm copy B, C, sau đó phải tìm A để copy lại chưa? Visual Studio lưu lại tận 20 lần copy gần nhất trong clipboard, ta có thể dùng Ctrl + Shift + V để tìm đoạn clipboard cần paste.
fe4e0a1e8e09f813b9a448dff49198d4
Ctrl + , – Navigate File/Ctrl + ; : Search
987c49fecb17dd097570d1193da5878f
Thay vì Ctrl + F, hãy sử dụng 2 chức năng này, hữu hiệu hơn nhiều đấy
Paste JSON/XML as class
Mình không biết chức năng này được Microsoft thêm vào Visual Studio từ khi nào, nhưng mà nó khá hữu dụng. Hiện nay, khi nhà nhà dùng Rest API, người người dùng Rest API, JSON và XML trở thành hotboy hotgirl. Trong C#, ta không thể dùng thẳng mà phải convert JSON sang object. Chức năng này cho phép ta tạo class để convert json sang.
VD mình có chuỗi JSON sau (Lấy từ facebook graph api):
1
2
3
4
5
6
7
8
9
10
11
12
{
  "id": "1000017928484843",
  "first_name": "Mạnh Chức",
  "gender": "male",
  "last_name": "Lê",
  "locale": "vi_VN",
  "name": "Lê Mạnh Chức",
  "timezone": 7,
  "updated_time": "2017-02-06T12:56:23+0000",
  "verified": true
}
Chỉ cần dùng paste JSON as class, dán đoạn JSON này vào, sau đó chọn uppercase các kí tự đầu tiên của các field là xong. VS khá thông minh, có thể xác định một số trường là datetime hoặc boolean, còn mặc định là string.
Wn6mLGm6Hh
Bài viết load hơi nặng vì có nhiều ảnh động, các bạn thông cảm. Chúc các bạn ngày càng thành thục với IDE của mình. Mấy trò hotkey snippet v…v này rất phù hợp để “chứng tỏ trình độ” hoặc “hù mem mới” nhé.

9 tháng 10, 2016

Tổng hợp câu lệnh cơ bản trong Linux


1) Tắt máy ( shutdown )
#init 0
#shutdown -hy -t    // Tắt máy  sau khoảng thời gian. Đơn vị : giây (s)
#halt
#poweroff

2) Khởi động hệ thống ( reboot)
#init 6
#reboot
#shutdown -ry 10    // Chỉ định 10 phút sau tự khởi động hệ thống

3) Liên kết tập tin 
Bạn muốn tập tin testfile trong đường dẫn /usr/testfile sẽ xuất hiện trong thư mục /usr/test
#ln /usr/testfile /user/test
#ln  <đích>
Chú ý : Nếu có sự thay đổi của nguồn thì đích sẽ thay đổi

4) Quản lý dung lượng đĩa , ram Dung lượng đĩa :
#df -h //Liệt kê file system
#fdisk -l //Liệt kê partition
Ram :
#free -m

5) Xác định vị trí thư mục hiện tại 
#pwd 

6) Truy cập thư mục
#cd {thư mục}
VD: cd /etc

7) Liệt kê nội dung thư mục
#ls [-x / -l -a ] {thư mục}
ls -x // hiển thị thư mục nhiều cột
ls -l // hiển thị chi tiết thông tin tập tin
ls -a // hiển thị tất cả các tập tin, kể cả tập tin ẩn
VD: ls -l /etc

8) Tạo và xóa thư mục
#mkdir {thư mục} // Tạo thư mục
VD:
cd /etc
mkdir testfile
#rmdir {thư mục} // Xóa thư mục
VD:
cd /etc
rmdir testfile
#rm [-r / -l ] { thư mục / tập tin }
rm -r : xóa thư mục và tập tin con bên trong thư mục đó
rm -l : xác nhận lại trước khi xóa
VD :
cd /etc/
rm-rf testfile

9) Xem tập tin văn bản
#cat {tập tin}
VD : cat /etc/test.txt
#more {tập tin} // Xem tập tin theo từng trang màn hình
VD : more /etc/passwd

10 ) Sao chép tập tin

#cp  
VD: cp /etc/passwd /root/passwd

11 ) Thay đổi tên tập tin hoặc di chuyển
#mv  
VD : mv /etc/testfile /opt/

12) Tìm kiếm tập tin , chuỗi
#find [đường-dẫn] -name [biểu-thức-tìm-kiếm] // Tìm kiếm tập tin
VD:
find /etc -name test // Tìm thư mục test có trong /etc nhưng không rõ đường dẫn.
#grep [biểu-thức-tìm-kiếm] [tên-tập-tin] //Tìm kiễm chuỗi kí tự trong 1 tập tin
VD :
grep “root” /etc/passwd //tìm các dòng có root trong file passwd

13) Chỉnh sửa tập tin
#vi {tập tin}
VD : vi /etc/test.txt
Ấn I : để sửa file
Esc : để thoát câu lệnh nhưng vẫn ở trong file
:wq! : lưu lại file sau khi sửa và quit
/{kí tư} : tìm kiếm file , ấn N để next kết quả
#nano {tập tin}
Để cài nano gõ lệnh : yum install nano -y

14) Chỉnh time trong centos
#date // Kiểm tra thời gian
#yum install ntp -y // Cài dịch vụ NTP
#ntpdate vn.pool.ntp.org // Chỉnh time theo múi giờ Việt Nam

15) Cài / Gỡ / Cập nhật phần mềm
#yum install {tên-phần-mềm} -y // Cài phần mềm
VD : yum install ntp -y
#yum remove {tên-phần-mềm} -y // Gỡ phần mềm
VD : yum remove ntp -y
#yum update {tên-phần-mềm} -y //cật nhập phần mềm
VD: yum update bind -y
hoặc
#rpm -Uvh {tên-tập-tin.rpm}
VD : rpm -Uvh foo-2.0-1.i386.rpm //Cập nhật phần mềm không xóa cấu hình
#yum update -y // Cập nhật hệ thống bao gồm các phần mềm

16) Nén và giải nén thư mục
Nén thư mục hoặc tập tin :
#gzip {tập tin}
VD : gzip /etc/passwd
#tar -cvf {tập tin}
VD : tar -cvf /etc/passwd
Giải nén thư mục hoặc tập tin :
#gunzip /etc/passwd.gz
#tar -zxvf /etc/passwd.tar

17) Tạo và xóa user / group Tạo và xóa user
#useradd {tên-user} //Tạo user
VD: useradd lmc
#userdel {tên user} //Xóa user
Tạo và xóa group
#groupadd {tên-group} //Tạo group
VD: groupadd lmcgroup
#groupdel {tên-group} // Xóa group
Gán user vào group :
#usermod -g {tên-group} {tên-user}
VD: usermod -g lmcgroup lmc

18) Phân quyền tập tin Kiểm tra phần quyền các tập tin trong /etc
#cd /etc
#ls -l
-Có 3 quyền trong Linux : read (r) , write (r) , execute(x) tương ứng với : đọc-ghi-thực thi -Và 3 dạng đối tượng : sở hữu (owner) , nhóm sở hữu (group owner) , người khác (other owner) -Đối với thư mục khi ls -l sẽ có chữ d ở đầu , c cho thiết bị ngoại vi , b cho block , còn với file thì không có VD: drwxr-xr-x. – Ngoài ra, 3 quyền trong Linux sẽ có giá trị tương ứng : read = 4 , write = 2 , execute = 1 VD: Full quyền = read + write + execute = 4 + 2 + 1 = 7 Phân quyền thao tác tập tin (read – write – execute) :
#chmod {giá-trị-quyền} {tập-tin}
VD: chmod 777 testfile.txt
Phân quyền người dùng tập tin
#chown -R {tên-user:tên-nhóm} {thư-mục hoặc tập tin}
VD:
chown -R vnitnews testfile.txt
Thay đổi nhóm sở hữu tập tin
#chgrp {nhóm-sở-hữu} {thư mục hoặc tập tin }

19) Tải phần mềm
#yum install wget -y
#wget {đường-dẫn}
VD: wget https://manhchuc.com/lmc.logo

20) Cấu hình mạng Centos
#ifconfig // Kiểm tra card mạng hiện thời
#ifconfig -a //Kiểm tra tất cả card mạng
Để cấu hình card mạng :
#vi /etc/sysconfig/network-scripts/ifcfg-eth0 //Thư mục chỉnh card mạng
Reset card mạng :
#service network restart
21) Khởi động sang menu boot khác tạm thời
CENTOS
echo "savedefault --default=2 --once" | grub --batch

UBUNTU
grub-reboot 4
reboot
*Thứ tự được đánh số từ 0
22) Thay đổi timezone
sudo dpkg-reconfigure tzdata
23) add user
sudo usermod -a -G jenkins tomcat
chown jenkins:tomcat /opt/tomcat-test/bin/*.*
24) Kết nối wifi với Ubuntu
http://askubuntu.com/questions/412325/automatically-connect-to-a-wireless-network-using-cli



25) Tắt màn hình, tắt screen ubuntu
setpci -s 00:02.0 F4.B=0
setterm -blank 0
26) Add user vào group (để có quyền của group)
sudo usermod -aG docker $(whoami)
27)To remove apache2 simply type:
sudo update-rc.d -f  apache2 remove

Doing this will cause all runlevel folders that are linked to apache2 to be removed.
28) Config services ubuntu 14.04:
nano /etc/init.d/


The usual process is to amend /etc/network/interfaces (you do know vim or emacs, right?) something like this:
Code:
auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 192.168.1.108
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid mylilrouter
wpa-psk mysecretkey
dns-nameservers 8.8.8.8 192.168.1.1
Proofread, save and close vim. Restart the interface:
Code:
sudo ifdown wlan0 && sudo ifup  wlan0
https://askubuntu.com/questions/228304/how-do-i-run-a-script-at-start-up

29) Ax OpenVPN Linux
Add config:
comp-lzo yes 
push "comp-lzo yes"
 
30)  Centos vs docker

firewall-cmd --zone=trusted --change-interface=docker0 --permanent
firewall-cmd --zone=trusted --add-masquerade --permanent
firewall-cmd --reload