Linux终端使用指南

语法篇

运行一个程序遵循如下语法
$ 命令 参数1 参数2 ...

其中运行包括三种路径表示方法

  • 环境变量下的程序直接输入即可运行
  • 输入相对路径
  • 输入绝对路径

以ls为例,上述三种方式分别为

$ ls

$ cd /usr/bin
$ ./ls

$ /usr/bin/ls

参数分为三种类型,短参数,长参数,以及动作参数,分别如下示例:

$ ls -a
$ ls --help
$ apt search vim

获取帮助篇

Linux下一个程序或者c/c++语言函数的用法获取可以通过

  • 帮助参数
  • 查询man文档
  • Wiki或搜索引擎(Wiki建议Archwiki,搜索建议Google)
  • 查看源代码

等方式获取,其中前两种方式在终端下完成,如zip命令为例

$ zip -h
$ zip --help

$ man zip
$ man strncpy

快捷键篇

命令快速输入

  • tab 用来补全程序名,路径,以及部分参数
  • Ctrl + A 跳转到行首
  • Ctrl + E 跳转到行尾
  • Ctrl + K 删除后面的内容

进程控制

  • Ctrl + C 终止当前程序
  • Ctrl + Z 挂起当前程序,bg切换到后台,fg切换到前台运行
  • Ctrl + D 发送文件终止符EOF

多程序组合篇

  • 数据流重定向
$ echo "aaaa" > a.txt
##把stdou输出的aaaa重定向到a.txt文件中,a.txt会被清空

$ echo "aaaa" >> a.txt
##把stdou输出的aaaa重定向到a.txt文件中,追加到a.txt的末行

$ nc -l -p 5555 < a.txt
##把a.txt的内容读取到正在监听的nc程序的stdin里面,这里连接到5555端口的程序将接受到a.txt的内容

$ nc localhost 5555 > a.txt
##通过这条命令配合上一条,即可实现通过传输文件的功能(明文,不安全)
  • 管道符号
    管道符可以将上一个程序的stdout作为本程序的stdin,如
$ ls /dev | grep 'sd'

即可从ls的输出里匹配出含有sd的文件和文件夹(硬盘和硬盘分区文件)

  • xarg – 将stdin作为下一个程序的参数
    如Ubuntu一键清理残余配置文件脚本
$ dpkg -l |grep '^rc' |awk '{print $2}|sudo xargs dpkg -P'
  • ${cmd}将程序输出作为参数
    如gcc编译时加入第三方动态库常用pkg-config
g++ opencv_demo.cpp ${pkg-config --libs --cflags opencv}

外观篇

  • $和#的区别
    两者都是提示符号,表示可以输入指令,前者表明用户为普通用户,后者表明用户为root

  • 改变终端提示符
    终端提示符如junzhi@arch $是由环境变量$PS1指定的,可以通过重新修改PS1变量来修改风格,PS1一般设置在~/.bashrc里面,可以通过Bashrc Generator网站来生成自己喜欢的风格

  • 改变默认Shell
    大多数发行版默认Shell为Bash,目前为止也有很多人采用更加强大的zsh, zhs有一个配置框架oh-y-zsh,拥有多种漂亮的提示主题,集成了Git管理以及更多的补全功能

    原文作者:0X0E01
    原文地址: https://www.jianshu.com/p/7526b899306d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