Linux files: touch, cat, nano, vi, brace shortcuts, ls -R आणि tree
चला, सुरू करूया. मागच्या class मध्ये आपण server मध्ये फिरायला शिकलो: pwd, ls, mkdir, cd, आणि absolute, relative आणि ~ paths. पण folders म्हणजे फक्त डबे. Server वरचं खरं काम files मध्ये होतं: settings, web pages, scripts, logs. आज आपण चार वेगवेगळ्या पद्धतींनी files बनवणार, त्यात लिहिणार, वाचणार, त्यात भर घालणार आणि त्या edit करणार. आणि एक shortcut पण शिकणार, ज्याने एका ओळीत folders चं अख्खं घराणं तयार होतं. तुमचा server चालू ठेवा आणि प्रत्येक command माझ्यासोबत type करा.
या class मध्ये काय शिकणार
- Directories आणि paths ची एका मिनिटाची उजळणी
- Folder चं झाड बनवणं (Ramayan चं उदाहरण), step by step आणि एका ओळीत
- Brace shortcut
{a,b,c}, आणि-pका महत्त्वाचा - File बनवायचे चार मार्ग: touch, cat, nano, vi
- touch: रिकाम्या files, आणि त्याचं खरं काम (timestamp)
- Dots आणि extensions:
photo.jpgहे फक्त नाव का आहे - रिकामी file कुणाला आणि का हवी असते
- एक नाव, एकच item; capital अक्षरं वेगळी
- cat:
>ने लिहा, वाचा,>>ने append करा, आणि Ctrl+D ने संपवा - nano: सगळ्यात सोपा editor, आणि save करून बाहेर कसं पडायचं
- Space असलेली file ची नावं, आणि एकदम अनेक files उघडणं
- Practice task: calendar, कमीत कमी commands मध्ये
- ls -R आणि tree
- प्रत्येक command म्हणजे एक छोटा program
- vi: modes, i a o, Esc, :wq आणि :q!
- घरी करायचे tasks
1. एका मिनिटाची उजळणी: directories आणि paths
का. आजचं सगळं मागच्या class वर उभं आहे. खालची कुठलीही ओळ नवीन वाटली तर आधी Linux directories आणि paths: pwd, ls, mkdir, cd, absolute vs relative paths आणि ~ वाचा.
तुम्हाला आधीच माहीत असायला हवं:
| Command | काय करतो |
|---|---|
ls |
इथे काय आहे ते दाखवतो |
ls -r |
तीच list उलट्या order मध्ये (small r) |
mkdir ravi raja rani |
एकदम तीन folders |
mkdir 'ravicha folder' |
नावात space असलेला एक folder |
mkdir -p one/two/three |
एकात एक folders, parents आपोआप |
cd one/two/three |
एकदम अनेक levels खाली |
cd .., cd ../.., cd ../../.. |
एक, दोन, तीन levels वर |
cd - |
आधीच्या folder मध्ये परत |
cd |
home (/home/ec2-user) |
cd /home/ec2-user/ravi |
absolute path ने कुठेही थेट |
ls -r (small r, reverse) आणि ls -R (capital R, recursive) वेगळे ठेवा. ls -R आपण section 14 मध्ये बघू.
2. Assignment: Ramayan चं झाड बनवा
का. खरे projects झाडासारखेच असतात: website च्या folder मध्ये css, images आणि js; app मध्ये logs आणि config. काढलेलं चित्र folders मध्ये बदलता आलं पाहिजे.
Task. तुमच्या home folder मध्ये हे झाड बनवा: Ramayan, त्याच्या आत Dasarath, आणि Dasarath च्या आत चार folders: Ram, Laxman, Bharat, Shatrughna.

