任务102 Ubuntu之终端命令行

作者: ryyou | 来源:发表于2016-12-02 11:28 被阅读49次

1、终端

提起命令行,首先要想到的是输入命令行的终端。所以先介绍一下最常用的两种终端:
bashzsh

bash.png zsh.png

从这两张图片就能看出一些基础的区别:

  1. bash会显示电脑的名称及型号,而zsh则相对简洁一些
  2. 在使用上来看,zsh相对更好用一些,eg: 在进行目录跳转时,zsh可以利用tab键进行补全,但是bash并不可以,还有在zsh下如果使用git会显示所在的分支,对开发者来说非常方便。

安装 zsh

命令行安装

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

切换

$ zsh   //在bash下输入,即跳转至zsh
$ bash   //在zsh下输入,即跳转至bash

ps:介绍一款更好用的终端工具(guake)
安装

$ sudo apt-get update
$ sudo apt-get install guake

设置guake为默认的终端使用

$ sudo update-alternatives --config x-terminal-emulator
   //然后输入guake所在的序号

2、 命令行操作

  1. 文件及目录操作
  • cd — 切换目录
$  cd  /home    //进入home文件夹下
$  cd    //回到主文件夹下
$  cd ..   //回到上一层
  • mkdir — 创建文件夹
$ mkdir  demo   //创建一个名字为demo的文件夹
  • touch — 创建文件
$ touch demo.*  //创建一个名字为demo的文件,其中后缀名可以自己填写,如.c 、.txt等等
  • cp — 复制
$ cp  demo1.txt demo   //复制demo1.txt到demo文件夹下

更多关于cp的命令可利用cp --help来查找

  • rm — 移除
$ rm demo1    //删除文件demo1
$ rm demo2 -r  // 删除文件夹demo2
$ rm demo3 -rf  //强制删除文件夹demo3
  • pwd — 查看当前所在目录


    pwd.png
  • ls — 查看当前文件夹下所含有有文件及文件夹
 $ ls //显示当前文件夹下的文件及文件夹
 $ ls -a //显示当前文件夹下所有文件(包括隐藏文件)
 $ ls -l //或直接可以用ll来代替该命令,显示每一个文件的属性,通常包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等内容。

执行结果如下图:


ls.png
  • tar — 打包
 $ tar -cf Demo.tar *.jpg //将所有.jpg的文件打成一个名为Demo.tar的包。-c是表示产生新的包,-f指定包的文件名。
$ tar -rf Demo.tar *.gif //将所有.gif的文件增加到Demo.tar的包里面去。-r是表示增加文件的意思。
 $ tar -uf Demo.tar logo.gif //更新原来tar包Demo.tar中logo.gif文件,-u是表示更新文件的意思。 
$ tar -tf Demo.tar //列出Demo.tar包中所有文件,-t是列出文件的意思 
$ tar -xf Demo.tar //解出Demo.tar包中所有文件,-x是解开的意思
  • zip — 压缩
$ zip -r demo.zip 1.c 2.c 3.c //创建一个demo.zip并将1.c、2.c、3.c三个文件添加到demo.zip中
$ unzip demo.zip //解压demo.zip
$ unzip *.zip // 解压所有以.zip结尾的压缩包
$ unzip -v demo.zip  //当我不想解压,只想看压缩包中有什么时,执行这条命令
  • find — 查找
$ find [目录名] -name  "*.c" //在该目录下找到所有以.c结尾的文件
$ find [目录名] -perm   //按照文件权限来查找文件
$ find [目录名] -user    //按照文件属主来查找文件 
  • grep
    grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户
  • less 和 more — 查看文件内容
$ less demo.c
$ more  demo.c

less和more的区别:

more只能向后查看文件,且会显示百分比
less可以上下翻看

  • tail
$ tail -n number 文件名   //查看文件倒数第number行内容
$ tail -n +number 文件名  //从第number行开始查看文件内容
$ tail -f  文件名  //循环查看文件内容
  1. 帐号相关操作
  • su — 切换进root权限
  • sudo — 切换为管理员
  • woami — 查看当前用户
  • passwd — 修改当前用户的密码
  1. 包管理 — 相关操作

apt-cache search package 搜索软件包
apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package 安装包
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package 删除包
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get update 更新源
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
apt-cache depends package 了解使用该包依赖那些包
apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get build-dep package 安装相关的编译环境
apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖

  1. 进程相关
  • **ps **
$ ps  
ps结果显示.png
结果显示为四列:这些信息在显示时未排序
PID: 运行着的命令(CMD)的进程编号
TTY: 命令所运行的位置(终端)
TIME: 运行着的该命令所占用的CPU处理时间
CMD: 该进程所运行的命令
$ ps -ax  //显示所有当前进程
$ ps -u you  //根据用户过滤进程
$ ps -aux --sort -pcpu | less  //根据 CPU 使用来升序排序
$ ps -aux --sort -pmem | less  //根据 内存使用 来升序排序
$ ps -C 进程名   // 通过进程名和PID过滤
  • kill — 杀死进程
$ kill -l   //列出信号名称
$ kill 进程号   //杀死该进程
$ kill -9 进程号  //彻底杀死该进程
  1. 系统信息相关
  • top
$ top -h  //help显示帮助
$ top -v  //version显示版本
$ top -u you //显示指定用户的进程
$ top -p  进程名 //显示指定进程
$ top -n  //number进入top后,top会定时刷新状态,这个值就是设置刷新几次
$ top -d  //delay进入top后,top会定时刷新状态,这个值就是设置几秒刷新一次
$ top -b  //Batch mode,top刷新状态默认是在原数据上刷新,使用这个参数后,会一屏一屏的显示数据。结合重定向功能和计划任务,这个参数在记录服务器运行状态时非常有用。
  • df
$ df -a //显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统
$ df -k //以k字节为单位显示
$ df -i //显示i节点信息,而不是磁盘块
$ df -t //显示各指定类型的文件系统的磁盘空间使用情况
$ df -x //列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)
$ df -T //显示文件系统类型 
  • uname — 显示当前操作系统名称
$ uname   //显示操作系统名称
$ uname  -a  //显示指定的所有信息
uname.png
  1. 网络相关
  • ping — 用来测试与目标主机的联通性
  • telnet — 通常用来远程登录
  • curl — 是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具
  • netstat — 用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等
  • 修改hosts请看 host翻墙

相关工具与资源

相关文章

网友评论

  • 谭雅翔:其实bash或者zsh的前缀都是可以设置的
    ryyou:@谭雅翔 这个可以尝试一下,以前一直是使用的默认的 :smiley:

本文标题:任务102 Ubuntu之终端命令行

本文链接:https://www.haomeiwen.com/subject/vraapttx.html