من خلال أداة chsh تغير الشل shell للمستخدم وبعض المعلومات عنه

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته



تغير الشل shell للمستخدم وبعض المعلومات  .




1-بشكل مبسط ما هو الشل shell في لينكس .

-أظن أن أغلبنا سمع مثلا عن bash shell بشكل بسيط جدا الشل هو وسيط بين المستخدم والنظام شيء كمفسر python نكتب الأكواد أو الأوامر داخله ليتم تنفيذ ما كتبناه ويتم عرض النتيجة أو إجراء التغيرات التي طلبناها مثلا إضافة مجلد أو تشغيل برنامج و...إلخ.

-الطرفية أو الترمينال Terminal بشكل بسيط أيضا هي نافذة لنكتب داخلها وليست هي الشل بحد ذاته .


-فإذا الشل كما ذكرت هي لتفسير الأوامر وتنفيذها ويمكن أن يكون الأمر بشكل مباشر أي بشكل تفاعلي مثلا طباعة جملة hello world لاحظو الصورة في الأسفل .




-وأيضا ممكن من خلال كتابة سكربت بداخله أمر الطباعة أو أي أمر أخر ثم إعطاء السكربت صلاحيات التنفيذ ثم إخبار bash shell تنفيذ الاوامر داخل السكربت وطبعا هناك شروط يجب المحافظة عليها عند كتابة سكربت bash , مثل أي لغة برمجة لها قواعد يجب إتباعها وهذا ما يمكن تعلمه و ما يسمى shell scripting وغالبا الدورات التي ستجدوها تكون تتكلم عن bash مثال في الأسفل لإنشاء سكربت وإعطائه صلاحيات التنفيذ ثم تشغيله , ملاحظة ممكن عدم كتابة اللاحقة sh. لكن الأفضل كتابتها لنميز بين الملفات ,إذا اراد أحد أن يجرب يستخدم أي محرر نصوص لا مشكلة انا أستخدم في الشرح nano.









-اﻷن على الرغم ان python لا تعد بالمعنى الحقيقي shell لنظام لينكس لكن لتوضيح الأمور سأقوم  بذات الأمثلة لكن من بايثون بشكل تفاعلي وبشكل سكربت ايضا .

عند تشغيل الطرفية أو الترمينال يتم تلقائيا تشغيل الشل الإفتراضي للمستخدم الذي نعمل منه غالبا سيكون bash لكن لدواعي الشرح  لنفترض أني وضعت python كشل إفتراضي, على العموم سأدخل على python لأعمل بشكل تفاعلي أي كأنني قمت بتشغيل bash عند فتح الترمينال ونلاحظ أن مفسر بايثون كان الوسيط بيني وبين النظام نعطيه أمر الطباعة وتتم الطباعة.



-الان كتابة سكربت بايثون وتشغيله ونلاحظ التشابه ,كما ذكرت هذه الأمثلة فقط لمحاولة تقريب الصورة قدر الإمكان.
















2-إلى هنا أتمنى أن تكون الأمور توضحت قليلا لهذا ننتقل إلى شرح أمر chsh وهي إختصار ل change shell او change your login shell .



-أولا علينا أن نعرف ان هناك أكثر من شل ممكن إستخدامها وكل شل قد يكون له ملفات إعدادات خاصة و قد تختلف طريقة كتابة السكربتات فيه أيضا لكن أشهرها هو bash وهو الأكثر إستخداما في لينكس بشكل إفتراضي الأن لعرض كل الشل المتوفرة مع مسارها نكتب كما في الأسفل الامرين ذات الشيء .

sudo chsh -l

cat /etc/shells



ملاحظة بشكل سريع هناك شيء إسمه nologin وهو يستخدم من قبل service users وهي تعني انه لا يوجد shell يمكن الدخول له,بشكل بسيط ال service user عبارة عن مستخدم ليس له مجلد منزل وله شل nologin ويستخدم للقيام بعمل محدد مثال في الأسفل في الصورة نلاحظ ان مستخدم apache قام بتشغيل خدمة httpd وله شل nologin  هذا المستخدم له فقط عمل محدد يقوم به.






