MIT|Missing Semester计算机教育中缺失的一课
Missing Semester 学习
课程主页:https://missing.csail.mit.edu
课程记录
一、Course overview + the shell
1.1 shell命令入门
echo "hello world"
echo 'hello world'
echo hello\ world
1.2 how system can find echo?
echo $PATH
which echo
/bin/echo "hello world"
1.3 navigting in the shell
cd
pwd
绝对路径和相对路径
ls和ls -l
1.4 connecting programs
programs always associated with tow stream: input stream and output stream
redirection < file and > file
when cat is not given any arguments, it prints contents from its input stream to its output stream
cat < hello.txt
| pipe command
二、Shell Tools and Scripting
shell scripting, about learning a new language:
- basic data type
- Control flow
- If
- case
- while
- for
- syntax
2.1 variable
foo=bar # foo = bar is wrong
echo "$foo" # this print bar
echo '$foo' # this print $foo
2.2 function
mcd () {mkdir -p "$1"cd "$1"
}
- $0 name of program
- $1-9 arguments to the script
- $# number of arguments
- $$ pid
- $@ all the arguments
- $? the last command’s exit status
2.3 Logical command
||
&&
; # simplely seperate current command and the next command
2.4 command substitution
echo "start program at $(date)"
2.5 Process substitution
<(cmd) # this will execute cmd and place the output in a temporary file and substitute the
# <() with that file's name
2.6 wildcards and curly braces
*
{}
2.7 shebang line
#!/usr/local/bin/python
differences between shell functions and scripts
- functions are executed in the current shell environment
- scripts execute in their own process
2.8 shell tools
find
grep
- TLDR pages
- fasd
- autojump
- tree
- nnn
五、Command-line Environment
5.1 job control
你的shell使用一种叫做信号的机制在进程间沟通。信号是一种软中断机制。
ctrl-c 传递SIGINT信号
ctrl-\ 传递SIGQUIT信号
ctrl-z 传递SIGTSTP信号,short for Terminal Stop
SIGTERM signal ask a process to exit. Using kill command to send it.
- kill
- jobs
- fg
- bg
- nohup
5.2 terminal multiplexers
tmux教学
leading key means you press ctrl and b, then release them together, and then press x
panes
竖直分裂一个窗口 %
水平分裂一个窗口 "
关闭当前窗口 exit or ctrl-d
windows - equivalent to tabs in browsers(threads in process)
c 创建一个虚拟桌面
p 切换上一个
n 切换下一个
sessions - a session is an independent workspace with one or more windows
tmux # start a new session
tmux new -s NAME # start a new session with name
tmux ls #ls current sessions
detach a session with d
attach a session `tmux a` , with -t to specify which
5.3 Aliases
alias name="command arg1 arg2"
常见的别名设置:
todo
5.4 Dotfiles
指隐藏文件,通常是各种程序的配置文件。
- bash
~/.bashrcor~/.bash_profile - git
~/.gitconfig - vim
~/.vimrc - tmux
~/.tmux.conf - ssh
~/.ssh/config
关于隐藏文件,我们需要知道三件事:
- 内容
- 位置
- 管理
5.5 Remote Machines
5.6 Shells & Frameworks
On-my-zsh
- Syntax-highlighting
- History-substring-search
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