Class board वरून: Assignment: वर Ramayan, त्याच्या आत Dasarath, आणि Dasarath च्या आत चार folders: Ram, Laxman, Bharat आणि Shatrughna.
कसं, step by step (~ पासून):
cd(आपण home मध्ये आहोत याची खात्री करा).mkdir Ramayanmkdir Ramayan/Dasarathmkdir Ramayan/Dasarath/Rammkdir Ramayan/Dasarath/Laxmanmkdir Ramayan/Dasarath/Bharatmkdir Ramayan/Dasarath/Shatrughna- तपासा:
ls Ramayan/Dasarath→Bharat Laxman Ram Shatrughna
प्रत्येक step चालते कारण आधीच्या step ने parent बनवलेला असतो. Path ची हीच तर गंमत आहे: जो folder अजून अस्तित्वातच नाही, त्याच्या आत folder ठेवता येत नाही.
हेच एका ओळीत (लांब version):
mkdir -p Ramayan/Dasarath/Ram Ramayan/Dasarath/Laxman Ramayan/Dasarath/Bharat Ramayan/Dasarath/Shatrughna
- Space ने वेगळे केलेले चार paths, म्हणजे चार folders.
RamayanआणिRamayan/Dasarathनसतील तर-pते वाटेत बनवतो.
Correction
Class मध्ये एका ओळीचं version -p शिवाय type केलं. ते तेव्हाच चालतं जेव्हा आधीच्या steps मुळे Ramayan/Dasarath आधीच बनलेला असतो. अगदी सुरुवातीपासून केलं तर नुसता mkdir mkdir: cannot create directory ‘Ramayan/Dasarath/Ram’: No such file or directory देऊन थांबतो. -p लावा, मग शून्यापासूनसुद्धा चालतं.
3. Brace shortcut: {a,b,c}
का. वरच्या लांब ओळीत Ramayan/Dasarath/ चार वेळा आलंय. जास्त typing म्हणजे जास्त typos.
काय. Common भाग एकदाच लिहा, आणि वेगळी नावं curly braces मध्ये, comma ने वेगळी करून ठेवा:
mkdir -p Ramayan/Dasarath/{Ram,Laxman,Bharat,Shatrughna}
Ramayan/Dasarath/हा common path.{Ram,Laxman,Bharat,Shatrughna}ही नावांची list.- नावांमध्ये commas, आणि braces च्या आत कुठेही space नाही.
mkdirसुरू व्हायच्या आधीच shell (bash) ही ओळ चार पूर्ण paths मध्ये बदलतो.mkdirला लांब version च मिळतं.

