Linux Shell
前言
1. 格式: command [-options] [parameter]
2. 注意:区分大小写
3. Ctrl + C: 终止当前操作(Tip:若想删除当前命令行的命令,但内容过多,用Backspace删除键十分麻烦,可用 Ctrl + C 直接弹出新的命令行)
4. 帮助: command –help / man command
终端小Tip
快捷键 功能 Ctrl + C 终止程序 Ctrl + U 剪切光标前至行首的内容 Ctrl + W 剪切光标前一个单词 Ctrl + A 移动光标到行首 Ctrl + E 移动光标到行尾 Alt + B 跳到上一个空格 Alt + F 跳到下一个空格 Ctrl + L / clear 翻页清屏(前面的内容还在) reset 清屏(清除之前的操作指令)
切换路径 cd
1. ‘.’为当前目录,’..’为上一级目录(每个文件夹在创建的时候,都会以自动创建 . 和 .. 隐藏目录 )
- cd ..返回上一级目录
2. cd 或 cd ~:返回用户根目录~
3. cd /:返回系统根目录
4. cd -:在最近两次目录中来回切换
查看目录信息
1. ls
- 英文全称:list
- options
选项 含义 -a 显示所有子目录和文件,包含隐藏文件
-l 以列表的方式显示文件的详细信息
-h 以人性化的方式显示文件大小,需配合 –l 使用,单独使用不起作用
- parameter 可配合 通配符 使用
符号 含义 * 可表示任意个字符 ? 可表示任意一个字符 [] 表示匹配字符组中的任意一个
2. tree
选项 含义 -d 只显示目录
3. 打印当前路径 pwd
英文:print working directory
创建文件夹 mkdir
- 英文全称:make directory
- windows 命令行:md / mkdir
- 递归地创建目录:mkdir -p a/b/c/d
- 注意:新建目录不能与当前路径下的已有目录或文件同名
新建文件
1. touch
- 创建隐藏文件:touch .a.txt
- 如果文件不存在,可以创建空白文件
- 如果文件存在,可以修改文件的末次修改日期
2. 创建非空文件:echo + 重定向
重定向
1. 作用:将终端显示的文本保存到文件
2. 配合echo使用,创建非空文件
3. >,表示输出,覆盖文件原内容
- echo abc > a.txt
- ls -lh > a.txt
4. >>,表示追加,将内容追加到已有文件的末尾
管道 |
1. 作用:将一个命令的输出通过管道作为另一个命令的输入
2. 常用命令
- more,如 ls -lha ~ | more
- grep,如 cat 123.txt | grep abc
文件操作
1. 复制 cp
- -i,覆盖文件前提示
- -r,复制目录文件,会递归地复制该目录下的所有字目录和文件
2. 移动 mv
- -i,覆盖前提示
- 若移动到当前目录,文件名不同,可重命名
3. 删除 rm
- 注:删除后不能恢复
- -f,强制删除,忽略不存在的文件,无任何提示
- -r,递归地删除目录下的内容,删除文件夹时必须选择此选项
- 通配符同样适用
- 系统根目录下,rm -rf * 会使整个系统崩溃
查看文件
1. cat
- 英文全称:concatenate
- 一次性显示所有内容,适合查看内容较少的文本文件
- -b,对非空输出行进行编号
- -n,对所有输出行进行编号
2. more
- 分屏显示文件内容,每次只显示一页
- 操作键(同 man 命令)
- 空格,显示下一屏
- Enter,一次滚动一行
- b,回滚一屏
- f,前滚一屏
- q,退出
查找文本
grep [options] 查找的文本 文件
- grep -n,显示匹配行及行号
- grep -i,忽略大小写
- 模式查找
- ^a,搜索以a开头的行
- a$,搜索以a结尾的行
远程管理
1. 关机/重启:shutdown [options] 时间
- 不指定选项和参数,默认表示1分钟后关闭电脑
- shutdown -r now,立即重启
- shutdown 20:25,表示在今天20:25关机
- shutdown + 10,表示10分钟后自动关机
- shutdown -c,取消关机,一分钟之内有效
- -r,重启,在远程维护服务器时,最好不要关闭系统,应该重启系统
2. 查看/配置网卡信息
- ifconfig,英文:configure a network interface
- ping ip
3. 远程登录SSH(Secure Shell)协议
- ssh [-p port] user@remote ip/域名/别名
- user不指定的话,默认为当前用户
- port SSH Server监听的端口,默认为22
- 远程拷贝文件 secure copy
- scp -P port user@ip:文件名或路径 user@ip:文件名或路径
- 选项 -r,递归地复制
- 配置别名
组、用户和权限
权限 英文 缩写 数字代号 读 read r 4 写 write w 2 执行 excute x 1
1. chmod
- chmod +/-rwx 目录或文件
- 递归修改目录或文件权限:chmod -R 755 文件名/目录名
4+2+1 7 rwx 4+2+0 6 rw- 4+0+1 5 r-w 4+0+0 4 r-- 0+2+1 3 -wx 0+2+0 2 -w- 0+0+1 1 --x 0+0+0 0 ---
2. 超级用户
- 用来系统的维护和管理,对操作系统的所有资源具有所有访问权限
- 系统默认用户为“标准用户”
- su,英文全称:substitute user
- sudo,密码有5分钟的有效期限
3. 组
- 添加组,sudo groupadd 组名
- 删除组,sudo groupdel 组名
- 确认组信息,sudo cat /etc/group
- 修改文件/目录的所属组,sudo chgrp -R 组名 文件/目录
4. 用户
- 添加新用户,sudo useradd -m -g 组 新建用户名(-m,自动建立用户家目录;-g,组)
- 设置用户密码,passwd 用户名
- 将新用户添加 root 权限
- hongkai ALL=(ALL:ALL) ALL
- 改变新用户的shell
- 查看用户当前的shell:echo $SHELL
- 查看系统的shell:cat /etc/shells
- 命令行:sudo vim /etc/passwd,在用户后面添加 /bin/zsh (例如要切换 zsh)
- 删除用户,sudo userdel -r 用户名(-r,自动删除用户家目录)
- 查看用户信息
- id [用户名]
- who,查看当前所有登陆的用户列表
- whoami,查看当前登陆的用户
- 切换用户
- su - 用户名,切换到用户的家目录
- exit 退出
- 修改文件/目录拥有者:chown 用户名 文件名/目录名
系统信息
1. 时间和日期
- date
- cal [-y]
2. 磁盘和目录空间
- df -h,以人性化的方式查看磁盘剩余空间,disk free
- du -h [目录名],以人性化的方式查看目录下的文件大小,disk usage
3. 进程信息
- ps,全称 process status,查看进程详细状况
- -a,显示终端上的所有进程,包括其他用户的进程
- -u,显示进程的详细状态
- -x,显示没有控制终端的进程
- top,动态显示运行中的进程并排序,退出 q
- kill -9 进程代号,-9表示强制终止
软链接
1. 命令:ln -s 被链接的源文件 链接文件
- 类似于快捷方式
- 用绝对路径
- 若没有 -s 选项,建立的是一个硬链接文件
打包压缩
1. 打包/解包 tar
- tar 是 linux 中最常用的备份工具
- 打包:tar -cvf 打包文件.tar 被打包的文件/路径;若同时打包多个文件,用空格隔开
- 解包:tar -xvf 文件.tar
选项 含义 c 生成档案文件,创建打包文件 x 解开档案文件 v 列出归档解档的详细过程,显示进度 f 指定档案文件名称,后面必须接 .tar z 调用命令 gzip j 调用命令 bzip2
2. 压缩/解压缩
- gzip (xxx.tar.gz)
- 压缩文件:tar -zcvf 打包文件.tar.gz 被压缩文件
- 解压缩:tar -zxvf 打包文件.tar.gz -C 目标路径 (注:目标路径必须存在)
- bzip2 (xxx.tar.bz2)
- 压缩:tar -jcvf
- 解压缩:tar -jxvf
软件安装与卸载
1. 通过 apt 安装软件
- apt,Adcanced Packaging Tool
- sudo apt install 安装包
- sudo apt upgrade
2. 卸载软件
- apt-get remove 卸载软件包,保留配置文件
- apt-get autoremove 卸载作为依赖而自动安装的软件包(坑,慎用!)
- apt-get purge / apt-get --purge remove 卸载并清除软件包的配置
- apt-get clean 删除 /var/cache/apt/archives 下的 deb 文件,即清理缓存的安装文件
- apt-get autoclean 删除已卸载的软件包的安装文件
其他
1. which
- cd 命令内置在系统内核中,没有独立程序,不能用which查看
- /bin,存放二进制执行文件 (binary)
- /sbin,存放系统管理执行文件 (system binary)
- /user/bin,存放安装的软件
- /user/sbin,超级用户的管理程序
2. find
- find [路径] -name "*.py":查找指定路径下扩展名为.py的文件,包括子目录