-ثانيا لتشغيل أي شل أخر بشكل مؤقت فقط نكتب إسمه مثال على zsh shell وهو شل شبيه ب bash وله ملفات إعدادات خاصة مثلا له ملف خاص غير bashrc. الذي نعرفه, على العموم عند تثبيته من مدير الحزم وتشغيله أول مرة يطلب منك بعض الأعدادات ويعرض لك الملفات الذي يعتمدها ويمكن الدخول على المساعدة من خلال أمر man zsh  .





-ثالثا ممكن تغير الشل الإفتراضي للمستخدم الخاص بنا لأي شيء أخر أي سيتم الدخول إلى هذا الشل بشكل إفتراضي دائما, الأمر يتم من خلال الأمر في الأسفل نلاحظ أن إسم المستخدم عندي هو youcef ,ثم بعدها ليتم الأخذ بالتغيرات نسجل خروج logout ثم الدخول.

sudo chsh -s /usr/bin/zsh youcef

ملاحظة أمر echo $0 هو فقط للتوضيح وهو لعرض الشل الحالي الذي نعمل منه ويمكن إستخدام أكثر من أمر مثلا echo $SHELL.






للرجوع إلى bash لان ليس هدف الشرح تغير الشل لكن الهدف هو تعليمي والأفضل أن نبقى على bash shell لأنها الأكثر إستخداما وهو ممتاز.

sudo chsh -s /usr/bin/bash youcef









3-لعرض كل المستخدمين لدينا وأي شل يستخدم نستعرض ملف passwd .

cat /etc/passwd



-ممكن التحديد أكثر مثلا عرض المعلومات عن مستخدم youcef .

cat /etc/passwd |grep youcef


grep youcef /etc/passwd




أخيرا بعيدا عن التعريفات المعقدة لنأخذ bash كمثال ,بشكل بسيط ال bash هو برنامج مثل أي برنامج له مهمة محددة  أن يكون وسيط بين المستخدم وقلب النظام ,أما shell scripting هي قواعد الكتابة واللغة التي يفهمها الشل المستخدم مثلا سطر echo hello world , أما السكربت script هو الملف نفسه الذي يحتوي أسطر الأوامر شيء كملف myscript.sh أتمنى أن تكون الأمور توضحت.

شارك الموضوع

مواضيع ذات صلة

التسميات

