Ubuntu下的一些终端操作
终端界面的说明
示例:hunter@Hunter-PC:~$
- 最左侧的
hunter是目前用户的账号 - @之后的
Hunter-PC是主机名 ~是目前所在目录;~为当前用户的home目录$是提示字符;root的提示符为#,普通用户为$
登录后取得的程序被称为Shell(壳,因为该程序负责最外面跟使用者沟通,被戏称称为壳程序)
在Linux下平常最好使用一般账号来登录,需要动用到系统功能修订时,再使用root。
操作说明及技巧
Linux严格区分大小写。
在指令列模式里面下达指令时,会有两种主要的情况:
- 直接显示结果,然后回到命令提示字符,等待下一个指令的输入
 - 进入到该指令的环境,直到结束该指令,回到命令提示字符的环境
 
- 指令太长的时候,可以使用
\使指令连续到下一行。\后需要立刻接
回车,才能跳脱! 
快捷键
| 快捷键 | 功能 | 
|---|---|
| Ctrl + Alt + T | 打开终端 | 
| Shift + Ctrl + C/V | 复制/粘贴 | 
操作命令
Linux命令中,参数一般是无序的,特殊情况除外。
更新系统文件
sudo apt update
sudo apt upgrade
安装软件
sudo apt-get install xxx(程序名)
卸载软件
sudo apt-get remove -purge xxx(程序名)sudo apt autoremove
磁盘管理命令
注销Linux:
exit(Linux本身还在运行,只是退出了登录的操作)语系
- 显示目前支持的语系:
locale - 修改语系:  
LANG只与输出讯息有关,若需要更改其他不同的信息,要同步更新LANG=en_US.utf8 export LC_ALL=en_US.utf8LC_ALL。 
- 显示目前支持的语系:
 显示日期:
date计算器:
bc(win10的ubuntu子系统需要先安装)
事实上,该操作是进入到bc这个软件的工作环境。
bc预设仅输出整数,如果要输出小数,需要先执行scale=number,number是小数点位数- 要离开
bc,需要输入quit命令 
- 要离开
 转换成root用户:
sudo su展示文件和目录:
ls-a/--all展示当前目录下所有文件和目录(隐藏文件和特殊目录以.开头)-l查询详细列表(可以组合使用-al)-h友好展示信息
ls -l可以简写为ll
切换目录:
cd~当前用户的家目录/根目录-切换到上次访问的目录
显示当前所在目录:
pwd(print working directory)创建目录:
mkdir-p(parents) 父目录不存在的情况下,生成父目录-v显示命令执行过程中的详细信息
删除空目录:
rmdir
文件操作命令
快捷查看当前文件的内容:
cat,适合查看少量信息的文件分页显示内容,标注每行的行号:
less -mN(适用于大量数据的查看)回车向下n行(需要定义,默认为1行)空格向下一页b向上一页q退出
快速查看文件后n行的内容:
tail -n(查看日志)复制文件/目录:
cp 需要复制的文件 复制的位置-r/--recursive递归处理,将指定目录下的子目录一并处理
示例:
需求:把/root/Demo.java 文件复制到 /root/t1 目录中,改名为d.java 位置:root 命令:cp Demo.java t1/d.java文件移动:
mv 需要移动的文件 移动的位置-f强制性覆盖- 文件/目录重命名操作:
mv 原文件 新文件名(原文件名即转换为新文件名) 
文件/目录删除:
rm 文件名-f/--force强制删除-r/--recursive递归处理,将指定目录下的子目录一并处理
rm -rf 目录
查找文件或目录:
find [目录名] -name '需要查找的字符串'(不填写目录名则在当前目录下查找)压缩、解压命令:
tar-c建立一个压缩文件(create)-x解开一个压缩文件(extract)-z用gzip压缩-v压缩过程中显示文件(verbose)-f使用档名,在f之后要接档名(file)
Linux的压缩包格式:*.tar(打包不压缩)、*.tar.gz(打包并压缩文件大小)
	- 压缩:tar -zcvf 压缩包名.tar.gz 需要压缩的内容
	例如tar -zcvf test.tar.gz *(将当前目录下内容进行打包压缩)
	- 解压:tar -zxvf 需要解压的压缩包名.tar.gz [-C 指定解压路径]
	
