{"id":87949,"date":"2025-04-21T09:45:01","date_gmt":"2025-04-21T02:45:01","guid":{"rendered":"https:\/\/itviecblog.uptech.vn\/?p=86072"},"modified":"2025-06-17T15:03:05","modified_gmt":"2025-06-17T08:03:05","slug":"shell-script-la-gi","status":"publish","type":"post","link":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/","title":{"rendered":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed9i dung b\u00e0i vi\u1ebft<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Shell_script_la_gi\" >Shell script l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Ung_dung_cua_shell_scripting\" >\u1ee8ng d\u1ee5ng c\u1ee7a shell scripting<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Han_che_khi_su_dung_shell_script\" >H\u1ea1n ch\u1ebf khi s\u1eed d\u1ee5ng shell script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Cac_khai_niem_co_ban_trong_cu_phap_shell_script\" >C\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n trong c\u00fa ph\u00e1p shell script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#5_loai_shell_pho_bien_nhat_la_gi\" >5 lo\u1ea1i shell ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 g\u00ec?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Cac_buoc_co_ban_de_thuc_thi_shell_script\" >C\u00e1c b\u01b0\u1edbc c\u01a1 b\u1ea3n \u0111\u1ec3 th\u1ef1c thi shell script\u00a0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Cau_hoi_thuong_gap_ve_shell_script\" >C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 shell script<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#Tong_ket\" >T\u1ed5ng k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n<p><em><strong>N\u1ebfu b\u1ea1n mu\u1ed1n t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f4ng vi\u1ec7c tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix-like nh\u01b0 Linux v\u00e0 macOS, shell script l\u00e0 c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu. Th\u00f4ng qua vi\u1ec7c vi\u1ebft c\u00e1c l\u1ec7nh v\u00e0o m\u1ed9t t\u1ec7p, b\u1ea1n c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 qu\u1ea3n l\u00fd t\u1ec7p, gi\u00e1m s\u00e1t h\u1ec7 th\u1ed1ng hay sao l\u01b0u m\u00e0 kh\u00f4ng c\u1ea7n ph\u1ea3i thao t\u00e1c th\u1ee7 c\u00f4ng.\u00a0<\/strong><\/em><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ecdc b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Shell script l\u00e0 g\u00ec? M\u1ed9t s\u1ed1 kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n v\u1ec1 shell script<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">L\u1ee3i \u00edch v\u00e0 h\u1ea1n ch\u1ebf c\u1ee7a vi\u1ec7c s\u1eed d\u1ee5ng shell script<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00e1c b\u01b0\u1edbc th\u1ef1c hi\u1ec7n shell script<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">C\u00e1c lo\u1ea1i shell<\/span><\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Shell_script_la_gi\"><\/span><b>Shell script l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Shell script l\u00e0 m\u1ed9t t\u1ec7p v\u0103n b\u1ea3n ch\u1ee9a m\u1ed9t chu\u1ed7i c\u00e1c l\u1ec7nh m\u00e0 h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix ho\u1eb7c Linux c\u00f3 th\u1ec3 th\u1ef1c thi. Thay v\u00ec ph\u1ea3i nh\u1eadp c\u00e1c l\u1ec7nh th\u1ee7 c\u00f4ng m\u1ed7i l\u1ea7n, b\u1ea1n c\u00f3 th\u1ec3 vi\u1ebft ch\u00fang v\u00e0o m\u1ed9t t\u1ec7p (g\u1ecdi l\u00e0 script) v\u00e0 ch\u1ec9 c\u1ea7n ch\u1ea1y t\u1ec7p \u0111\u00f3. C\u00e1c l\u1ec7nh trong script s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n theo tr\u00ecnh t\u1ef1, gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5 l\u1eb7p \u0111i l\u1eb7p l\u1ea1i. Shell script gi\u00fap ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 c\u00f4ng s\u1ee9c, \u0111\u1eb7c bi\u1ec7t khi c\u1ea7n th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p ho\u1eb7c nhi\u1ec1u l\u1ea7n.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u0110\u1ed1i v\u1edbi c\u00e1c h\u1ec7 \u0111i\u1ec1u h\u00e0nh kh\u00e1c nhau, script c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 batch file (.bat ho\u1eb7c .cmd) tr\u00ean Windows ho\u1eb7c EXEC tr\u00ean c\u00e1c h\u1ec7 th\u1ed1ng l\u1edbn nh\u01b0 mainframe. M\u1ed9t shell script c\u00f3 th\u1ec3 ch\u1ee9a tham s\u1ed1, ch\u00fa th\u00edch v\u00e0 c\u00e1c l\u1ec7nh con \u0111\u1ec3 l\u00e0m cho vi\u1ec7c t\u1ef1 \u0111\u1ed9ng h\u00f3a tr\u1edf n\u00ean linh ho\u1ea1t v\u00e0 m\u1ea1nh m\u1ebd.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Shell script c\u00f3 th\u1ec3 ch\u1ea1y tr\u00ean c\u00e1c h\u1ec7 th\u1ed1ng UNIX-like (Linux, macOS) m\u00e0 kh\u00f4ng c\u1ea7n thay \u0111\u1ed5i nhi\u1ec1u. Ngo\u00e0i ra, c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng k\u1ebft h\u1ee3p v\u1edbi c\u00e1c c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh nh\u01b0 <\/span><span style=\"font-weight: 400;\">grep<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">awk<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">sed<\/span><span style=\"font-weight: 400;\"> \u0111\u1ec3 x\u1eed l\u00fd v\u0103n b\u1ea3n v\u00e0 d\u1eef li\u1ec7u.<\/span><\/p>\n<h3><b>Kernel l\u00e0 g\u00ec?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">\u0110\u1ec3 hi\u1ec3u \u0111\u01b0\u1ee3c c\u00e1ch shell script ho\u1ea1t \u0111\u1ed9ng v\u00e0 c\u00e1ch n\u00f3 t\u01b0\u01a1ng t\u00e1c v\u1edbi h\u1ec7 th\u1ed1ng, tr\u01b0\u1edbc ti\u00ean ch\u00fang ta c\u1ea7n hi\u1ec3u v\u1ec1 <\/span><b>kernel<\/b><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kernel l\u00e0 ph\u1ea7n quan tr\u1ecdng nh\u1ea5t c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh, n\u00f3 gi\u1ed1ng nh\u01b0 &#8220;b\u1ed9 n\u00e3o&#8221; c\u1ee7a h\u1ec7 th\u1ed1ng gi\u00fap \u0111i\u1ec1u khi\u1ec3n t\u1ea5t c\u1ea3 c\u00e1c ph\u1ea7n c\u1ee9ng v\u00e0 ph\u1ea7n m\u1ec1m trong m\u00e1y t\u00ednh. Kernel c\u00f3 ch\u1ee9c n\u0103ng quan tr\u1ecdng nh\u01b0 qu\u1ea3n l\u00fd b\u1ed9 nh\u1edb (RAM), x\u1eed l\u00fd c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh \u0111ang ch\u1ea1y, \u0111i\u1ec1u khi\u1ec3n c\u00e1c thi\u1ebft b\u1ecb nh\u01b0 chu\u1ed9t, b\u00e0n ph\u00edm, \u1ed5 c\u1ee9ng v\u00e0 x\u1eed l\u00fd c\u00e1c y\u00eau c\u1ea7u v\u00e0o\/ra (I\/O).\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5, khi b\u1ea1n m\u1edf m\u1ed9t \u1ee9ng d\u1ee5ng, kernel s\u1ebd \u0111\u1ea3m b\u1ea3o r\u1eb1ng \u1ee9ng d\u1ee5ng \u0111\u00f3 c\u00f3 \u0111\u1ee7 t\u00e0i nguy\u00ean \u0111\u1ec3 ho\u1ea1t \u0111\u1ed9ng.\u00a0 M\u1ed9t h\u1ec7 th\u1ed1ng Linux ho\u00e0n ch\u1ec9nh bao g\u1ed3m kernel, c\u00e1c ti\u1ec7n \u00edch v\u00e0 th\u01b0 vi\u1ec7n GNU, c\u00e1c script qu\u1ea3n l\u00fd v\u00e0 script c\u00e0i \u0111\u1eb7t.<\/span><\/p>\n<h3><b>Shell l\u00e0 g\u00ec?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Ti\u1ebfp theo, \u0111\u1ec3 t\u01b0\u01a1ng t\u00e1c v\u1edbi kernel, ng\u01b0\u1eddi d\u00f9ng c\u1ea7n m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh g\u1ecdi l\u00e0 <\/span><b>shell.<\/b><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Shell l\u00e0 ch\u01b0\u01a1ng tr\u00ecnh gi\u00fap b\u1ea1n giao ti\u1ebfp v\u1edbi h\u1ec7 \u0111i\u1ec1u h\u00e0nh th\u00f4ng qua d\u00f2ng l\u1ec7nh. B\u1ea1n c\u00f3 th\u1ec3 hi\u1ec3u Shell nh\u01b0 m\u1ed9t &#8220;c\u1ea7u n\u1ed1i&#8221; gi\u1eefa b\u1ea1n v\u00e0 m\u00e1y t\u00ednh. Khi b\u1ea1n g\u00f5 l\u1ec7nh tr\u00ean terminal, shell s\u1ebd hi\u1ec3u v\u00e0 truy\u1ec1n c\u00e1c l\u1ec7nh \u0111\u00f3 cho Kernel \u0111\u1ec3 th\u1ef1c thi. C\u00f3 hai lo\u1ea1i Shell ch\u00ednh:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Command Line Shell<\/b><span style=\"font-weight: 400;\">: \u0110\u00e2y l\u00e0 lo\u1ea1i giao di\u1ec7n d\u00f2ng l\u1ec7nh, n\u01a1i b\u1ea1n nh\u1eadp l\u1ec7nh v\u00e0 nh\u1eadn k\u1ebft qu\u1ea3 ngay tr\u00ean m\u00e0n h\u00ecnh.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Graphical Shell<\/b><span style=\"font-weight: 400;\">: L\u00e0 giao di\u1ec7n \u0111\u1ed3 h\u1ecda m\u00e0 b\u1ea1n th\u1ea5y tr\u00ean m\u00e0n h\u00ecnh (nh\u01b0 c\u00e1c c\u1eeda s\u1ed5, bi\u1ec3u t\u01b0\u1ee3ng tr\u00ean desktop).<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Shell \u0111\u01b0\u1ee3c kh\u1edfi \u0111\u1ed9ng khi ng\u01b0\u1eddi d\u00f9ng \u0111\u0103ng nh\u1eadp v\u00e0o h\u1ec7 th\u1ed1ng ho\u1eb7c m\u1edf terminal. C\u00e1c shell ph\u1ed5 bi\u1ebfn tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Linux bao g\u1ed3m Bash, sh, csh v\u00e0 zsh. Shell gi\u00fap ng\u01b0\u1eddi d\u00f9ng th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 qu\u1ea3n l\u00fd h\u1ec7 th\u1ed1ng v\u00e0 ch\u1ea1y c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh.<\/span><\/p>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"\/blog\/shell-vs-bash\/\" target=\"_blank\" rel=\"noopener\"><strong>Shell vs Bash: Ph\u00e2n bi\u1ec7t v\u00e0 l\u1ef1a ch\u1ecdn c\u00f4ng c\u1ee5 ph\u00f9 h\u1ee3p<\/strong><\/a><\/em><\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"Ung_dung_cua_shell_scripting\"><\/span><b>\u1ee8ng d\u1ee5ng c\u1ee7a shell scripting<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Vi\u1ec7c s\u1eed d\u1ee5ng shell script mang l\u1ea1i nhi\u1ec1u l\u1ee3i \u00edch, \u0111\u1eb7c bi\u1ec7t trong vi\u1ec7c t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00e0 t\u1ed1i \u01b0u h\u00f3a c\u00e1c t\u00e1c v\u1ee5 h\u1ec7 th\u1ed1ng. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 l\u00fd do b\u1ea1n n\u00ean d\u00f9ng shell script:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>T\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5 l\u1eb7p \u0111i l\u1eb7p l\u1ea1i<\/b><span style=\"font-weight: 400;\">: Thay v\u00ec l\u00e0m th\u1ee7 c\u00f4ng c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 sao l\u01b0u d\u1eef li\u1ec7u, c\u1eadp nh\u1eadt ph\u1ea7n m\u1ec1m, ki\u1ec3m tra tr\u1ea1ng th\u00e1i h\u1ec7 th\u1ed1ng, d\u1ecdn d\u1eb9p t\u1ec7p t\u1ea1m, ho\u1eb7c c\u1eadp nh\u1eadt ph\u1ea7n m\u1ec1m,&#8230; m\u1ed7i ng\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 vi\u1ebft m\u1ed9t script \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c c\u00f4ng vi\u1ec7c n\u00e0y t\u1ef1 \u0111\u1ed9ng, gi\u00fap ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 gi\u1ea3m thi\u1ec3u sai s\u00f3t.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: T\u1ea1o script sao l\u01b0u d\u1eef li\u1ec7u h\u00e0ng ng\u00e0y v\u00e0o m\u1ed9t th\u01b0 m\u1ee5c d\u1ef1 ph\u00f2ng.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng<\/b><span style=\"font-weight: 400;\">: Shell scripting l\u00e0 c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu trong qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng. C\u00e1c qu\u1ea3n tr\u1ecb vi\u00ean h\u1ec7 th\u1ed1ng (system admin) c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng shell script \u0111\u1ec3 ki\u1ec3m tra t\u00ecnh tr\u1ea1ng h\u1ec7 th\u1ed1ng, gi\u00e1m s\u00e1t b\u1ed9 nh\u1edb, ki\u1ec3m tra \u1ed5 \u0111\u0129a, v\u00e0 x\u1eed l\u00fd c\u00e1c s\u1ef1 c\u1ed1 t\u1ef1 \u0111\u1ed9ng. \u0110i\u1ec1u n\u00e0y gi\u00fap duy tr\u00ec s\u1ef1 \u1ed5n \u0111\u1ecbnh c\u1ee7a h\u1ec7 th\u1ed1ng m\u00e0 kh\u00f4ng c\u1ea7n s\u1ef1 can thi\u1ec7p th\u1ee7 c\u00f4ng.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: S\u1eed d\u1ee5ng script \u0111\u1ec3 theo d\u00f5i dung l\u01b0\u1ee3ng \u1ed5 \u0111\u0129a v\u00e0 g\u1eedi c\u1ea3nh b\u00e1o khi \u1ed5 \u0111\u0129a g\u1ea7n \u0111\u1ea7y.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Qu\u1ea3n l\u00fd t\u1ec7p v\u00e0 d\u1eef li\u1ec7u<\/b><span style=\"font-weight: 400;\">: Shell scripting gi\u00fap x\u1eed l\u00fd t\u1ec7p v\u00e0 d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch nhanh ch\u00f3ng v\u00e0 hi\u1ec7u qu\u1ea3. B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng script \u0111\u1ec3 t\u00ecm ki\u1ebfm t\u1ec7p, thay \u0111\u1ed5i t\u00ean t\u1ec7p, di chuy\u1ec3n ho\u1eb7c x\u00f3a t\u1ec7p, hay th\u1eadm ch\u00ed tr\u00edch xu\u1ea5t v\u00e0 ph\u00e2n t\u00edch d\u1eef li\u1ec7u t\u1eeb c\u00e1c t\u1ec7p log.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: T\u00ecm ki\u1ebfm c\u00e1c t\u1ec7p log c\u00f3 l\u1ed7i v\u00e0 g\u1eedi th\u00f4ng b\u00e1o t\u1edbi qu\u1ea3n tr\u1ecb vi\u00ean.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>T\u00edch h\u1ee3p v\u00e0 tri\u1ec3n khai ph\u1ea7n m\u1ec1m (DevOps)<\/b><span style=\"font-weight: 400;\">: Trong m\u00f4i tr\u01b0\u1eddng DevOps, shell scripting \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng r\u1ed9ng r\u00e3i \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c quy tr\u00ecnh tri\u1ec3n khai ph\u1ea7n m\u1ec1m, t\u1eeb c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7, tri\u1ec3n khai \u1ee9ng d\u1ee5ng cho \u0111\u1ebfn ki\u1ec3m tra c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt. \u0110i\u1ec1u n\u00e0y gi\u00fap \u0111\u1ea3m b\u1ea3o quy tr\u00ecnh tri\u1ec3n khai nhanh ch\u00f3ng, nh\u1ea5t qu\u00e1n v\u00e0 gi\u1ea3m thi\u1ec3u l\u1ed7i.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: Vi\u1ebft script \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh m\u00f4i tr\u01b0\u1eddng m\u00e1y ch\u1ee7 tr\u01b0\u1edbc khi tri\u1ec3n khai \u1ee9ng d\u1ee5ng.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ph\u00e2n t\u00edch v\u00e0 x\u1eed l\u00fd d\u1eef li\u1ec7u<\/b><span style=\"font-weight: 400;\">: Shell scripting h\u1ed7 tr\u1ee3 x\u1eed l\u00fd v\u00e0 ph\u00e2n t\u00edch d\u1eef li\u1ec7u l\u1edbn m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. B\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c c\u00f4ng c\u1ee5 nh\u01b0 awk, sed v\u00e0 grep trong script \u0111\u1ec3 ph\u00e2n t\u00edch t\u1ec7p d\u1eef li\u1ec7u ho\u1eb7c b\u00e1o c\u00e1o.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: Ph\u00e2n t\u00edch c\u00e1c t\u1ec7p log h\u1ec7 th\u1ed1ng, t\u00ecm ra c\u00e1c l\u1ed7i v\u00e0 t\u1ea1o b\u00e1o c\u00e1o th\u1ed1ng k\u00ea.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>L\u1eadp l\u1ecbch c\u00f4ng vi\u1ec7c t\u1ef1 \u0111\u1ed9ng<\/b><span style=\"font-weight: 400;\">: Shell script k\u1ebft h\u1ee3p v\u1edbi c\u00f4ng c\u1ee5 cron cho ph\u00e9p l\u1eadp l\u1ecbch c\u00e1c c\u00f4ng vi\u1ec7c t\u1ef1 \u0111\u1ed9ng ch\u1ea1y v\u00e0o th\u1eddi \u0111i\u1ec3m c\u1ee5 th\u1ec3.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: L\u1eadp l\u1ecbch ch\u1ea1y script sao l\u01b0u d\u1eef li\u1ec7u v\u00e0o 2 gi\u1edd s\u00e1ng h\u00e0ng ng\u00e0y khi l\u01b0u l\u01b0\u1ee3ng h\u1ec7 th\u1ed1ng th\u1ea5p.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Ki\u1ec3m tra v\u00e0 gi\u00e1m s\u00e1t m\u1ea1ng<\/b><span style=\"font-weight: 400;\">: Shell script c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 ki\u1ec3m tra tr\u1ea1ng th\u00e1i k\u1ebft n\u1ed1i m\u1ea1ng, ping t\u1edbi c\u00e1c m\u00e1y ch\u1ee7, ki\u1ec3m tra c\u00e1c c\u1ed5ng \u0111ang m\u1edf v\u00e0 gi\u00e1m s\u00e1t b\u0103ng th\u00f4ng.\u00a0<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5: Script \u0111\u1ec3 ki\u1ec3m tra li\u00ean t\u1ee5c k\u1ebft n\u1ed1i internet v\u00e0 g\u1eedi th\u00f4ng b\u00e1o khi ph\u00e1t hi\u1ec7n m\u1ea5t k\u1ebft n\u1ed1i.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Han_che_khi_su_dung_shell_script\"><\/span><b>H\u1ea1n ch\u1ebf khi s\u1eed d\u1ee5ng shell script<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>D\u1ec5 m\u1eafc l\u1ed7i nghi\u00eam tr\u1ecdng<\/b><span style=\"font-weight: 400;\">: M\u1ed9t l\u1ed7i nh\u1ecf trong script c\u00f3 th\u1ec3 g\u00e2y h\u1ecfng to\u00e0n b\u1ed9 h\u1ec7 th\u1ed1ng ho\u1eb7c t\u1ea1o ra nh\u1eefng t\u00e1c \u0111\u1ed9ng kh\u00f4ng l\u01b0\u1eddng tr\u01b0\u1edbc \u0111\u01b0\u1ee3c. V\u00ed d\u1ee5 nh\u01b0 m\u1ed9t s\u1ed1 thi\u1ebfu s\u00f3t trong c\u00fa ph\u00e1p c\u1ee7a shell script c\u00f3 th\u1ec3 khi\u1ebfn vi\u1ec7c l\u1eadp tr\u00ecnh tr\u1edf n\u00ean kh\u00f3 kh\u0103n v\u00e0 d\u1ec5 m\u1eafc l\u1ed7i.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>T\u1ed1c \u0111\u1ed9 th\u1ef1c thi ch\u1eadm<\/b><span style=\"font-weight: 400;\">: Shell script c\u00f3 th\u1ec3 ch\u1eadm h\u01a1n so v\u1edbi c\u00e1c l\u1ec7nh \u0111\u1ed9c l\u1eadp ho\u1eb7c ch\u01b0\u01a1ng tr\u00ecnh bi\u00ean d\u1ecbch.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Kh\u00f4ng ph\u00f9 h\u1ee3p v\u1edbi t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p<\/b><span style=\"font-weight: 400;\">: Shell script kh\u00f4ng l\u00fd t\u01b0\u1edfng cho c\u00e1c t\u00e1c v\u1ee5 t\u00ednh to\u00e1n ph\u1ee9c t\u1ea1p ho\u1eb7c c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh y\u00eau c\u1ea7u c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Thi\u1ebfu c\u1ea5u tr\u00fac d\u1eef li\u1ec7u m\u1ea1nh m\u1ebd<\/b><span style=\"font-weight: 400;\">: So v\u1edbi c\u00e1c ng\u00f4n ng\u1eef scripting kh\u00e1c nh\u01b0 Python hay JavaScript, shell script cung c\u1ea5p \u00edt c\u1ea5u tr\u00fac d\u1eef li\u1ec7u h\u01a1n nh\u01b0 m\u1ea3ng v\u00e0 \u0111\u1ed1i t\u01b0\u1ee3ng.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Kh\u00f3 b\u1ea3o tr\u00ec khi quy m\u00f4 l\u1edbn<\/b><span style=\"font-weight: 400;\">: C\u00e1c shell script ph\u1ee9c t\u1ea1p c\u00f3 th\u1ec3 tr\u1edf n\u00ean kh\u00f3 \u0111\u1ecdc v\u00e0 b\u1ea3o tr\u00ec khi s\u1ed1 l\u01b0\u1ee3ng d\u00f2ng code t\u0103ng l\u00ean, \u0111\u1eb7c bi\u1ec7t khi thi\u1ebfu c\u01a1 ch\u1ebf qu\u1ea3n l\u00fd module v\u00e0 package nh\u01b0 c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh hi\u1ec7n \u0111\u1ea1i.<\/span><\/li>\n<\/ul>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"\/blog\/bash-script-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>Bash script l\u00e0 g\u00ec? C\u00e1ch ch\u1ea1y Bash script hi\u1ec7u qu\u1ea3<\/strong><\/a><\/em><\/p><\/blockquote>\n<h2><span class=\"ez-toc-section\" id=\"Cac_khai_niem_co_ban_trong_cu_phap_shell_script\"><\/span><b>C\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n trong c\u00fa ph\u00e1p shell script<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">C\u00fa ph\u00e1p shell script gi\u1ed1ng nh\u01b0 c\u00e1c l\u1ec7nh d\u00f2ng l\u1ec7nh th\u00f4ng th\u01b0\u1eddng, gi\u00fap vi\u1ec7c vi\u1ebft m\u00e3 v\u00e0 tri\u1ec3n khai nhanh ch\u00f3ng m\u00e0 kh\u00f4ng c\u1ea7n bi\u00ean d\u1ecbch. Vi\u1ebft Shell script c\u00f2n \u0111\u01b0\u1ee3c \u0111\u00e1nh gi\u00e1 nhanh v\u00e0 d\u1ec5 d\u00e0ng h\u01a1n so v\u1edbi c\u00e1c ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c. Ngo\u00e0i ra c\u00f2n d\u1ec5 d\u00e0ng debug v\u00e0 s\u1eeda l\u1ed7i nhanh ch\u00f3ng trong qu\u00e1 tr\u00ecnh s\u1eed d\u1ee5ng. C\u00e1c kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n m\u00e0 b\u1ea1n c\u1ea7n bi\u1ebft bao g\u1ed3m:<\/span><\/p>\n<h3><b>Shebang<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Khi b\u1ea1n vi\u1ebft m\u1ed9t Shell script, d\u00f2ng \u0111\u1ea7u ti\u00ean th\u01b0\u1eddng b\u1eaft \u0111\u1ea7u v\u1edbi <\/span><span style=\"font-weight: 400;\">#!\/bin\/bash<\/span><span style=\"font-weight: 400;\">. \u0110\u00e2y l\u00e0 shebang. N\u00f3 gi\u1ed1ng nh\u01b0 m\u1ed9t ch\u1ec9 d\u1eabn cho h\u1ec7 th\u1ed1ng bi\u1ebft ph\u1ea3i d\u00f9ng shell n\u00e0o \u0111\u1ec3 ch\u1ea1y c\u00e1c l\u1ec7nh trong script. N\u1ebfu b\u1ea1n vi\u1ebft Bash script, th\u00ec d\u00f2ng n\u00e0y s\u1ebd l\u00e0 <\/span><span style=\"font-weight: 400;\">#!\/bin\/bash<\/span><span style=\"font-weight: 400;\">, v\u00e0 n\u00f3 cho h\u1ec7 th\u1ed1ng bi\u1ebft s\u1eed d\u1ee5ng Bash \u0111\u1ec3 th\u1ef1c thi c\u00e1c l\u1ec7nh. V\u00ed d\u1ee5:<\/span><\/p>\n<pre>#!\/bin\/bash\necho \"Hello, world!\"<\/pre>\n<p><span style=\"font-weight: 400;\">Khi b\u1ea1n ch\u1ea1y script n\u00e0y, n\u00f3 s\u1ebd hi\u1ec3n th\u1ecb &#8220;Hello, world!&#8221; tr\u00ean m\u00e0n h\u00ecnh. Shebang gi\u00fap \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c l\u1ec7nh trong script s\u1ebd \u0111\u01b0\u1ee3c th\u1ef1c thi b\u1edfi \u0111\u00fang shell.<\/span><\/p>\n<h3><b>Bi\u1ebfn (Variables)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Bi\u1ebfn trong Shell script l\u00e0 m\u1ed9t c\u00e1ch \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u m\u00e0 b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng sau n\u00e0y trong script c\u1ee7a m\u00ecnh. Khi b\u1ea1n \u0111\u1ecbnh ngh\u0129a m\u1ed9t bi\u1ebfn, b\u1ea1n s\u1ebd g\u00e1n gi\u00e1 tr\u1ecb cho n\u00f3 v\u00e0 sau \u0111\u00f3 c\u00f3 th\u1ec3 tham chi\u1ebfu \u0111\u1ebfn bi\u1ebfn \u0111\u00f3 \u0111\u1ec3 s\u1eed d\u1ee5ng trong c\u00e1c l\u1ec7nh ti\u1ebfp theo. Bi\u1ebfn c\u00f3 th\u1ec3 l\u01b0u tr\u1eef nhi\u1ec1u lo\u1ea1i d\u1eef li\u1ec7u, ch\u1eb3ng h\u1ea1n nh\u01b0 s\u1ed1, chu\u1ed7i v\u0103n b\u1ea3n ho\u1eb7c c\u00e1c k\u1ebft qu\u1ea3 t\u1eeb c\u00e1c l\u1ec7nh kh\u00e1c.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Trong Linux, c\u00f3 hai lo\u1ea1i bi\u1ebfn ch\u00ednh:<\/span><\/p>\n<h4><b>Bi\u1ebfn h\u1ec7 th\u1ed1ng (System Variables)<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Bi\u1ebfn h\u1ec7 th\u1ed1ng l\u00e0 c\u00e1c bi\u1ebfn \u0111\u00e3 \u0111\u01b0\u1ee3c \u0111\u1ecbnh ngh\u0129a s\u1eb5n b\u1edfi h\u1ec7 \u0111i\u1ec1u h\u00e0nh ho\u1eb7c shell m\u00e0 b\u1ea1n \u0111ang s\u1eed d\u1ee5ng. C\u00e1c bi\u1ebfn n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c vi\u1ebft hoa v\u00e0 l\u01b0u tr\u1eef th\u00f4ng tin v\u1ec1 h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n, ch\u1eb3ng h\u1ea1n nh\u01b0 t\u00ean shell, phi\u00ean b\u1ea3n shell, th\u01b0 m\u1ee5c l\u00e0m vi\u1ec7c hi\u1ec7n t\u1ea1i ho\u1eb7c c\u00e1c c\u00e0i \u0111\u1eb7t \u0111\u01b0\u1eddng d\u1eabn.<\/span><\/p>\n<p><b>V\u00ed d\u1ee5 v\u1ec1 bi\u1ebfn h\u1ec7 th\u1ed1ng<\/b><span style=\"font-weight: 400;\">:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">BASH=\/bin\/bash<\/span><span style=\"font-weight: 400;\">: T\u00ean c\u1ee7a shell b\u1ea1n \u0111ang s\u1eed d\u1ee5ng.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">PATH=\/usr\/bin:\/bin:\/sbin<\/span><span style=\"font-weight: 400;\">: \u0110\u01b0\u1eddng d\u1eabn c\u00e1c th\u01b0 m\u1ee5c ch\u1ee9a c\u00e1c l\u1ec7nh h\u1ec7 th\u1ed1ng.<\/span><\/li>\n<li><span style=\"font-weight: 400;\">HOME=\/home\/user<\/span><span style=\"font-weight: 400;\">: Th\u01b0 m\u1ee5c ch\u00ednh c\u1ee7a ng\u01b0\u1eddi d\u00f9ng.<\/span><\/li>\n<\/ul>\n<h4><b>Bi\u1ebfn ng\u01b0\u1eddi d\u00f9ng t\u1ef1 \u0111\u1ecbnh ngh\u0129a (User-defined Variables)<\/b><\/h4>\n<p><span style=\"font-weight: 400;\">Bi\u1ebfn ng\u01b0\u1eddi d\u00f9ng t\u1ef1 \u0111\u1ecbnh ngh\u0129a l\u00e0 c\u00e1c bi\u1ebfn do ng\u01b0\u1eddi d\u00f9ng t\u1ea1o ra \u0111\u1ec3 l\u01b0u tr\u1eef gi\u00e1 tr\u1ecb c\u1ea7n thi\u1ebft cho c\u00e1c t\u00e1c v\u1ee5 trong Shell script. C\u00e1c bi\u1ebfn n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c vi\u1ebft th\u01b0\u1eddng v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 g\u00e1n gi\u00e1 tr\u1ecb cho ch\u00fang b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng d\u1ea5u <\/span><span style=\"font-weight: 400;\">=<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5:<\/span><\/p>\n<pre>name=\"Alice\"\necho \"Hello, $name!\"<\/pre>\n<p><span style=\"font-weight: 400;\">\u1ede \u0111\u00e2y, bi\u1ebfn <\/span><span style=\"font-weight: 400;\">name<\/span><span style=\"font-weight: 400;\"> l\u01b0u tr\u1eef gi\u00e1 tr\u1ecb &#8220;Alice&#8221;. L\u1ec7nh <\/span><span style=\"font-weight: 400;\">echo<\/span><span style=\"font-weight: 400;\"> s\u1ebd in ra &#8220;Hello, Alice!&#8221; khi script ch\u1ea1y.<\/span><\/p>\n<h3><b>C\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n (Conditional Statements)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Shell script c\u00f3 th\u1ec3 \u0111\u01b0a ra quy\u1ebft \u0111\u1ecbnh d\u1ef1a tr\u00ean c\u00e1c \u0111i\u1ec1u ki\u1ec7n. C\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n ph\u1ed5 bi\u1ebfn l\u00e0 if-then-else, cho ph\u00e9p b\u1ea1n ki\u1ec3m tra c\u00e1c gi\u00e1 tr\u1ecb v\u00e0 th\u1ef1c hi\u1ec7n h\u00e0nh \u0111\u1ed9ng t\u00f9y thu\u1ed9c v\u00e0o k\u1ebft qu\u1ea3. V\u00ed d\u1ee5:<\/span><\/p>\n<pre>age=20\nif [ \"$age\" -ge 18 ]; then\n \u00a0\u00a0\u00a0echo \"You are an adult.\"\nelse\n \u00a0\u00a0\u00a0echo \"You are a minor.\"\nfi<\/pre>\n<p><span style=\"font-weight: 400;\">\u1ede \u0111\u00e2y, script ki\u1ec3m tra gi\u00e1 tr\u1ecb c\u1ee7a bi\u1ebfn age. N\u1ebfu age l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng 18, s\u1ebd in ra &#8220;You are an adult&#8221;. N\u1ebfu kh\u00f4ng, in ra &#8220;You are a minor&#8221;.<\/span><\/p>\n<h3><b>V\u00f2ng l\u1eb7p (Loops)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">V\u00f2ng l\u1eb7p cho ph\u00e9p b\u1ea1n th\u1ef1c thi m\u1ed9t nh\u00f3m l\u1ec7nh nhi\u1ec1u l\u1ea7n. V\u00ed d\u1ee5, b\u1ea1n c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng v\u00f2ng l\u1eb7p \u0111\u1ec3 l\u1eb7p qua c\u00e1c gi\u00e1 tr\u1ecb trong m\u1ed9t danh s\u00e1ch v\u00e0 th\u1ef1c hi\u1ec7n thao t\u00e1c v\u1edbi m\u1ed7i gi\u00e1 tr\u1ecb \u0111\u00f3.<\/span><\/p>\n<p>for i in {1..5}<\/p>\n<pre>do\n \u00a0\u00a0\u00a0echo \"Number $i\"\ndone<\/pre>\n<p><span style=\"font-weight: 400;\">Script tr\u00ean s\u1ebd in ra c\u00e1c s\u1ed1 t\u1eeb 1 \u0111\u1ebfn 5. M\u1ed7i l\u1ea7n v\u00f2ng l\u1eb7p th\u1ef1c hi\u1ec7n, gi\u00e1 tr\u1ecb c\u1ee7a i s\u1ebd thay \u0111\u1ed5i v\u00e0 <\/span><span style=\"font-weight: 400;\">echo<\/span><span style=\"font-weight: 400;\"> s\u1ebd in &#8220;Number 1&#8221;, &#8220;Number 2&#8221;,&#8230;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Shell script c\u0169ng h\u1ed7 tr\u1ee3 c\u00e1c lo\u1ea1i v\u00f2ng l\u1eb7p kh\u00e1c nh\u01b0 while v\u00e0 until:<\/span><\/p>\n<pre># V\u00f2ng l\u1eb7p while\ncount=1\nwhile [ $count -le 5 ]\ndo\n \u00a0\u00a0\u00a0echo \"While loop: $count\"\n \u00a0\u00a0\u00a0count=$((count+1))\ndone\n\n# V\u00f2ng l\u1eb7p until\ncount=1\nuntil [ $count -gt 5 ]\ndo\n \u00a0\u00a0\u00a0echo \"Until loop: $count\"\n \u00a0\u00a0\u00a0count=$((count+1))\ndone<b><\/b><\/pre>\n<h3><b>H\u00e0m (Functions)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">H\u00e0m l\u00e0 m\u1ed9t nh\u00f3m c\u00e1c l\u1ec7nh \u0111\u01b0\u1ee3c g\u00f3i l\u1ea1i v\u1edbi nhau \u0111\u1ec3 c\u00f3 th\u1ec3 g\u1ecdi v\u00e0 s\u1eed d\u1ee5ng nhi\u1ec1u l\u1ea7n. \u0110i\u1ec1u n\u00e0y gi\u00fap m\u00e3 tr\u1edf n\u00ean d\u1ec5 \u0111\u1ecdc v\u00e0 d\u1ec5 duy tr\u00ec.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5:<\/span><\/p>\n<pre>greet() {\n \u00a0\u00a0\u00a0echo \"Hello, $1!\"\n}\ngreet \"Alice\"<\/pre>\n<p><span style=\"font-weight: 400;\">H\u00e0m <\/span><span style=\"font-weight: 400;\">greet<\/span><span style=\"font-weight: 400;\"> nh\u1eadn m\u1ed9t tham s\u1ed1 (v\u00ed d\u1ee5: &#8220;Alice&#8221;) v\u00e0 in ra &#8220;Hello, Alice!&#8221;. \u0110\u00e2y l\u00e0 c\u00e1ch \u0111\u1ec3 t\u00e1i s\u1eed d\u1ee5ng m\u00e3 m\u00e0 kh\u00f4ng ph\u1ea3i vi\u1ebft l\u1ea1i l\u1ec7nh nhi\u1ec1u l\u1ea7n.<\/span><\/p>\n<h3><b>Nh\u1eadp v\u00e0 xu\u1ea5t (Input and Output)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Shell script c\u00f3 th\u1ec3 nh\u1eadn d\u1eef li\u1ec7u t\u1eeb ng\u01b0\u1eddi d\u00f9ng v\u00e0 xu\u1ea5t k\u1ebft qu\u1ea3 ra m\u00e0n h\u00ecnh. B\u1ea1n c\u00f3 th\u1ec3 y\u00eau c\u1ea7u ng\u01b0\u1eddi d\u00f9ng nh\u1eadp t\u00ean v\u00e0 sau \u0111\u00f3 in ra l\u1eddi ch\u00e0o.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">V\u00ed d\u1ee5:<\/span><\/p>\n<pre>echo \"Enter your name:\"\nread name\necho \"Hello, $name!\"<\/pre>\n<h3><b>Tham s\u1ed1 d\u00f2ng l\u1ec7nh (Command Line Arguments)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Shell script c\u00f3 th\u1ec3 nh\u1eadn c\u00e1c tham s\u1ed1 t\u1eeb d\u00f2ng l\u1ec7nh khi \u0111\u01b0\u1ee3c g\u1ecdi. C\u00e1c tham s\u1ed1 n\u00e0y \u0111\u01b0\u1ee3c truy c\u1eadp th\u00f4ng qua c\u00e1c bi\u1ebfn \u0111\u1eb7c bi\u1ec7t:<\/span><\/p>\n<pre>#!\/bin\/bash\n# script_name.sh arg1 arg2 arg3\necho \"Script name: $0\"\necho \"First argument: $1\"\necho \"Second argument: $2\"\necho \"All arguments: $@\"\necho \"Number of arguments: $#\"<\/pre>\n<h3><b> Exit Status (Tr\u1ea1ng th\u00e1i tho\u00e1t)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">M\u1ed7i l\u1ec7nh trong shell \u0111\u1ec1u tr\u1ea3 v\u1ec1 m\u1ed9t gi\u00e1 tr\u1ecb tr\u1ea1ng th\u00e1i khi k\u1ebft th\u00fac (0 cho th\u00e0nh c\u00f4ng, kh\u00e1c 0 cho l\u1ed7i). B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra tr\u1ea1ng th\u00e1i n\u00e0y \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh l\u1ec7nh c\u00f3 th\u00e0nh c\u00f4ng hay kh\u00f4ng:<\/span><\/p>\n<pre>command\nif [ $? -eq 0 ]; then\n \u00a0\u00a0\u00a0echo \"Command executed successfully\"\nelse\n \u00a0\u00a0\u00a0echo \"Command failed\"\nfi<\/pre>\n<h2><span class=\"ez-toc-section\" id=\"5_loai_shell_pho_bien_nhat_la_gi\"><\/span><b>5 lo\u1ea1i shell ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 g\u00ec?<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Trong h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix v\u00e0 Linux, c\u00f3 nhi\u1ec1u lo\u1ea1i shell kh\u00e1c nhau, m\u1ed7i lo\u1ea1i c\u00f3 nh\u1eefng \u0111\u1eb7c \u0111i\u1ec3m v\u00e0 t\u00ednh n\u0103ng ri\u00eang bi\u1ec7t. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 m\u1ed9t s\u1ed1 lo\u1ea1i shell ph\u1ed5 bi\u1ebfn:<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>T\u00ean Shell<\/b><\/td>\n<td><b>\u0110\u1eb7c \u0111i\u1ec3m<\/b><\/td>\n<td><b>\u1ee8ng d\u1ee5ng<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Bourne Shell (sh)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Shell g\u1ed1c c\u1ee7a Unix, l\u00e0 lo\u1ea1i shell \u0111\u01a1n gi\u1ea3n, kh\u00f4ng h\u1ed7 tr\u1ee3 c\u00e1c t\u00ednh n\u0103ng nh\u01b0 ghi l\u1ea1i l\u1ec7nh tr\u01b0\u1edbc \u0111\u00f3 v\u00e0 c\u00f3 kh\u1ea3 n\u0103ng th\u1ef1c thi h\u1ea1n ch\u1ebf.\u00a0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">C\u00e1c t\u00e1c v\u1ee5 scripting c\u01a1 b\u1ea3n, ho\u1eb7c khi c\u1ea7n hi\u1ec7u su\u1ea5t nhanh ch\u00f3ng m\u00e0 kh\u00f4ng c\u1ea7n nhi\u1ec1u t\u00ednh n\u0103ng n\u00e2ng cao.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Bash (Bourne Again Shell)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">L\u00e0 phi\u00ean b\u1ea3n n\u00e2ng c\u1ea5p c\u1ee7a Bourne Shell, h\u1ed7 tr\u1ee3 ghi nh\u1edb l\u1ecbch s\u1eed l\u1ec7nh, t\u1ef1 \u0111\u1ed9ng ho\u00e0n th\u00e0nh l\u1ec7nh b\u1eb1ng tab v\u00e0 kh\u1ea3 n\u0103ng scripting m\u1ea1nh m\u1ebd.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Shell m\u1eb7c \u0111\u1ecbnh tr\u00ean Linux, macOS, s\u1eed d\u1ee5ng cho c\u00e1c t\u00e1c v\u1ee5 t\u1ef1 \u0111\u1ed9ng h\u00f3a, qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng, ph\u00e1t tri\u1ec3n ph\u1ea7n m\u1ec1m.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">C Shell (csh)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">C\u00fa ph\u00e1p gi\u1ed1ng ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh C, h\u1ed7 tr\u1ee3 thay th\u1ebf l\u1ecbch s\u1eed l\u1ec7nh v\u00e0 \u0111i\u1ec1u khi\u1ec3n c\u00f4ng vi\u1ec7c (job control).<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ph\u00f9 h\u1ee3p khi l\u00e0m vi\u1ec7c v\u1edbi c\u00e1c ti\u1ebfn tr\u00ecnh v\u00e0 \u0111i\u1ec1u khi\u1ec3n c\u00f4ng vi\u1ec7c ph\u1ee9c t\u1ea1p.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Korn Shell (ksh)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">K\u1ebft h\u1ee3p t\u00ednh n\u0103ng c\u1ee7a Bourne Shell v\u00e0 C Shell, cung c\u1ea5p c\u00e1c c\u1ea3i ti\u1ebfn nh\u01b0 thao t\u00e1c chu\u1ed7i v\u00e0 m\u1ea3ng.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">T\u1ef1 \u0111\u1ed9ng h\u00f3a, qu\u1ea3n l\u00fd h\u1ec7 th\u1ed1ng trong m\u00f4i tr\u01b0\u1eddng doanh nghi\u1ec7p, n\u01a1i y\u00eau c\u1ea7u scripting m\u1ea1nh m\u1ebd v\u00e0 hi\u1ec7u su\u1ea5t cao.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Z Shell (zsh)<\/span><\/td>\n<td><span style=\"font-weight: 400;\">L\u00e0 lo\u1ea1i Shell hi\u1ec7n \u0111\u1ea1i v\u1edbi t\u00ednh n\u0103ng ho\u00e0n th\u00e0nh tab c\u1ea3i ti\u1ebfn, s\u1eeda l\u1ed7i ch\u00ednh t\u1ea3 v\u00e0 kh\u1ea3 n\u0103ng t\u00f9y ch\u1ec9nh m\u00f4i tr\u01b0\u1eddng l\u00e0m vi\u1ec7c.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Ph\u00f9 h\u1ee3p v\u1edbi nh\u1eefng ng\u01b0\u1eddi d\u00f9ng mu\u1ed1n m\u1ed9t shell linh ho\u1ea1t, d\u1ec5 s\u1eed d\u1ee5ng h\u01a1n Bash, v\u1edbi kh\u1ea3 n\u0103ng h\u1ed7 tr\u1ee3 plugin v\u00e0 ch\u1ee7 \u0111\u1ec1.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Cac_buoc_co_ban_de_thuc_thi_shell_script\"><\/span><b>C\u00e1c b\u01b0\u1edbc c\u01a1 b\u1ea3n \u0111\u1ec3 th\u1ef1c thi shell script\u00a0<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Shell script ho\u1ea1t \u0111\u1ed9ng theo m\u1ed9t quy tr\u00ecnh \u0111\u01a1n gi\u1ea3n nh\u01b0ng m\u1ea1nh m\u1ebd. C\u00e1c b\u01b0\u1edbc c\u01a1 b\u1ea3n \u0111\u1ec3 th\u1ef1c thi script bao g\u1ed5m:<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Vi\u1ebft script<\/b><span style=\"font-weight: 400;\">: \u0110\u1ea7u ti\u00ean, b\u1ea1n vi\u1ebft c\u00e1c l\u1ec7nh trong m\u1ed9t t\u1ec7p v\u0103n b\u1ea3n b\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng tr\u00ecnh so\u1ea1n th\u1ea3o v\u0103n b\u1ea3n, nh\u01b0 Vim, Nano ho\u1eb7c b\u1ea5t k\u1ef3 c\u00f4ng c\u1ee5 n\u00e0o h\u1ed7 tr\u1ee3 so\u1ea1n th\u1ea3o v\u0103n b\u1ea3n. C\u00e1c l\u1ec7nh trong script \u0111\u01b0\u1ee3c vi\u1ebft b\u1eb1ng c\u00fa ph\u00e1p m\u00e0 shell c\u00f3 th\u1ec3 hi\u1ec3u v\u00e0 th\u1ef1c thi.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>L\u01b0u v\u00e0 cung c\u1ea5p quy\u1ec1n th\u1ef1c thi<\/b><span style=\"font-weight: 400;\">: Sau khi vi\u1ebft xong script, b\u1ea1n l\u01b0u t\u1ec7p v\u1edbi ph\u1ea7n m\u1edf r\u1ed9ng <\/span><span style=\"font-weight: 400;\">.sh<\/span><span style=\"font-weight: 400;\"> (theo quy \u01b0\u1edbc chu\u1ea9n). Sau \u0111\u00f3, b\u1ea1n c\u1ea5p quy\u1ec1n th\u1ef1c thi cho t\u1ec7p b\u1eb1ng l\u1ec7nh <\/span><span style=\"font-weight: 400;\">chmod +x script_name.sh<\/span><span style=\"font-weight: 400;\"> \u0111\u1ec3 shell c\u00f3 th\u1ec3 th\u1ef1c thi t\u1ec7p \u0111\u00f3.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><b>Th\u1ef1c thi script<\/b><span style=\"font-weight: 400;\">: Khi script \u0111\u00e3 c\u00f3 quy\u1ec1n th\u1ef1c thi, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y n\u00f3 b\u1eb1ng c\u00e1ch nh\u1eadp \u0111\u01b0\u1eddng d\u1eabn \u0111\u1ebfn script v\u00e0o terminal, v\u00ed d\u1ee5: <\/span><span style=\"font-weight: 400;\">.\/script_name.sh<\/span><span style=\"font-weight: 400;\"> (n\u1ebfu b\u1ea1n \u0111ang \u1edf c\u00f9ng th\u01b0 m\u1ee5c) ho\u1eb7c <\/span><span style=\"font-weight: 400;\">\/\u0111\u01b0\u1eddng\/d\u1eabn\/\u0111\u1ebfn\/script_name.sh<\/span><span style=\"font-weight: 400;\">. Shell s\u1ebd th\u1ef1c thi c\u00e1c l\u1ec7nh trong script theo th\u1ee9 t\u1ef1, gi\u1ed1ng nh\u01b0 b\u1ea1n nh\u1eadp t\u1eebng l\u1ec7nh m\u1ed9t trong d\u00f2ng l\u1ec7nh.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Shell script h\u1ed7 tr\u1ee3 nhi\u1ec1u ch\u1ee9c n\u0103ng m\u1ea1nh m\u1ebd nh\u01b0 v\u00f2ng l\u1eb7p, bi\u1ebfn, c\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n <\/span><span style=\"font-weight: 400;\">if-then-else<\/span><span style=\"font-weight: 400;\">, m\u1ea3ng, v\u00e0 c\u00e1c ph\u00edm t\u1eaft. Nh\u1eefng ch\u1ee9c n\u0103ng n\u00e0y gi\u00fap b\u1ea1n t\u1ea1o ra c\u00e1c script m\u1ea1nh m\u1ebd v\u00e0 linh ho\u1ea1t \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Qua \u0111\u00f3, shell script gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f4ng vi\u1ec7c, ti\u1ebft ki\u1ec7m th\u1eddi gian v\u00e0 gi\u1ea3m thi\u1ec3u c\u00e1c l\u1ed7i do thao t\u00e1c th\u1ee7 c\u00f4ng, \u0111\u1ed3ng th\u1eddi l\u00e0m vi\u1ec7c hi\u1ec7u qu\u1ea3 tr\u00ean h\u1ec7 th\u1ed1ng Unix-like.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cau_hoi_thuong_gap_ve_shell_script\"><\/span><b>C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 shell script<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><b>Shell script c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng c\u00e1c l\u1ec7nh n\u00e0o?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Shell Script c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng h\u1ea7u h\u1ebft c\u00e1c l\u1ec7nh c\u00f3 s\u1eb5n trong shell nh\u01b0 <\/span><span style=\"font-weight: 400;\">ls<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">cp<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">mv<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">rm<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">echo<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">cat<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">grep<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">awk<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">sed<\/span><span style=\"font-weight: 400;\"> v\u00e0 nhi\u1ec1u l\u1ec7nh kh\u00e1c. C\u00e1c l\u1ec7nh n\u00e0y gi\u00fap b\u1ea1n qu\u1ea3n l\u00fd t\u1ec7p, x\u1eed l\u00fd chu\u1ed7i, t\u00ecm ki\u1ebfm th\u00f4ng tin v\u00e0 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 kh\u00e1c trong h\u1ec7 th\u1ed1ng.<\/span><\/p>\n<h3><b>Powershell c\u00f3 ph\u1ea3i shell script kh\u00f4ng?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Kh\u00f4ng, Powershell kh\u00f4ng ph\u1ea3i l\u00e0 m\u1ed9t Shell script. Powershell l\u00e0 m\u1ed9t ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh v\u00e0 m\u00f4i tr\u01b0\u1eddng d\u00f2ng l\u1ec7nh d\u00e0nh cho h\u1ec7 \u0111i\u1ec1u h\u00e0nh Windows. M\u1eb7c d\u00f9 n\u00f3 c\u00f3 th\u1ec3 th\u1ef1c thi c\u00e1c l\u1ec7nh gi\u1ed1ng nh\u01b0 Shell script, nh\u01b0ng Powershell s\u1eed d\u1ee5ng c\u00fa ph\u00e1p v\u00e0 t\u00ednh n\u0103ng kh\u00e1c bi\u1ec7t so v\u1edbi c\u00e1c shell truy\u1ec1n th\u1ed1ng nh\u01b0 Bash hay sh tr\u00ean Linux.<\/span><\/p>\n<blockquote><p><em>\u0110\u1ecdc th\u00eam: <a href=\"\/blog\/powershell-la-gi\/\" target=\"_blank\" rel=\"noopener\"><strong>PowerShell l\u00e0 g\u00ec chi ti\u1ebft: T\u00ednh n\u0103ng, C\u00e0i \u0111\u1eb7t, M\u1eb9o s\u1eed d\u1ee5ng n\u00ean bi\u1ebft<\/strong><\/a><\/em><\/p><\/blockquote>\n<h3><b>\u0110i\u1ec3m kh\u00e1c bi\u1ec7t gi\u1eefa Linux v\u00e0 shell script l\u00e0 g\u00ec?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Linux l\u00e0 m\u1ed9t h\u1ec7 \u0111i\u1ec1u h\u00e0nh, trong khi Shell script l\u00e0 m\u1ed9t t\u1eadp h\u1ee3p c\u00e1c l\u1ec7nh vi\u1ebft trong m\u1ed9t t\u1ec7p v\u0103n b\u1ea3n \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5 tr\u00ean h\u1ec7 th\u1ed1ng. Linux cung c\u1ea5p m\u00f4i tr\u01b0\u1eddng v\u00e0 c\u00f4ng c\u1ee5 \u0111\u1ec3 ch\u1ea1y Shell script, trong khi Shell script ch\u1ec9 l\u00e0 ph\u01b0\u01a1ng ti\u1ec7n \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5, nh\u01b0 sao l\u01b0u d\u1eef li\u1ec7u, qu\u1ea3n l\u00fd t\u1ec7p, hay gi\u00e1m s\u00e1t h\u1ec7 th\u1ed1ng.<\/span><\/p>\n<h3><b>Command line shell v\u00e0 Graphical shell kh\u00e1c nhau th\u1ebf n\u00e0o?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Command Line Shell (Shell d\u00f2ng l\u1ec7nh) l\u00e0 ki\u1ec3u shell m\u00e0 ng\u01b0\u1eddi d\u00f9ng t\u01b0\u01a1ng t\u00e1c tr\u1ef1c ti\u1ebfp th\u00f4ng qua c\u00e1c l\u1ec7nh v\u0103n b\u1ea3n nh\u1eadp v\u00e0o c\u1eeda s\u1ed5 d\u00f2ng l\u1ec7nh. C\u00e1c shell n\u00e0y nh\u01b0 Bash, C Shell, Korn Shell hay Z Shell \u0111\u1ec1u y\u00eau c\u1ea7u ng\u01b0\u1eddi d\u00f9ng ph\u1ea3i nh\u1edb c\u00fa ph\u00e1p v\u00e0 l\u1ec7nh \u0111\u1ec3 th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 h\u1ec7 th\u1ed1ng. Shell d\u00f2ng l\u1ec7nh mang l\u1ea1i t\u00ednh linh ho\u1ea1t cao v\u00e0 th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng trong qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng, t\u1ef1 \u0111\u1ed9ng h\u00f3a, ho\u1eb7c l\u1eadp tr\u00ecnh.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">C\u00f2n Graphical Shell (Shell \u0111\u1ed3 h\u1ecda) l\u00e0 lo\u1ea1i shell cung c\u1ea5p giao di\u1ec7n ng\u01b0\u1eddi d\u00f9ng \u0111\u1ed3 h\u1ecda, n\u01a1i ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 thao t\u00e1c tr\u1ef1c ti\u1ebfp v\u1edbi c\u00e1c c\u1eeda s\u1ed5, bi\u1ec3u t\u01b0\u1ee3ng v\u00e0 n\u00fat b\u1ea5m thay v\u00ec ph\u1ea3i nh\u1eadp c\u00e1c l\u1ec7nh. C\u00e1c h\u1ec7 \u0111i\u1ec1u h\u00e0nh nh\u01b0 Windows, macOS hay c\u00e1c giao di\u1ec7n desktop Linux \u0111\u1ec1u s\u1eed d\u1ee5ng shell \u0111\u1ed3 h\u1ecda. \u0110\u00e2y l\u00e0 l\u1ef1a ch\u1ecdn ph\u1ed5 bi\u1ebfn cho nh\u1eefng ng\u01b0\u1eddi d\u00f9ng kh\u00f4ng chuy\u00ean, v\u00ec t\u00ednh d\u1ec5 s\u1eed d\u1ee5ng v\u00e0 tr\u1ef1c quan.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Command Line Shell v\u00e0 Graphical Shell l\u00e0 hai c\u00e1ch ph\u1ed5 bi\u1ebfn \u0111\u01b0\u1ee3c l\u1ef1a ch\u1ecdn \u0111\u1ec3 giao ti\u1ebfp v\u1edbi h\u1ec7 th\u1ed1ng khi l\u00e0m vi\u1ec7c v\u1edbi h\u1ec7 \u0111i\u1ec1u h\u00e0nh, nh\u01b0ng l\u1ea1i th\u01b0\u1eddng b\u1ecb nh\u1ea7m l\u1eabn v\u1ec1 c\u00e1ch s\u1eed d\u1ee5ng. M\u1eb7c d\u00f9 c\u1ea3 hai \u0111\u1ec1u gi\u00fap ng\u01b0\u1eddi d\u00f9ng t\u01b0\u01a1ng t\u00e1c v\u1edbi h\u1ec7 \u0111i\u1ec1u h\u00e0nh, nh\u01b0ng ch\u00fang c\u00f3 nh\u1eefng \u0111\u1eb7c \u0111i\u1ec3m v\u00e0 m\u1ee5c \u0111\u00edch s\u1eed d\u1ee5ng kh\u00e1c nhau.\u00a0<\/span><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Ti\u00eau ch\u00ed<\/b><\/td>\n<td><b>Command line shell<\/b><\/td>\n<td><b>Graphical shell<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Giao di\u1ec7n<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Giao di\u1ec7n d\u00f2ng l\u1ec7nh, y\u00eau c\u1ea7u ng\u01b0\u1eddi d\u00f9ng nh\u1eadp c\u00e1c l\u1ec7nh v\u0103n b\u1ea3n.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Giao di\u1ec7n \u0111\u1ed3 h\u1ecda, ng\u01b0\u1eddi d\u00f9ng t\u01b0\u01a1ng t\u00e1c b\u1eb1ng chu\u1ed9t v\u00e0 c\u00e1c c\u1eeda s\u1ed5.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">T\u00ednh d\u1ec5 s\u1eed d\u1ee5ng<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Kh\u00f3 s\u1eed d\u1ee5ng \u0111\u1ed1i v\u1edbi ng\u01b0\u1eddi m\u1edbi, y\u00eau c\u1ea7u ph\u1ea3i nh\u1edb c\u00fa ph\u00e1p v\u00e0 l\u1ec7nh.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">D\u1ec5 s\u1eed d\u1ee5ng, kh\u00f4ng c\u1ea7n ph\u1ea3i nh\u1edb l\u1ec7nh, thao t\u00e1c b\u1eb1ng chu\u1ed9t v\u00e0 bi\u1ec3u t\u01b0\u1ee3ng.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">T\u00ednh linh ho\u1ea1t<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Cung c\u1ea5p t\u00ednh linh ho\u1ea1t cao, th\u00edch h\u1ee3p cho c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Thi\u1ebfu linh ho\u1ea1t, ph\u00f9 h\u1ee3p v\u1edbi t\u00e1c v\u1ee5 \u0111\u01a1n gi\u1ea3n v\u00e0 kh\u00f4ng c\u1ea7n ch\u00ednh x\u00e1c cao.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">T\u1ed1c \u0111\u1ed9<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Th\u1ef1c thi nhanh v\u00e0 hi\u1ec7u qu\u1ea3, \u0111\u1eb7c bi\u1ec7t \u0111\u1ed1i v\u1edbi c\u00e1c t\u00e1c v\u1ee5 t\u1ef1 \u0111\u1ed9ng.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">C\u00f3 th\u1ec3 ch\u1eadm h\u01a1n, nh\u1ea5t l\u00e0 khi th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 ph\u1ee9c t\u1ea1p ho\u1eb7c c\u1ea7n nhi\u1ec1u c\u1eeda s\u1ed5.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Kh\u1ea3 n\u0103ng t\u1ef1 \u0111\u1ed9ng ho\u00e1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">T\u1ed1t, d\u1ec5 d\u00e0ng vi\u1ebft script \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">H\u1ea1n ch\u1ebf trong t\u1ef1 \u0111\u1ed9ng h\u00f3a, ch\u1ee7 y\u1ebfu d\u1ef1a v\u00e0o thao t\u00e1c ng\u01b0\u1eddi d\u00f9ng.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">V\u00ed d\u1ee5<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Bash, C Shell, Korn Shell<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Windows Explorer, macOS Finder, Ubuntu Desktop<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">T\u00ednh ch\u00ednh x\u00e1c<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u0110\u1ed9 ch\u00ednh x\u00e1c cao, ph\u00f9 h\u1ee3p v\u1edbi c\u00e1c t\u00e1c v\u1ee5 y\u00eau c\u1ea7u \u0111\u1ed9 ch\u00ednh x\u00e1c cao.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">\u0110\u00f4i khi thi\u1ebfu \u0111\u1ed9 ch\u00ednh x\u00e1c, d\u1ec5 x\u1ea3y ra l\u1ed7i n\u1ebfu kh\u00f4ng c\u1ea9n th\u1eadn.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Qu\u1ea3n tr\u1ecb h\u1ec7 th\u1ed1ng, t\u1ef1 \u0111\u1ed9ng h\u00f3a, x\u1eed l\u00fd t\u1eadp l\u1ec7nh, ph\u00e1t tri\u1ec3n, qu\u1ea3n l\u00fd h\u1ec7 th\u1ed1ng t\u1eeb xa.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">S\u1eed d\u1ee5ng ph\u1ed5 bi\u1ebfn trong c\u00e1c t\u00e1c v\u1ee5 th\u00f4ng th\u01b0\u1eddng nh\u01b0 duy\u1ec7t web, so\u1ea1n th\u1ea3o v\u0103n b\u1ea3n.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Kh\u1ea3 n\u0103ng l\u00e0m vi\u1ec7c t\u1eeb xa<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Xu\u1ea5t s\u1eafc, c\u00f3 th\u1ec3 d\u1ec5 d\u00e0ng l\u00e0m vi\u1ec7c t\u1eeb xa th\u00f4ng qua SSH v\u1edbi b\u0103ng th\u00f4ng th\u1ea5p<\/span><\/td>\n<td><span style=\"font-weight: 400;\">H\u1ea1n ch\u1ebf, c\u1ea7n b\u0103ng th\u00f4ng cao v\u00e0 c\u00e1c gi\u1ea3i ph\u00e1p nh\u01b0 VNC\/RDP \u0111\u1ec3 l\u00e0m vi\u1ec7c t\u1eeb xa<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2><span class=\"ez-toc-section\" id=\"Tong_ket\"><\/span><b>T\u1ed5ng k\u1ebft<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">\u1ee8ng d\u1ee5ng c\u1ee7a Shell script trong t\u1ef1 \u0111\u1ed9ng h\u00f3a v\u00e0 qu\u1ea3n l\u00fd h\u1ec7 th\u1ed1ng l\u00e0 kh\u00f4ng ph\u1ea3i b\u00e0n c\u00e3i. Tuy nhi\u00ean, \u0111\u1ec3 c\u00f3 th\u1ec3 t\u1eadn d\u1ee5ng t\u1ed1i \u0111a s\u1ee9c m\u1ea1nh c\u1ee7a Shell script, b\u1ea1n c\u1ea7n ph\u1ea3i b\u1eaft \u0111\u1ea7u t\u1eeb nh\u1eefng kh\u00e1i ni\u1ec7m c\u01a1 b\u1ea3n. Khi hi\u1ec3u r\u00f5 c\u00e1c kh\u00e1i ni\u1ec7m nh\u01b0 bi\u1ebfn, c\u00e2u l\u1ec7nh \u0111i\u1ec1u ki\u1ec7n, v\u00f2ng l\u1eb7p v\u00e0 c\u00e1c ch\u1ee9c n\u0103ng c\u1ee7a Shell script, b\u1ea1n s\u1ebd d\u1ec5 d\u00e0ng x\u00e2y d\u1ef1ng nh\u1eefng script m\u1ea1nh m\u1ebd, t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5 v\u00e0 t\u1ed1i \u01b0u h\u00f3a c\u00f4ng vi\u1ec7c m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3 h\u01a1n.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">ITviec hy v\u1ecdng b\u00e0i vi\u1ebft tr\u00ean \u0111\u00e3 mang l\u1ea1i cho b\u1ea1n c\u00e1i nh\u00ecn t\u1ed5ng quan v\u1ec1 Shell script, gi\u00fap b\u1ea1n hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 kh\u00e1i ni\u1ec7m, \u1ee9ng d\u1ee5ng v\u00e0 l\u1ee3i \u00edch c\u1ee7a c\u00f4ng c\u1ee5 m\u1ea1nh m\u1ebd n\u00e0y.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>N\u1ebfu b\u1ea1n mu\u1ed1n t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f4ng vi\u1ec7c tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix-like nh\u01b0 Linux v\u00e0 macOS, shell script l\u00e0 c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu. Th\u00f4ng qua vi\u1ec7c vi\u1ebft c\u00e1c l\u1ec7nh v\u00e0o m\u1ed9t t\u1ec7p, b\u1ea1n c\u00f3 th\u1ec3 t\u1ef1 \u0111\u1ed9ng th\u1ef1c hi\u1ec7n c\u00e1c t\u00e1c v\u1ee5 nh\u01b0 qu\u1ea3n l\u00fd t\u1ec7p, gi\u00e1m s\u00e1t h\u1ec7 th\u1ed1ng hay sao l\u01b0u [&hellip;]<\/p>\n","protected":false},"author":209,"featured_media":87353,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[109],"tags":[],"class_list":["post-87949","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chuyen-mon-it"],"blocksy_meta":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.8 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean - ITviec Blog<\/title>\n<meta name=\"description\" content=\"T\u00ecm hi\u1ec3u chi ti\u1ebft Shell script l\u00e0 g\u00ec t\u1eeb kh\u00e1i ni\u1ec7m, c\u00fa ph\u00e1p c\u01a1 b\u1ea3n, \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf v\u00e0 l\u01b0u \u00fd khi s\u1eed d\u1ee5ng shell scripting.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean\" \/>\n<meta property=\"og:description\" content=\"N\u1ebfu b\u1ea1n mu\u1ed1n t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f4ng vi\u1ec7c tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix-like nh\u01b0 Linux v\u00e0 macOS, shell script l\u00e0 c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu. Th\u00f4ng qua vi\u1ec7c vi\u1ebft c\u00e1c l\u1ec7nh\" \/>\n<meta property=\"og:url\" content=\"https:\/\/itviec.com\/blog\/shell-script-la-gi\/\" \/>\n<meta property=\"og:site_name\" content=\"ITviec Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ITviec\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-21T02:45:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-17T08:03:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"337\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"M\u1ef9 Duy\u00ean\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ITviec\" \/>\n<meta name=\"twitter:site\" content=\"@ITviec\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"M\u1ef9 Duy\u00ean\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 ph\u00fat\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean - ITviec Blog","description":"T\u00ecm hi\u1ec3u chi ti\u1ebft Shell script l\u00e0 g\u00ec t\u1eeb kh\u00e1i ni\u1ec7m, c\u00fa ph\u00e1p c\u01a1 b\u1ea3n, \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf v\u00e0 l\u01b0u \u00fd khi s\u1eed d\u1ee5ng shell scripting.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/","og_locale":"vi_VN","og_type":"article","og_title":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean","og_description":"N\u1ebfu b\u1ea1n mu\u1ed1n t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00f4ng vi\u1ec7c tr\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh Unix-like nh\u01b0 Linux v\u00e0 macOS, shell script l\u00e0 c\u00f4ng c\u1ee5 kh\u00f4ng th\u1ec3 thi\u1ebfu. Th\u00f4ng qua vi\u1ec7c vi\u1ebft c\u00e1c l\u1ec7nh","og_url":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/","og_site_name":"ITviec Blog","article_publisher":"https:\/\/www.facebook.com\/ITviec","article_published_time":"2025-04-21T02:45:01+00:00","article_modified_time":"2025-06-17T08:03:05+00:00","og_image":[{"width":640,"height":337,"url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg","type":"image\/jpeg"}],"author":"M\u1ef9 Duy\u00ean","twitter_card":"summary_large_image","twitter_creator":"@ITviec","twitter_site":"@ITviec","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"M\u1ef9 Duy\u00ean","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"20 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#article","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/"},"author":{"name":"M\u1ef9 Duy\u00ean","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/73733c0725c7e39e696a896bd1abe2d7"},"headline":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean","datePublished":"2025-04-21T02:45:01+00:00","dateModified":"2025-06-17T08:03:05+00:00","mainEntityOfPage":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/"},"wordCount":5534,"publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"image":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg","articleSection":["Chuy\u00ean m\u00f4n IT"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/","url":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/","name":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean - ITviec Blog","isPartOf":{"@id":"https:\/\/itviec.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#primaryimage"},"image":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#primaryimage"},"thumbnailUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg","datePublished":"2025-04-21T02:45:01+00:00","dateModified":"2025-06-17T08:03:05+00:00","description":"T\u00ecm hi\u1ec3u chi ti\u1ebft Shell script l\u00e0 g\u00ec t\u1eeb kh\u00e1i ni\u1ec7m, c\u00fa ph\u00e1p c\u01a1 b\u1ea3n, \u1ee9ng d\u1ee5ng th\u1ef1c t\u1ebf v\u00e0 l\u01b0u \u00fd khi s\u1eed d\u1ee5ng shell scripting.","breadcrumb":{"@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/itviec.com\/blog\/shell-script-la-gi\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#primaryimage","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2025\/04\/shell-script-la-gi-vippro-scaled-1.jpg","width":640,"height":337,"caption":"shell script - itviec blog"},{"@type":"BreadcrumbList","@id":"https:\/\/itviec.com\/blog\/shell-script-la-gi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Chuy\u00ean m\u00f4n IT","item":"https:\/\/itviec.com\/blog\/chuyen-mon-it\/"},{"@type":"ListItem","position":2,"name":"Shell script l\u00e0 g\u00ec: T\u1eeb A-Z v\u1ec1 c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh cho l\u1eadp tr\u00ecnh vi\u00ean"}]},{"@type":"WebSite","@id":"https:\/\/itviec.com\/blog\/#website","url":"https:\/\/itviec.com\/blog\/","name":"ITviec Blog","description":"IT Jobs &amp; People in Vietnam","publisher":{"@id":"https:\/\/itviec.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/itviec.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/itviec.com\/blog\/#organization","name":"ITviec","url":"https:\/\/itviec.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2018\/12\/itviec-black-square-facebook.png","width":1800,"height":1800,"caption":"ITviec"},"image":{"@id":"https:\/\/itviec.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ITviec","https:\/\/x.com\/ITviec","https:\/\/www.linkedin.com\/company\/itviec","https:\/\/www.youtube.com\/channel\/UCYthAQ3bcGr57M_ag5gHDvQ"]},{"@type":"Person","@id":"https:\/\/itviec.com\/blog\/#\/schema\/person\/73733c0725c7e39e696a896bd1abe2d7","name":"M\u1ef9 Duy\u00ean","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Author_Duyen-Tran-120x120.jpg","url":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Author_Duyen-Tran-120x120.jpg","contentUrl":"https:\/\/itviec.com\/blog\/wp-content\/uploads\/2024\/03\/Author_Duyen-Tran-120x120.jpg","caption":"M\u1ef9 Duy\u00ean"},"url":"https:\/\/itviec.com\/blog\/author\/my-duyen\/"}]}},"_links":{"self":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/87949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/users\/209"}],"replies":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/comments?post=87949"}],"version-history":[{"count":1,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/87949\/revisions"}],"predecessor-version":[{"id":88196,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/posts\/87949\/revisions\/88196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media\/87353"}],"wp:attachment":[{"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/media?parent=87949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/categories?post=87949"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itviec.com\/blog\/wp-json\/wp\/v2\/tags?post=87949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}