2016 (1) 23 (1) 24 (3) 25 (1) 26 (1) 27 (1) 28 (1) 29 (1) 30 (1) 31 (1) إتصال (1) إختراق (2) أدة (1) أدوات (1) إرسال (1) أرش (1) إسترجاع (1) إستعلام (1) أشياء (7) أشياء تفعلها (8) إصدارات (1) إصلاح (6) إصلاحrealtek (1) إضافات (1) إضافة (1) أعجوبة (1) أعجوية (1) إعداد (1) إقاف (2) أقسام (1) ألعاب (2) الفرق (1) الفلاشة (1) القسم هوم (1) الكتابة بالعربية (1) إلى جانب (1) أندرويد (1) إنشاء (1) إنشاء مستودع (1) أيات (1) أيزو (1) أيقومات (1) أيقونات (1) ايقونات (2) باتش (1) بارامتر (1) بايثون (16) برامج (56) برامج إسلامية (2) برنامج (19) برودباند (1) بعد (7) بعد التثبيت (8) بلوتوث (1) بناء (1) بناء توزيعة (1) بيئة عمل (1) تثبيت (29) تجهيز (2) تجهيو من دون (2) تحزيم (2) تحقق (1) تحويل (1) تخصيص (5) ترجمة (2) ترقية (1) تسجيل الشاشة (1) تشغيل (3) تعريف (13) تعطيل (2) تعلم (6) تفعلها (7) تفعيل (2) تقطع الأحرف (1) تقعيل (1) تنزيل (2) تورنت (1) توزيعة (1) توسعة (1) ثيم (5) ثيمات (1) جافا (1) جماليات (7) جنوم (1) حجم (1) حرق (2) حزمة (1) حل (2) دالة (1) دورة (1) روتر (1) ريدهات (2) سكربت (2) شرح (11) صورة متحركة (1) فايرفوكس (1) فتح منفذ (1) فصل (1) فلاشة (3) فيدورا (29) فيدورا بالعربي (1) قاموس (1) كالي (2) كتاب (2) كتب (2) كرت (1) كروت الشاشة (1) كلمة المرور (2) كورس (1) كورورا (1) لعبة (1) لينكس (2) لينكسو (1) ماهو (6) متغير البيئة (1) مجانا (1) محاكات (2) محاكي (1) محمل الإقلاع إصلاح (1) محمول (1) مستودعات (1) مشكلة (2) ملف نصي (1) من إصدار (1) نظام ملفات (1) نمط (2) نواة (1) هجين (4) واجهات (1) وايرلس (1) وهمي (2) ويندوز (2) access token (1) active (2) add (1) after (7) alias (1) andoid studio (1) android (2) android studio (1) Apache (2) appstream (1) arboot (1) arboot fix (1) arch (3) archiso (1) arfedoraccframework (3) arfedoracontrolcenter (3) arfedy (1) atari (1) atom (1) ayat (1) bicon (1) blivet (1) blivet-gui (1) bls (1) bluetooth (1) book (2) books (2) bootloader fix (1) boxes (3) broadband (1) broadcom (1) broadwayd (1) bugzilla (1) build (2) builddep (1) bumblebee (1) bumbleebe (2) burn (2) byzanz (1) c# (1) calamares (1) camera (1) cannot open display (1) cannot open display: :0 (1) ccna (1) cd (2) centos (1) change (2) chsh (1) cisco (1) clion (1) clone (1) code.org (1) command (2) command line (2) commands (2) comps (1) connect (1) contra (1) convert (1) copr (1) could not connect to the debugger (1) cpu (1) cpufreq (1) createrepo (1) csharp (1) css (1) curlew (1) custom (2) dbus (3) dconf (1) dd (1) Decryption (1) defragment (2) desktop (1) desktop entry (1) dictionary (1) Digital signature (1) disks (1) dnf (14) do (7) docker (1) dolphine (1) download (2) downloads manager (1) dply (1) DRI PRIME (1) driver (9) dukto (1) e2fsck (1) efi (4) el forkane (1) elforkane (1) elif (1) emergency (3) emergency mode (3) emulator (1) enable (2) Encryption (1) entries (1) error mounting /dev/sd (1) ext4 (1) extend (1) extensions (2) fakenes (1) fast startup (2) fceux (1) fedora (45) fedora 25 alpha (1) fedora cloude (1) fedora28 (1) fedoraوفيدورا (1) fedy (1) fgmac (2) fgmac-24 (1) file (1) find (1) firefox (2) fix (10) flash mem (1) flash memory (2) flashplayer (1) flatpak (4) forward (1) fpaste (1) free (1) freebsd (1) freevpn (1) function (1) game (3) games (2) gedit (1) genymotion (1) gettext (1) gif (1) gimp (1) gio (1) github (5) github.io (1) glibc-common (1) gmaclinux (2) gnome (16) gnome boxes (1) gnome disk (1) gnome shell (13) gnome terminal (1) gnome-disks (1) gnu (1) godot (1) goldendict (1) google web designer (1) gpg (2) gradio (1) group (2) grub (7) grub2 (1) grubenv (1) gstreamer (1) gtk (8) gtk+ (1) gvrecord (1) hack (2) hash (4) hdmi (3) hibernate (1) home (2) hosspot (1) html (1) http (1) hybrid (2) icon (2) icons (3) ide (1) if (1) install (32) installf (9) installing (7) intellij idea (1) internet downlaod manager (1) iso (2) java (3) jdk (2) jetbrains (1) jetbrains toolbox (1) kali (2) kde (3) kernel (1) kernel parameters (1) key (1) kickstarts (3) korora (1) krita (1) kvm (2) kvm switches (1) lamp (1) laps (1) learn (1) legacy (1) legacy bios (3) libreoffice (2) libvirt (1) life is trange (1) linux (8) lutris (1) lv (1) lvm (2) mac (4) macros (1) mageia (1) make distro (1) mariadb (1) MariaDB and PHP Lamp Server (1) markdown (2) mate terminal (1) mbr (1) md5sum (1) mirro (1) mkconfig (1) mo (1) mono (2) monodevelop (2) mount (1) mp4 (1) multi screen (1) mumble (1) murmur (1) natron (1) nautilus (2) nes (1) netbeans (1) netcut (1) nintendo (1) ntfs (2) nvidia (8) objdesktop (1) ojuba (2) oop (1) opensuse (1) openvpn (1) opera (1) optirun (2) oracle (1) os.path (1) package (2) page (1) pages (1) pantheon (1) parameter (1) parameters (1) password (2) patch (1) path (2) pdf (1) peek (1) photoshop (1) php (1) phpstorm (1) plasma (2) plugin (3) plugins (1) plymouth (1) po (1) polkit (1) port (1) portable (1) portmatp (1) PostinstallerF (1) pot (1) powerline (2) powerline-go (1) preset (1) preview (1) primary display (1) primeos (1) primus (1) primusrun (1) private key (1) programs (3) protonvpn (1) pubg (1) public key (1) put (1) pv (1) pycharm (2) pygobject (4) pygtk (5) python (56) pythonk (1) qdbus (1) qemu (3) qemu-kvm (1) query (1) radio (1) raspberry pi (4) raspbian (2) reclaim space (2) record (1) redhat (3) remix (1) remix os (1) repo (4) repofrompath (1) repository (1) reset (1) resize2fs (1) rhel (1) router (1) rpm (7) rpmbuild (1) rtl8188ee (1) rtl8192c (1) rtl8192ce (1) rtl8192cu (1) rtl8192de (1) rtl8192ee (1) rtl8192se (1) rtl8723ae (1) rtl8723be (1) rtl8723com (1) rtl8821ae (1) rubymine (1) salix (1) scratch (2) scratch2.scratch 2 (1) screencast (1) script (2) seconday display (1) self (1) send (1) server (1) settings (2) sha1256sym (1) sha256sum (1) share desktop (1) shell (2) shortcut (1) shutter (1) skel (1) skel ماهو (1) skype (1) skype.برامج (1) slackware (1) software (1) soundcloud (1) source code (1) spec (2) spin (1) sqlmap (1) ssh (3) sshd (2) st-trans (1) steam (2) store (1) su (1) sudo (2) sudoers (1) swap (2) switch (2) Switchable Graphics (1) synergy (1) systemd (1) systemd preset (1) teamviewer (1) terminal (2) theme (5) things (7) thomson (1) thread (2) threading (2) thumbnails (1) to (8) tor (2) tor browser (1) torrent (1) transfer closed with 736700 bytes remaining to read (1) translation (1) turn off (2) tuxcut (1) txt (1) ubuntu (1) uefi (5) unable to mount location (1) unity (1) unity3d (1) upgrade (1) usb (1) useradd (2) utf-8 (1) vega (1) verify (1) vg (1) vgaوتبديل (1) vi (1) video (1) vim (1) vino (1) virsh (1) virt-install (1) virt-manger (1) virtual (1) virtual box (1) virtualbox (3) vmware (3) vnc server (1) vokoscreen (1) vpn (1) web server (1) webstorm (1) wifi (1) windows (4) windows-1256 (1) wine (1) woeusb (1) X Error: BadAccess (1) X Error: BadDrawable (1) xdg-mime (1) xdman (1) xfce (1) xfconf-query (1) yum (2) zeal (1) zealdocs (1)