系统命令
查看系统进程:
ps -ef(Process Status) 同时会显示执行ps命令的进程信息
示例:ps -ef | grep -i vim查看vim相关的进程强制结束进程:
kill -9 pid号显示网络设备:
ifconfig测试和目标的连通性:
ping ip地址
权限命令
- 权限更改:
chmod 权限设置 需要更改权限的文件-R/--recursive递归处理
示例:- 更改所属用户(user)的权限:
chmod u=rwx test.txt - 更改所属组(group)的权限:
chmod g=rx test.txt - 更改其他用户(other)的权限:
chmod o=rx test.txt - 更改所有用户(all)的权限:
chmod a=r test.txt 
 
几个重要的热键
TabTab具有命令补全和文件补齐的功能,可以避免打错指令或文件名。Tab接在一串指令的第一个字的后面,则为命令补全Tab接在一串指令的第二个字以后时,则为文件补齐
Ctrl + c:中断目前程序Ctrl + d: 键盘输入结束;也可以用来取代exit的输入Ctrl + PgUp/PgDown:翻页(指令执行后,显示的内容很长时可以用到)
查看帮助
指令名后加上--help
即可查看指令的用法,如cal --help。
man page
  man是manual(操作说明)的简写,通过man 指令名进入的画面,就是man page。
man page下能使用的相关操作:
| 按键 | 进行工作 | 
|---|---|
| 空格键 | 向下翻一页 | 
| PgDn | 向下翻一页 | 
| PgUp | 向上翻一页 | 
| Home | 去到第一页 | 
| End | 去到最后一页 | 
/string | 
向下搜寻string这个字符串,如果要搜寻vbird 的话,就输入/vbird | 
?string | 
向上搜寻string 这个字符串 | 
n, N | 
利用/或?来查找字符串时,可以用n来继续下一个查找,利用N来进 | 
| 行反向查找 | |
| q | 结束这次的man page | 
示例(man date):
在页面第一行,可以看到DATE(1),DATE是指令名称,(1)代表一般用户可使用的指令。
| 代号 | 代表内容 | 
|---|---|
| 1 | 用户在shell 环境中可以操作的指令或可执行文件 | 
| 2 | 系统核心可呼叫的函数与工具等 | 
| 3 | 一些常用的函数(function)与函式库(library),大部分为C 的函式库(libc) | 
| 4 | 装置文件的说明,通常在/dev 下的文件 | 
| 5 | 配置文件或者是某些文件的格式 | 
| 6 | 游戏(games) | 
| 7 | 惯例与协议等,例如Linux 文件系统、网络协议、ASCII code 等等的说明 | 
| 8 | 系统管理员可用的管理指令 | 
| 9 | 跟kernel 有关的文件 | 
man page大致分成以下几个部分:
| 代号 | 内容说明 | 
|---|---|
| NAME | 简短的指令、数据名称说明 | 
| SYNOPSIS | 简短的指令下达语法(syntax)简介 | 
| DESCRIPTION | 较为完整的说明,这部分最好仔细看看! | 
| OPTIONS | 针对SYNOPSIS 部分中,有列举的所有可用的选项说明 | 
| COMMANDS | 当这个程序(软件)在执行的时候,可以在此程序(软件)中下达的指令 | 
| FILES | 这个程序或数据所使用或参考或连结到的某些文件 | 
| SEE ALSO | 可以参考的,跟这个指令或数据有相关的其他说明! | 
| EXAMPLE | 一些可以参考的范例 | 
在查询某个数据时可以这样来查阅:
- 先察看NAME的项目,看一下这个资料的意思
 - 再详看一下DESCRIPTION,这个部分会提到很多相关的资料与使用时机,从这个地方可以学到很多小细节
 - 如果这个指令已经很熟悉了,主要就是查询关于OPTIONS的部分,可以知道每个选项的意义,可以下达比较细部的指令内容
 - 最后再看一下,跟这个资料有关的还有哪些东西可以使用。举例来说,date的
SEE ALSO就告知我们还可以利用info coreutils date来进一步查阅数据; - 某些说明内容还会列举有关的文件(FILES部分)来提供我们参考!这些都是很有帮助的!