格式
命令 【选项】 【参数】
帮助
-
man 命令
回车 下一行 空格 滚动一页 CTRLf/f 下一页 CTRLb/b 上一页 q 退出
-
命令 --help
常见命令
- 显示当前路径: pwd
- 以树状图列出目录内容: tree
- 查看文件信息: ls
- ls -a 显示所有文件包括隐藏文件
- ls -l 以列表的方式详细显示文件信息
- ls -lh 人性化显示文件信息
- 切换目录: cd
- cd . 本目录
- cd … 上一级目录
- cd 回家目录
- cd ~ 回家目录
- cd / 根目录
- cd - 回到上一次所在的目录
- 创建目录: mkdir
- mkdir -p a/b/c/d 递归创建目录
- 创建文件: touch
- touch 1.txt 2.txt 3.txt 一次创建多个文件
- 编辑文件: gedit(此指令不是所有版本都通用)
- gedit 1.txt 2.txt 3.txt 一次打开多个文件进行编辑
- 删除文件: rm
- rm -i 可以选择是否删除文件
- rm -f 强制删除,无需提示
- rm -r 删除整个文件夹
- 拷贝/复制: cp 源文件路径 目标文件路径
- cp -i 提示是否覆盖(如果不存在同名文件是不会有提示的)
- cp -f 强制拷贝,无需提示
- cp -v 显示拷贝的过程
- cp -r 拷贝文件夹目录
- cp -a 保留链接、文件属性、并递归的拷贝文件目录
- 移动/剪切/重命名: mv 源路径 目标路径
- mv -i 提示是否覆盖
- mv -v 显示过程
- mv -f 强制覆盖
注意
拷贝 cp 不可以给源文件重命名,移动 mv 可以。拷贝 cp 可以给拷贝过来的文件改名,但是源文件名字不变。移动 mv 改名就是把源文件给重命名,需要在同一目录下。不再的话叫做移走不叫重命名
其他命令
- clear (CTRL l) 清屏
- tab 自动补全
- which 查看命令位置
- 上下键 切换曾经写过的命令
- CTRL c 终止
日期,日历
- cal 日历
- cal -3 显示三个月(注意只能 -3)
- cal -y 显示一年
- cal -j 显示一年中的第几天
- cal 年分 显示那一年的日历
- date 日期
- date “+%F %T”
历史指令
历史指令保存在家目录的bash_history文件中
- history 查看历史指令
- !历史指令编号 执行历史指令
查看文件
- cat 可以一次查看多个文件(连接文件)
- cat -n 给文件内容编号
- cat -b 给非空行编号
- cat -s 两个以上空行,只显示一行
- more 分屏(分页)查看文件 连接文件可以准确的区分文件
- more +数字 从第几行开始查看
- more -p 先清屏再显示文件内容
- more -s 两个以上空行,只显示一行
相对和绝对路径
绝对路径:从根目录开始找起
相对路径:不从根目录开始找
重定向和管道
linux有三种流:
1. 输入流
2. 输出流
3. 标准的错误输出流
重定向
注意:一定要有输出才会有重定向。
echo 后面写的字符串,输出的就是这个字符串。
一个大于号>: 把输出的内容重定向到另一个文件里,如文件有内容则会覆盖。
两个大于号>>: 在后面追加不会覆盖掉原有内容。
管道
一个命令的输出作为另外一个命令的输入
指令1 | 指令2
注意:指令1一定要有输出
链接
软连接
ln -s 源文件名 软连接名
硬链接
ln 源文件名 硬链接名
删除软硬连接对源文件都没有影响
删除源文件,软连接不可用,如果文件还有多个硬链接,则对硬链接无影响,如果一个硬链接都没有则源文件彻底删除。
- 区别
- 软连接可以指向一个不存在的文件,硬链接不可以
- 可以对目录创建软连接,不可以对目录创建硬链接
- 软连接可以跨文件系统,硬链接不可以
文件搜索
-
文件内容搜索:grep -选项 “内容” 文件
- grep -i 忽略大小写
- grep -n 行号
- grep -v 取反
grep常用的正则表达式: ^a开头 ke$结尾
-
文件搜索递归查询:find
打包压缩
打包
tar -cvf 打包文件名.tar 文件名1 文件名2
解包
tar -xvf 打包文件名.tar
打包+压缩
tar -zcvf 打包文件名.tar.gz 文件名1 文件名2
解包+解压
tar -zxvf 打包文件名.tar.gz
解压到指定目录
tar -zxvf 打包文件名.tar.gz -C 指定目录
常用 tar
zip 压缩方式
- zip 压缩
- 压缩目录:zip -r xxx.zip 目录
- unzip 解压缩
- 解压目录:unzip xxx.zip
文件权限
rwx
前三个是拥有者权限,中间三个是所属组权限,后三个是其他用户权限
修改权限 chomd
代表含义: +(增加)/ -(撤销)/ =(设置)
-
字母法(不推荐使用)
chomd u/g/o/a +/-/= r/w/x 文件路径
- u 代表user拥有者
- g 代表grup组
- o 代表other其他用户
- a 代表all所有
-
数字法 r 4/ w 2/ x 1/ - 0
chmod 777 文件路径
- r + w = 6
- r + w + x =7
- r + x = 5
chmod -R 777 目录: 目录以及目录下面的所有文件全部修改权限
用户管理
切换用户
sudo -s 默认变成超级管理员 用自己用户的密码
su root 切换root用户 用root用户的密码
修改密码
passwd 用户名 修改指定用户的密码
passwd 修改当前
注意:root用户修改密码可以随意修改不需要注意格式或者是否合格,而普通用户修改自己密码的时候需要注意密码格式是否合格。
退出账户
- exit
- 图形界面,退出终端
- ssh远程登陆,退出登陆账户
- 切换的用户,则直接返回上一个用户
查看登陆用户
- who
- 用来查看当前系统登陆了哪些用户
- -q 统计用户数
- -u 显示最后一次操作据现在的时间
拓展
ps aux 查看任务进程
关机重启
reboot / shutdown -r 重启
shutdown -c 取消关机
shutdown now 立即关机
安装软件
sudo apt-get install xxxx
- apt-get 安装方式
- 备份文件 sudo cp /etc/apt/source.list /etc/apt/source.list.backup
- 配置软件源 修改/etc/apt/source.list
- 更新软件源 sudo apt-get update
- 安装软件 sudo apt-get install 软件包名
- 卸载软件 sudo apt-get remove 软件包名
远程登陆ssh
linux 的ssh版本是客户端和服务器端,window的ssh是客户端。所以window可以登陆linux,而反过来不可以。window虽然可以安装服务器端,但是一般安装不成功,因为windows是不做这种工作的。
sudo apt-get install openssh-server 给服务器安装远程登陆包
登陆:
ssh 用户名@IP地址 在别的设备上进行服务器远程登陆
exit 退出登陆
远程拷贝scp
上传:
scp -r 本地服务器文件的路径 远程服务器用户名@IP地址:远程服务器文件路径/拷贝文件名
下载到本地:
scp -r 远程服务器用户名@ip地址:远程服务器文件路径 本地服务器路径
如果操作的是一个目录 在scp 后面加 -r
workon用处
workon 查看当前服务器所有虚拟环境
workon 虚拟环境名称 切换到虚拟环境