Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Linux Introduction (for Raspberry Pi Course)
Search
Tzu-ping Chung
August 19, 2015
Programming
0
190
Linux Introduction (for Raspberry Pi Course)
Tzu-ping Chung
August 19, 2015
Tweet
Share
More Decks by Tzu-ping Chung
See All by Tzu-ping Chung
Datasets: What it is, and how it was made
uranusjr
0
99
Let’s fix extras in Core Metadata 3.0
uranusjr
0
410
Python Packaging: Why Don’t You Just…?
uranusjr
1
200
這樣的開發環境沒問題嗎?
uranusjr
9
2.4k
Django After Web 2.0
uranusjr
3
2k
We Store Cheese in A Warehouse
uranusjr
1
420
The Python You Don’t Know
uranusjr
17
2.9k
Python and Asynchrony
uranusjr
0
340
Graphics on Raspberry Pi with Qt 5
uranusjr
0
96k
Other Decks in Programming
See All in Programming
From Spring Boot 2 to Spring Boot 3 with Java 22 and Jakarta EE
ivargrimstad
0
1.9k
Temporalを取り巻く仕様を整理する
sajikix
0
110
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
Namespace on read
tagomoris
2
370
iOSアプリでクリップボードにコピーしたことをユーザーに伝えるちょうど良いフィードバックを探す
ski
0
100
実用的かつリーズナブルな 「Azure × Gemini × LINE」~キャラクターBot 実装ライブデモ~
tomodo_ysys
1
170
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
Jetpack for KMP
fornewid
1
290
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
CSC307 Lecture 07
javiergs
PRO
0
220
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
229
130k
Rails Girls Zürich Keynote
gr2m
93
13k
In The Pink: A Labor of Love
frogandcode
139
22k
GitHub's CSS Performance
jonrohan
1026
450k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Done Done
chrislema
179
15k
Producing Creativity
orderedlist
PRO
340
39k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
BBQ
matthewcrist
82
9k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Transcript
speakerdeck.com/ uranusjr
Agenda • Introduction • The shell • Git • Linux
topics • Writing code • Python basics • Python in shell • Extensions
Introduction to Linux
None
Me • Call me TP • https://uranusjr.com • Python, C++,
OS X, iOS, Web • Tutorials and courses • Speaker • Django Girls Taipei
Quick Polls • Something “not Windows” • Command line interface
• Plain text editors • Programming
None
None
Prompt
pi@raspberrypi:~$
pi@raspberrypi:~$ ⢪欽罏
pi@raspberrypi:~$ ⚺堣せ珕
pi@raspberrypi:~$ 騟䖜
Shell • Core — Shell — User • Command line
interface • Bash (Bourne-Again Shell)
$ pwd /home/pi
$ mkdir bedroom
$ ls bedroom Desktop
$ touch table
$ ls bedroom Desktop table
$ cd bedroom $ pwd 剙곎爙➊랁
$ mkdir closet
銲䙥랁鹌Ⰵ closet
$ cd closet
$ cd ../.. 植㖈➂㖈ㆬ酬♶銲⡲䒦
穩㼨騟䖜 /home/pi/bedroom/closet 湱㼨騟䖜 bedroom/closet
.. = 㢩
現在位置(.) /home/pi/bedroom/closet 外面兩層(../..) /home/pi
$ cd ~ $ cp -‐r bedroom guest-‐room
$ ls 剙⳿植➊랁
$ cd guest-‐room 酬僽やㄤ bedroom ♧垺剣♧ ⦐ closet銲䙥랁墝叆
拷貝一樣東西 cp something 拷貝一樣東西,以及裡面的所有東西 cp -r something
拷貝一樣東西 cp something 拷貝一樣東西,以及裡面的所有東西 cp -r something
չ侶պ䧴չ䒷侶պ
$ man cp ... -‐R, -‐r, -‐-‐recursive
copy directories recursively
$ cd .. 鸍垺剙ⵋㆬ酬
$ mv guest-‐room living-‐room $ ls 剙⳿植➊랁
$ mv living-‐room/closet bedroom/closet2 鸍⦐䭷⟀⨞✪➊랁✲䞔
$ rm ~/table $ rm -‐r ~/bedroom $
rm -‐r ~/living-‐room 敮嫅։
The File System • The root directory • Other partitions
are “mounted” • Things have their places • Names are case-sensitive
/ ├── bin ├── dev ├── etc ├── home │
└── pi ├── lib ├── media ├── opt ├── root ├── tmp ├── usr └── var
Permissions • Essential for Un*x systems • Owner, group, others
• Read, write, execute
$ groups pi adm dialout cdrom sudo audio
video plugdev games users netdev gpio i2c spi input
$ groups pi pi : pi adm dialout cdrom
sudo audio video plugdev games users netdev input spi i2c gpio
$ cd /var $ ls -‐l total 102436
drwxr-‐xr-‐x 8 root root Aug 16 05:17 log drwxrwsr-‐x 2 root mail May 6 22:12 mail -‐rw-‐-‐-‐-‐-‐-‐-‐ 1 root root May 6 23:29 swap drwxrwxrwt 2 root root Jan 11 2015 tmp
奚ꣳ垦硹 䠑纏 r 隡《 w 㻨Ⰵ x 㛂遤鹎Ⰵ湡ꏗ s ⟃暶㹁魨⟨㛂遤
t ⫦乩剤罏〳ⵅꤑ荈䊹涸墂呪
奚ꣳ垦硹 䠑纏 r 隡《 w 㻨Ⰵ x 㛂遤鹎Ⰵ湡ꏗ s ⟃暶㹁魨⟨㛂遤
t ⫦乩剤罏〳ⵅꤑ荈䊹涸墂呪
$ cd /var $ ls -‐l total 102436
drwxr-‐xr-‐x 8 root root Aug 16 05:17 log drwxrwsr-‐x 2 root mail May 6 22:12 mail -‐rw-‐-‐-‐-‐-‐-‐-‐ 1 root root May 6 23:29 swap drwxrwxrwt 2 root root Jan 11 2015 tmp
The Superuser • “root” • Can do anything • Log-in
disabled by default
/ ├── bin ├── dev ├── etc ├── home │
└── pi ├── lib ├── media ├── opt ├── root ├── tmp ├── usr └── var Superuser’s home directory!
sudo • “superuser do” • Run a command as superuser
• Requires the sudo group
$ groups pi pi : pi adm dialout cdrom
sudo audio video plugdev games users netdev input spi i2c gpio
$ whoami pi $ sudo whoami root
Package Manager • APT = Advance package Tool • apt-get
• apt-cache
$ sudo apt-‐get update $ sudo apt-‐get install git
Git Basics
None
None
$ cd ~ $ git clone https://github.com/raspberrypi-‐ tw/workshop.git
$ cd workshop/gpio-‐tutorial-‐03/02_2-‐ led_blink/led_blink.py $ ls led.py
$ python led.py
HJUDMPOF 䭡頺♧⦐(JU墂呪䏨 HJUBEE墂呪 䪾墂呪⸈Ⰵ墂呪䏨 HJUBEE〳⟃♧妄⸈Ⰵ鿈墂呪 HJUDPNNJUN鏽鎹 ⸈Ⰵ♧⦐晝劥 HJUTUBUVT 叆溏湡涸墂呪䏨朜䢀 HJUEJ
叆溏湡墂呪䏨ㄤ♳⦐晝劥⛓涸䊴殯 HJUMPH 叆溏晝劥鎹ꏗ HJUQVTI 㼟劥㖒墂呪䏨♳⫄荛黇畮 HJUQVMM 刿倞劥㖒Ⰹ㺂
How a Linux OS Boots
Boot Sequence • Load the kernel (details omitted) • Prepare
the system • Start services • Run custom startup hooks • User log in
Boot Sequence • Load the kernel (details omitted) • Prepare
the system • Start services • Run custom startup hooks • User log in
Run Levels ꡠ堥 ㋲➃笞隌垸䒭 搂/'4㢵➃垸䒭 㸤侮㢵➃垸䒭
⥃殆 㕮䕎➝ ꅾ堥
$ ls -‐d /etc/rc* /etc/rc0.d /etc/rc1.d /etc/rc2.d
/etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d /etc/rc.local /etc/rcS.d
$ ls -‐d /etc/rc* /etc/rc0.d /etc/rc1.d /etc/rc2.d
/etc/rc3.d /etc/rc4.d /etc/rc5.d /etc/rc6.d /etc/rc.local /etc/rcS.d
raspberrypi login:
$ ls -‐A ~ .bashrc .bash_logout
.bash_profile .profile $ ls -‐d /etc/profile* /etc/profile /etc/profile.d
Summary • Startup • Run levels • Single-user and multi-user
mode • Login shells and non-login shells
$ nano
None
^R ➿邌 Control
倰ぢ꒳ 獵⹛康垦 1H6Q 1H%O )PNF &OE 獵⹛康垦 ^O 㶸墂 ^R
㉬墂呪 ^X 鷎ⴀ剚鑉㉏僽や⮭㶸墂呪 ^W 䵃㼦 ^K 䭡頺♧遤俒㶶 ^U 顦♳⛓䭡頺涸俒㶶
Demo
Error writing /etc/hosts: Permission denied
Demo
Try it!
$ cd ~ $ git clone https://github.com/serialhex/ nano-‐highlight.git .nano
$ nano .nanorc
include "~/.nano/python.nanorc" set tabsize 4 set tabstospaces