Class board वरून: mkdir Ramayan, मग mkdir Ramayan/Dasarath, आणि मग braces वापरून चारही मुलं एका ओळीत. पहिल्या दोन ओळींनी parents आधीच बनवले होते, म्हणून तिसरी ओळ -p शिवाय चालते.
Figure 1. Animation: mkdir चालायच्या आधी bash Ramayan/Dasarath/{Ram,Laxman,Bharat,Shatrughna} चे चार paths करतो, आणि चार folders दिसतात. Comma नंतर space दिला तर expansion तुटतं.
Expansion स्वतः बघा. Command ला shell काय देणार आहे ते echo काहीही न बनवता दाखवतो:
echo Ramayan/Dasarath/{Ram,Laxman}→Ramayan/Dasarath/Ram Ramayan/Dasarath/Laxmanecho file{1,2,3}.txt→file1.txt file2.txt file3.txt
उदाहरण: website चा सांगाडा.
mkdir -p mysite/{css,images,js}ls mysite→css images js
Correction
Board वरच्या दोन गोष्टी. पहिली, -p: Ramayan/Dasarath अजून नसेल तर brace ची ओळ -p शिवाय fail होते (board वर चालली कारण वरच्या दोन ओळींनी ते आधीच बनवले होते). दुसरी, spaces: {Ram, Laxman} असं space देऊन लिहिलं तर expand होत नाही. Shell ला दोन वेगळे शब्द दिसतात, Ramayan/Dasarath/{Ram, आणि Laxman}, आणि विचित्र नावांचे folders बनतात. Braces घट्ट ठेवा: {Ram,Laxman}.
4. Files: बनवायचे चार मार्ग
का. आत्तापर्यंत आपण फक्त folders बनवले. Folder म्हणजे रिकामा डबा, जोपर्यंत त्यात files ठेवत नाही.
काय. File बनवायचे चार नेहमीचे मार्ग:
touch: रिकामी file बनवतो.cat: file बनवतो आणि त्यात ओळी type करू देतो.nano: साधा editor, terminal मधला Notepad.vi: ताकदवान editor, जो प्रत्येक Linux server वर असतो.
File बनवल्यानंतर अजून काय करू शकतात, त्यात फरक आहे:
Figure 2. touch फक्त रिकामी file बनवतो. cat create, write, read आणि append करतो, पण मधली ओळ बदलू शकत नाही. nano आणि vi सगळं करतात.
| Tool | Create | Write | Read | Modify | Append |
|---|---|---|---|---|---|
touch |
हो (रिकामी) | नाही | नाही | नाही | नाही |
cat |
हो (cat > f) |
हो (cat > f) |
हो (cat f) |
नाही | हो (cat >> f) |
nano |
हो | हो | हो | हो | हो |
vi |
हो | हो | हो | हो | हो |
"Modify" म्हणजे मधलं काहीतरी बदलणं, उदा. ओळ 2 वरचं hi चं bye करणं. ते फक्त editor करू शकतो.
5. touch: रिकाम्या files
काय. touch नंतर एक किंवा अनेक नावं दिली की रिकाम्या files बनतात.
कसं.
cd(home ला जा), मगmkdir -p practiceआणिcd practice.touch my.txttouch 1.txt 2.txt 3.txt(एका command मध्ये तीन files)ls→1.txt 2.txt 3.txt my.txtls -l my.txt→-rw-r--r--. 1 ec2-user ec2-user 0 Jan 5 10:15 my.txt
तारखेच्या आधीचा 0 म्हणजे bytes मधला size: file रिकामी आहे. touch ने त्यात लिहिता येत नाही, वाचता येत नाही, edit करता येत नाही. तो फक्त बनवतो.
त्याचं खरं काम: timestamp.
ls -l my.txtचालवा आणि time बघा, उदा.10:15.- एक मिनिट थांबा, मग पुन्हा
touch my.txt. ls -l my.txt→ आता time आत्ताचा दिसतो, उदा.10:20.- Content (इथे अजून रिकामंच) बदलत नाही.
Figure 3. File नसेल तर touch रिकामी file बनवतो. असेल तर content ला हात लावत नाही, फक्त ls -l मध्ये दिसणारा modified time update करतो.
Correction
Class मध्ये touch फक्त "रिकाम्या files बनवणारी command" म्हणून शिकवला. त्याचं मुख्य काम म्हणजे file चा timestamp update करणं, जणू तुम्ही आत्ताच तिला हात लावलात. File नसेल तर ती बनवणं हा side effect आहे, आणि सगळे तोच वापरतात. Scripts आणि make सारखी tools नवीन काय ते ठरवायला हा timestamp वापरतात.
6. Dots आणि extensions: नावाचाच एक भाग
का. Windows वर .jpg म्हणजे फोटो, .mp4 म्हणजे video. Linux मध्ये वेगळं चालतं, आणि ते आत्ताच समजलं तर पुढे गोंधळ होत नाही.
काय.
- Dot हे नावातलं फक्त एक अक्षर आहे.
touch report.ppt photo.jpg song.mp4तीन रिकाम्या files बनवतो. - त्यातली कुठलीच खरी presentation, फोटो किंवा गाणं नाही. नाव काहीही असो, त्या रिकाम्याच.
- File च्या आत काय आहे हे कळायला Linux ला extension लागत नाही.
filecommand content बघतो:file photo.jpg→photo.jpg: emptyecho hello > notes.jpg, मगfile notes.jpg→notes.jpg: ASCII text
- Dot नसलेलं नावसुद्धा चालतं:
touch raviनेraviनावाची file बनते.
मग extensions वापरायचेच कशाला? ते माणसांना आणि programs ना मदत करतात:
backup.shबघितलं की कळतं हा script आहे.- Nginx त्याच्या
conf.dfolder मधल्या settings files फक्त.confने संपत असतील तरच load करतो. - Browser
index.htmlला web page समजतो.
Correction
Class मध्ये याचं वर्णन "Linux मध्ये extensions नसतात" असं केलं. नीट सांगायचं तर: Linux ला extensions ची गरज नसते, कारण तो content बघतो. तरी extensions सगळीकडे सवय म्हणून वापरले जातात, आणि काही programs त्यावर अवलंबून असतात (जसं Nginx आणि .conf). File चं नाव .jpg केलं म्हणून ती फोटो होत नाही.
7. रिकामी file कुणाला हवी असते?
हा प्रश्न का. रिकामी file निरुपयोगी वाटते. पण server वरच्या खऱ्या कामात तसं नसतं.
खरे उपयोग:
- Script भरणार असलेली log file. तुम्ही
touch backup.logकरता, मग रोज रात्री एक scheduled script त्यात एक ओळ लिहितो: "backup done at 12:00". - Placeholder. Website चं plan करताय:
touch index.html about.html contact.html. रचना तयार; content नंतर लिहायचा. - Marker (flag) file. एखादा script काम करत असताना
maintenance.onबनवतो; बाकीचे scripts ती file आहे का ते बघतात आणि थांबतात. - पटकन test files. Copy आणि delete शिकायच्या आधी practice साठी काहीतरी निरुपद्रवी लागतं:
touch file1 file2 file3.
Class मधली कल्पना बरोबरच आहे: servers वर automation भरपूर असतं (सकाळी 9 ला start, संध्याकाळी stop, दुपारी 12 ला backup, दर 4 तासांनी upload). Automation ला लिहायला files लागतात, आणि त्या बहुतेक रिकाम्याच सुरू होतात.
Correction
Class मध्ये उत्तर "automation साठी" एवढंच दिलं, ठोस संबंध न सांगता. नेमकं सांगायचं तर: रिकामी file ही सुरुवात असते जी नंतर script किंवा माणूस भरतो, किंवा एक marker असतो जो बाकीचे scripts तपासतात. touch स्वतः काहीही automate करत नाही.
8. एक नाव, एकच item; capital अक्षरं वेगळी
काय.
- एका folder मध्ये एक नाव एकदाच वापरता येतं: file साठी किंवा folder साठी, दोन्हीसाठी नाही.
- Linux मध्ये नावं case-sensitive असतात:
ravi,Ravi,rAviआणिRAVIही चार वेगवेगळी नावं.
हे कसं वागतं (करून बघा):
mkdir ravi(folder)touch ravi→ error नाही, आणि file पण बनत नाही.touchफक्त folder चा time update करतो.ravifolder च राहतो.touch raju(file), मगmkdir raju→mkdir: cannot create directory ‘raju’: File existstouch Ravi RAVI→ दोन नवीन files.lsमध्ये folderraviआणि filesRaviआणिRAVIशेजारी शेजारी दिसतात.
Figure 4. आधीपासून असलेल्या folder वर touch फक्त त्याचा time update करतो; आधीपासून असलेल्या file च्या नावाने mkdir केलं की File exists येतं; ravi, Ravi आणि RAVI ही तीन वेगळी नावं.
Classroom line
Inside one folder, a name can be used only once.
Class मधलं वाक्य
"Eka folder madhe ek naav ekdach vaprla jaanar."
एका folder मध्ये एक नाव एकदाच वापरलं जाणार.
Classroom line
Inside one folder, a name can be used only once.
Correction
Class मध्ये सांगितलं की ravi folder असताना touch ravi fail होतो. तो fail होत नाही: गुपचूप folder चा timestamp update करतो आणि काहीच बनवत नाही. Error उलट्या बाजूने येतो: ravi नावाची file असताना mkdir ravi केलं की File exists. काहीही असो, नियम एकच: एक नाव, एकच item.
Ravindra Bagale's Tip
कामावर file आणि folder ची नावं small अक्षरांतच ठेवा. मग Report होतं, report की REPORT, हे आठवायची वेळच येत नाही.
9. cat: cat > ने file लिहिणं
का. touch file मध्ये text टाकू शकत नाही. cat टाकू शकतो, कुठलाही editor न उघडता.
काय. cat > my.txt म्हणजे "मी जे type करतो ते घे आणि my.txt मध्ये लिही". > output screen ऐवजी file मध्ये पाठवतो.
कसं.
cat > my.txt- Cursor रिकाम्या ओळीवर थांबतो. Prompt नाही: cat ऐकत बसलाय.
first linetype करा आणि Enter दाबा.second linetype करा आणि Enter दाबा.- नवीन रिकाम्या ओळीवर Ctrl+D दाबा. तुम्ही prompt वर परत.
- तपासा:
cat my.txt.
Ctrl+D म्हणजे "input संपलं". रिकाम्या ओळीच्या सुरुवातीला दाबा. ओळीच्या मध्येच दाबलं तर फक्त ती ओळ जाते, मग Ctrl+D पुन्हा एकदा दाबावं लागतं.
Correction
Class मध्ये cat > Ctrl+C ने संपवलं. Ctrl+C command ला interrupt करतो (मारतो). Enter ने संपवलेल्या ओळी बहुतेक वाचतात, पण शेवटच्या ओळीवर Enter च्या आधी type केलेलं जातं. योग्य पद्धत: शेवटच्या ओळीवर Enter, मग Ctrl+D.
10. cat: वाचणं, append करणं, आणि > चा सापळा
वाचा. cat my.txt अख्खी file दाखवतो:
first line
second line
Append (शेवटी जोडा).
cat >> my.txt(दोन>)third linetype करा, Enter, मग Ctrl+D.cat my.txt→ तीन ओळी. जुना text राहिला; नवीन ओळ त्याच्या खाली गेली.
सापळा: एकच > सगळं बदलून टाकतो.
cat > my.txtnewtype करा, Enter, Ctrl+D.cat my.txt→ फक्तnew. जुन्या तीन ओळी गायब.
Figure 5. Animation: cat > दोन ओळी लिहितो, cat त्या वाचतो, cat >> तिसरी जोडतो, आणि पुन्हा cat > केलं की file रिकामी होऊन फक्त नवीन ओळ राहते.
cat काय करू शकत नाही. पाच ओळींच्या file मध्ये cat ओळ 2 वरचं hi चं bye करू शकत नाही. तो फक्त अख्खी file बदलू शकतो (>) किंवा खाली ओळी जोडू शकतो (>>). मधली ओळ बदलायला editor वापरा (sections 11 आणि 16).
Correction
Class मध्ये आधीपासून असलेल्या file वर cat > चं वर्णन "जुनी file delete होते आणि नवीन बनते" असं केलं. ती delete होत नाही: तीच file रिकामी (truncate) होते आणि त्यात पुन्हा लिहिलं जातं. तिच्या permissions आणि owner तसेच राहतात. दिसणारा परिणाम तोच: जुना content गेला.
Ravindra Bagale's Tip
cat > च्या command वर Enter दाबायच्या आधी arrows एकदा पुन्हा बघा. > बदलतो, >> जोडतो. खऱ्या server वर एक > कमी पडला तर settings ची file पुसली जाऊ शकते. मोठ्या files cat ने screen न भरता वाचायला 3.4 Viewing files बघा.
11. nano: सगळ्यात सोपा editor
का. cat मधली ओळ edit करू शकत नाही. Editor लागतो, आणि nano सगळ्यात सोपा: Notepad सारखाच वाटतो.
काय. nano my.txt file editor मध्ये उघडतो. File नसेल तर nano नवीन, रिकामी file सुरू करतो आणि खाली [ New File ] दाखवतो.
Edit कसं करायचं.
nano my.txt- Arrow keys ने फिरा. Default ला mouse ने cursor हलत नाही.
- Type करा, Backspace ने खोडा, कुठेही काहीही बदला.
- खालच्या दोन ओळींत shortcuts दिलेले असतात.
^म्हणजे Ctrl, म्हणून^Xम्हणजे Ctrl+X.
Classroom line
nano is the easiest one.
Class मधलं वाक्य
nano सगळ्यात सोपा आहे.
Classroom line – हिंदी
"Sabse aasan command hai nano."
Save करून बाहेर कसं पडायचं.
- Ctrl+X दाबा.
- nano विचारतो
Save modified buffer? - Save करायला Y दाबा (N केलेले बदल टाकून देतो, Ctrl+C cancel करून परत editing वर नेतो).
- nano
File Name to Write: my.txtदाखवतो. नाव तेच ठेवायला Enter दाबा. - तुम्ही prompt वर परत.
cat my.txtने तपासा.
काहीच बदललं नसेल तर Ctrl+X काहीही न विचारता सरळ बाहेर पडतो.
Figure 6. Ctrl+X: काही बदललं नसेल तर nano बाहेर पडतो. बदललं असेल तर Save modified buffer? विचारतो: Y मग Enter केलं की save, N केलं की save न करता बाहेर, Ctrl+C केलं की परत editing.
Classroom line
If you didn't change anything, it exits directly; it asks only when you changed something.
Class मधलं वाक्य
"Tu changes nahi kele ki te baher padta directly; jya veli apan change karto tyach veli te vicharta."
तुम्ही changes नाही केले की ते directly बाहेर पडतं; ज्या वेळी आपण change करतो, त्याच वेळी ते विचारतं.
Classroom line
If you didn't change anything, it exits directly; it asks only when you changed something.
Classroom line
From here on, our life is inside nano.
Class मधलं वाक्य
इथून पुढे आपलं आयुष्य nano च्या आतच आहे.
Classroom line – हिंदी
"Yahan se apni zindagi nano ke andar hai."
Ravindra Bagale's Tip
Ctrl+O मग Enter केलं की nano मधून बाहेर न पडता save होतं. मोठ्या file वर काम करताना हे वापरा, म्हणजे SSH connection तुटलं तरी तुमचं काम जात नाही. nano आणि vim चे अजून shortcuts 3.10 Text editors: nano and vim मध्ये आहेत.
12. Space असलेली file ची नावं, आणि एकदम अनेक files
काय. Space arguments वेगळे करतो, folders साठी जसा तसाच files साठी.
nano my fileदोन files उघडतो,myआणिfile, एकामागून एक.nano 'my file'my fileनावाची एक file उघडतो."my file"आणिmy\ fileपण चालतं.- यालाच feature बनवा:
nano file1 file2 file3तीन files उघडतो. Ctrl+X चालू file बंद करून पुढची उघडतो. nano च्या नवीन versions मध्ये तुम्ही कुठल्या file वर आहात ते दिसतं, उदा.[1/3].
Classroom line
When you use a space in a name, use single quotes... but better, simply use one single word.
Class मधलं वाक्य
"Naavamadhe space vaparto tevha single quote... tari simply ek single word vapra."
नावामध्ये space वापरतो तेव्हा single quote... तरी simply एक single word वापरा.
Classroom line
When you use a space in a name, use single quotes... but better, simply use one single word.
Ravindra Bagale's Tip
Files ची नावं my-file.txt किंवा my_file.txt अशी ठेवा. Quotes नाही, backslash नाही, धक्के नाहीत.
13. Practice task: calendar, कमीत कमी commands मध्ये
Task.
~मध्येcalendarfolder बनवा.- त्याच्या आत तीन folders:
months,weeks,days. monthsमध्ये files:jan,feb,mar.janमध्येJanuaryलिहा.weeksमध्ये files:week1,week2,week3.daysमध्ये files:1,2,3.

