linux 入门走一波
前沿 - 为啥要入门
虽然咱们是大前端,虽然咱们用的是JS,但是,咱的服务可都是放在linux服务上的啊。看个日志啥的,基本骚操作都不会,怎么调试bug呀?(这里多指node后端哈)。服务器上启动程序失败了,看错误好像是端口的问题,这个怎么操作啊?明明我的一个shell文件,为啥不能执行啊?等等。这样看似很基础的问题。其实我们不用掌握很多很多,掌握得多了,知识面广了,都有能力做运维了(当然得先做好本职工作,有时间有能力就可以去多学习)。下面我就分这么几方面来讲讲我眼中的入门。申明:本人linux渣渣一个,只是看linux从入门到精通后,把自己觉得有必要学习的东西分享一下,大神勿喷,有好的建议尽管来。哈哈。
要讲滴内容
历史、安装、基本配置
略。
基础工具
1 2 3
| man xxx whatis xxx apropos function
|
文件相关
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| mkdir dir touch file.ext pwd mv file1 file2 mv file1 ./dir/file2 rm file rm -f dir cp file1 file2 cd dir cd - ls cat file.ext head file.ext tail file.ext less file.ext find dir grep locate file.ext ls -l ln -s source_file target_file
|
管道操作
所谓管道就像小学数学的一根水管进,一根水管出,问你多久装满水池的问题。呸,不是!!!管道就是一个水管出,可以让其流入其它管道。数据在其中转换、流动。但是需要记住的一点,不是所有命令都支持管道操作。for example,
1 2
| cat access.log | grep 127.0.0.1 | tee filter.log
|
输出重定向
输入重定向
通常来说,标准输入总是指向键盘。比如使用不带任何参数的 cat 命令。
1 2 3 4 5 6 7 8
| cat > cat <<EOF # 这叫做立即文档(here document) > sfes > fsefsefs > EOF
ls | grep hehe
|
网络相关
服务器相关
一般服务器会预装 ftp 文件服务器和 ssh 远程连接服务。两个命令分别是 sftp 和 ssh。
http 服务器
咱们前端部署的一般是 node 服务。
进程相关
终止程序
前台的程序一般可以通过 Ctrl + C 来终结(可能会被程序拦截),后台的程序只能手动使用 kill 去杀死。
知识点介绍
- PID:进程的 ID 号。每一个进程都有自己的唯一 ID。
- PPID:父进程的 PID。
- UID 和 EUID:真实和有效的用户 ID。只有进程的创建者和 root 用户有才权利对该进程进行操作。EUID 会在存在 setuid 程序的时候被用到。
- GID 和 EGID:同上,只是对象变成了创建者所属的组 ID 号。
- 谦让度和优先级:对进程操作工具可见的是谦让度。谦让度越低,优先级越高,这个进程就更早地被处理。
进程工具
1 2 3 4 5 6 7 8
| ps aux top losf file kill pid Ctrl + C sudo kill -9 pig nice -n 2 bc renice +12 -p pid
|
守护进程
守护进程专用于管理其下的子进程,当子进程出现意外时,按照守护进程的逻辑进行相应的处理。比如为 http 服务器设置的守护进程,一般当 http 服务器宕机或者 cpu 占用异常时,可以重启服务。对于 ssh 连接,也有专门的 sshd 守护进程保护。当有 ssh 连接请求时,sshd 新建一个 ssh 连接用于通信。当结束 ssh 连接后,sshd 善后。
权限相关
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| ls -l chown owner:group file chown owner file chown :group file chown owner -R dir chmod u+x file chmod u-x file chmod +x file who whoami uname -a
sudo useradd -m tzx sudo passwd tzx groupadd groupname id user groups user gpasswd
|
系统维护
1 2 3 4 5
| tar -cvf file.tar dir tar -xvf file.tar
df
|
配置 /etc/crontab 文件,可以定时执行任务。
实用命令