Class board वरून: Calendar task: calendar मध्ये months, weeks आणि days; months मध्ये jan, feb आणि march, weeks मध्ये week1 ते week3, days मध्ये 1 ते 3, आणि jan मध्ये January हा text.
पुढे वाचायच्या आधी स्वतः करून बघा.
उत्तर (पाच commands):
mkdir -p calendar/{months,weeks,days}touch calendar/months/{jan,feb,mar}touch calendar/weeks/{week1,week2,week3}touch calendar/days/{1,2,3}nano calendar/months/jan→Januarytype करा → Ctrl+X, Y, Enter.
तपासा:
cat calendar/months/jan→Januaryls calendar/weeks→week1 week2 week3

Class board वरून: उत्तर: mkdir -p calendar/{months,weeks,Days}, मग months, weeks आणि Days साठी braces वापरून एकेक touch ची ओळ. Board वर Days capital D ने लिहिलंय; या page वर small days वापरलंय, तेव्हा प्रत्येक command मध्ये एकच spelling ठेवा.
नेहमीच्या चुका:
- Braces च्या आत slashes:
{months/weeks/days}हे slashes असलेलं एकच नाव होतं, तीन folders नाही. Commas वापरा. - Commas नंतर spaces:
{jan, feb, mar}expand होत नाही (section 3 बघा). - Case ची गडबड:
Daysfolder आणिdaysलिहिलेली command ही दोन वेगळी नावं.
अजून छोटं
touch एकाच command मध्ये अनेक brace groups घेतो: touch calendar/months/{jan,feb,mar} calendar/weeks/{week1,week2,week3} calendar/days/{1,2,3}. आणि echo January > calendar/months/jan nano न उघडता शब्द लिहितो. म्हणजे एकूण तीनच commands.
14. ls -R: आतलं सगळं दाखवा
काय. ls -R (capital R, recursive) एक folder दाखवतो, मग त्याच्या आतला प्रत्येक folder, मग त्यांच्या आतला प्रत्येक, असं पुढे.
कसं.
cd(home)ls -R calendar
Output:
calendar:
days months weeks
calendar/days:
1 2 3
calendar/months:
feb jan mar
calendar/weeks:
week1 week2 week3
प्रत्येक block folder चा path आणि colon ने सुरू होतो, आणि खाली आत काय आहे ते. छोट्या झाडांसाठी ठीक; मोठ्या झाडांचं output screen वरून पळून जातं.
ls -r (small r) शी गल्लत करू नका, तो फक्त एका listing ची order उलटी करतो.
15. tree: चित्रासारखं दृश्य, आणि software install करणं
काय. tree तीच माहिती चित्रासारखी काढतो. Amazon Linux वर तो default install नसतो.
Install कसा करायचा:
sudo yum install tree -y
sudo: ही एक command administrator (root) म्हणून चालवा. Software install केलं की system बदलते, म्हणून admin rights लागतात.yum: package manager. Amazon च्या repositories मधून software download करून install करतो.install: action.tree: package चं नाव.-y: "Is this ok?" ला आपोआप "yes".
मग:
tree calendar- Output शेवटी
4 directories, 9 filesसांगतो.
Figure 7. ls -R प्रत्येक folder वेगळ्या block मध्ये दाखवतो; tree तेच calendar झाडासारखं काढतो आणि शेवटी 4 directories, 9 files सांगतो.
प्रत्येक command म्हणजे एक छोटा program.
ls,mkdir,touchआणिcatहे/usr/binमध्ये ठेवलेले programs आहेत. ते Linux सोबतच येतात.treeहा अजून एक program; तो आपण स्वतः install केला.- Install करायच्या आधी
command -v treeकाहीच दाखवत नाही. Install केल्यावर/usr/bin/treeदाखवतो.
Correction
Class मध्ये सांगितलं "या commands नाहीत, हे software आहेत". दोन्ही शब्द बरोबर: तुम्ही type केलेली प्रत्येक command एक छोटा program चालवते. काही, जसं ls आणि mkdir, आधीच install असतात; काही, जसं tree, आपण package manager ने install करतो. Amazon Linux 2023 वर package manager चं नाव dnf आहे; yum हे त्याचंच दुसरं नाव म्हणून अजून चालतं, म्हणून sudo yum install tree -y आणि sudo dnf install tree -y एकच काम करतात. Package managers सविस्तर: 3.7 Package managers.
16. vi: प्रत्येक server वरचा editor
का. nano सोपा आहे, पण तो नेहमी install असेलच असं नाही. vi जवळजवळ प्रत्येक Linux server वर असतो, म्हणून type करणं, save करणं आणि बाहेर पडणं एवढं तरी यायलाच हवं.
काय. vi मध्ये modes असतात:
- Command mode. vi इथे उघडतो. Keys म्हणजे commands, म्हणून चुकून दाबलेल्या keys file मध्ये type होत नाहीत.
- Insert mode. आता keys text type करतात. खालच्या ओळीत
-- INSERT --दिसतं.
कसं.
vi notes.txt- i दाबा. खाली
-- INSERT --दिसतं. - तुमचा text type करा. फिरायला arrow keys वापरा.
- Esc दाबा. तुम्ही परत command mode मध्ये.
:wqtype करून Enter दाबा: write (save) करून quit.- तपासा:
cat notes.txt.
Insert mode मध्ये जायचे तीन मार्ग:
| Key | Typing कुठून सुरू |
|---|---|
i |
cursor च्या आधी (insert) |
a |
cursor च्या नंतर (append) |
o |
खाली नवीन ओळीवर |
Save न करता बाहेर: Esc, मग :q! आणि Enter.
Figure 8. Animation: vi command mode मध्ये उघडतो; i, a किंवा o ने insert mode; Esc ने परत; :wq ने save करून बाहेर, :q! ने save न करता बाहेर.
Correction
Class मध्ये i आणि a सोबत s पण typing सुरू करायची key म्हणून सांगितली. s ही insert key नाही: ती आधी cursor खालचं अक्षर delete करते आणि मग त्या जागी type करू देते. काहीही न बदलता typing सुरू करायला i, a किंवा o वापरा.
Ravindra Bagale's Tip
vi मध्ये अडकलात आणि काहीच चालत नाही? Esc दोनदा दाबा, :q! type करा, Enter दाबा. तुम्ही बाहेर, आणि काहीच save झालं नाही. मग शांतपणे पुन्हा करा.
17. घरी करा
घरी करून बघा
Task 1: braces
- एका command मध्ये हे झाड बनवा:
school→class1,class2,class3, आणि प्रत्येक class मध्येdivAआणिdivB. (Hint:mkdir -p school/{class1,class2,class3}/{divA,divB}; आधीechoने बघून घ्या.) ls -R schoolने तपासा.
Task 2: touch
touch a.txt, मगls -l a.txt. Time लिहून ठेवा.- एक मिनिट थांबा, पुन्हा
touch a.txt,ls -l a.txt. काय बदललं? testfolder बनवा आणिtouch testकरून बघा. काय होतं?demofile बनवा आणिmkdir demoकरून बघा. Error वाचा.
Task 3: cat
cat >नेfruits.txtमध्ये तीन ओळी लिहा. Ctrl+D ने संपवा.cat >>ने अजून दोन जोडा.catने वाचा.- पुन्हा एकदा
cat > fruits.txt, एक ओळ type करा, Ctrl+D. परत वाचा आणि काय झालं ते समजावून सांगा.
Task 4: editors
fruits.txtnano मध्ये उघडा, ओळ 1 बदला, Ctrl+X, Y, Enter ने save करा.- vi मध्ये उघडा,
oने खाली एक ओळ जोडा,:wqने save करा. - पुन्हा vi मध्ये उघडा, काहीतरी बदला, आणि
:q!ने बाहेर पडा. बदल save झाला नाही ना ते तपासा.
Task 5: tree
sudo yum install tree -ytree calendarआणिtree school.- झालं की console मधून instance stop करा.
थोडक्यात
थोडक्यात
- चित्राचे folders step by step बनवा, किंवा पूर्ण paths आणि
-pवापरून एका ओळीत. - Braces:
mkdir -p Ramayan/Dasarath/{Ram,Laxman,Bharat,Shatrughna}. Commas, space नाही. Shell expand करतो;echoने आधी बघा. - File बनवायचे चार मार्ग:
touch,cat,nano,vi. touchरिकाम्या files बनवतो (size 0); आधीपासून असलेल्या file किंवा folder वर फक्त time update करतो.- Extensions हा नावाचाच भाग. Linux content तपासतो (
file), पण माणसं आणि programs extensions वापरतातच. - रिकाम्या files कामाच्या: भरायच्या logs, placeholders, markers, practice files.
- एका folder मध्ये एक नाव = एकच item. File असलेल्या नावाने
mkdir→File exists. Capital अक्षरं वेगळी. cat > fलिहितो (आधी रिकामी करतो),cat fवाचतो,cat >> fजोडतो. Typing संपवायला Enter, मग Ctrl+D.- cat मधली ओळ बदलू शकत नाही; editors बदलतात.
- nano: फिरायला arrows; save करून बाहेर Ctrl+X, Y, Enter; save करून तिथेच राहायला Ctrl+O.
- Space नावं तोडतो:
nano my fileदोन files उघडतो. नावं quote करा, किंवा त्याहून चांगलं, spaces टाळा. ls -Rrecursive दाखवतो;ls -rफक्त उलटं करतो.sudo yum install tree -yने tree install होतो;tree folderझाड काढतो.- प्रत्येक command एक छोटा program; काही Linux सोबत येतात, काही आपण install करतो.
- vi: command mode मध्ये उघडतो; type करायला
i/a/o; थांबायला Esc;:wqsave करून quit;:q!save न करता quit.
Samjla ka? Ghari tree install kara, vi madhe ek file lihun bagha. Pudhchya class madhe copy karayla shikuya.
Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. Folders आणि files ची नावं (Ramayan, calendar, ravi, my.txt, photo.jpg, fruits.txt वगैरे) शिकण्यासाठीची उदाहरणं आहेत. Commands चे outputs GNU bash, coreutils, nano आणि tree वर तपासले, जे Amazon Linux 2023 पण वापरतं; ls -l उदाहरणांमधली वेळ फक्त उदाहरणादाखल आहे.