Linux/Unix终端指令学习
本文从ROS官网学习而来
Linux和Unix的区别在于
Unix是商业闭源系统
Linux是正是在Unix这种商业闭源的环境下应运而生,开源;Linux终端中端指令和Unix99%相同;
UNIX Tutorial Two
行:Unix中文本里面一段被看做一行,空行被看做一行;
Searching the contents of a file
less 简单查询
➜ ~ less Hello.txt #查看Hello.txt文档
会跳转显示Hello.txt的内容
➜ ~ /shell#查看有哪些地方有shell
grep(区分大小写)
➜ ~ grep shell Hello.txt
#Hello.txt 中包含shell的段落会打印出来,并且shell都会被显示高亮
➜ ~ grep -i As Hello.txt
#加-i表示忽略大小写(ignore)
➜ ~ grep -i 'An illustration' Hello.txt
#差找短语或者模式使用单引号
➜ ~ grep -c shell Hello.txt
7
# 加c表示罗列包含shell的行数
➜ ~ grep -v shell Hello.txt
#打印不包含shell的行
➜ ~ grep -n As Hello.txt
10:As an illustration of the way that the shell and the kernel work together, suppose a user types rm myfile (which has the
#在每个匹配的shell前标注行号
grep总结:
options | 表示 |
---|---|
-i | 忽略大小写 |
-c | 罗列所包含的行数 |
-v | 不包括的 |
-n | 高亮并显示所在行的序号 |
wc (word count)计算单词个数
➜ ~ wc -w Hello.txt
448 Hello.txt
#返回文档中单词个数
➜ ~ wc -l Hello.txt
21 Hello.txt
#返回文档中行数
wc总结
options | 表示 |
---|---|
-w | 返回单词个数 |
-l | 返回行数 |
UNIX Tutorial Three
cat
➜ ~ cat >list# >(把下面输入写入list中),list被保存在当前文件夹下面
Tiger
Cat
Lion
Elephant#使用Ctrl+d结束输入
➜ ~ cat list#查看list中内容
Tiger
Cat
Lion
Elephant
追加
➜ ~ cat >list
你
好呀!
➜ ~ cat list
你
好呀!
➜ ~ cat >>list# >>把以下内容追加到该文件后面
Hello!!!
➜ ~ cat list
你
好呀!
Hello!!!
以文件作为来源(而非键盘)
➜ ~ cat >list1
Friut:
Apple
Orange
Melon
➜ ~ cat list list1 > list2
➜ ~ cat list2
你
好呀!
Hello!!!
Friut:
Apple
Orange
Melon
sort
➜ ~ sort #改变输入的循序(字母顺序/数字顺序/中文安首字母排序),然后打印到屏幕
dog
cat
ape
bird#在此行后使用Ctrl+d结束输入
ape
bird
cat
dog
来自某个文件,排序后,打印到屏幕
➜ ~ sort <list2#把list2中的内容排序后打印到屏幕,(并没有改变list2的内容)
Apple
Friut:
Hello!!!
Melon
Orange
好呀!
你
来自某个文件,排序后,打印到文件
➜ ~ sort <list2 >list3
➜ ~ cat list3
Apple
Friut:
Hello!!!
Melon
Orange
好呀!
你
whos:查看用户名/终端名/登入时间
执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器
➜ ~ who #
tangshp tty7 2018-12-04 10:57 (:0)
➜ ~ who >names.txt#把上行信息写入names.txt中
➜ ~ who | sort #管道‘|’把who的输出同sort的输入连接起来
#who的输出是用户名/终端名/登入时间;
#sort的输入可以是文件,也可以是键盘输入的对象
tangshp tty7 2018-12-04 10:57 (:0)
➜ ~ who | wc -l #管道‘|’把who的输出同wc的输入连接起来
1
#wc -l输入的是文本
UNIX Tutorial Four
ls *
➜ ~ ls catki*#查看以catki为头的文件的下一级目录名
build devel src
查看指令man
➜ ~ man wc#详细查看指令wc的描述文件
➜ ~ whatis wc#粗略查看指令wc的描述
查看指令man
➜ ~ apropos copy#查看所有与copy相关的指令
UNIX Tutorial Five
ls -l
➜ ~ ls -l ~/catkin_ws
总用量 12
drwxrwxr-x 8 tangshp tangshp 4096 11月 30 12:32 build
drwxrwxr-x 5 tangshp tangshp 4096 11月 30 12:32 devel
drwxrwxr-x 3 tangshp tangshp 4096 11月 28 22:13 src
chmod (change mode)更改权限
Symbol | Meaning |
---|---|
u | user |
g | group |
o | other |
a | all |
r | read |
x | execute (and access directory) |
w | write (and delete) |
+ | add permission |
- | take away permission |
➜ ~ chmod go-rwx hell0.txt
#去除group和other读写可执行权限
➜ ~ chmod a+rwx hell0.txt
#添加all读写可执行权限
ps(Process Status)执行状态
echo 打印
普通打印
➜ ~ echo Donald Trump
Donald Trump
变量
有一个zsh脚本为
#!/bin/zsh声明使用zsh来解释
read name#读取键盘输入的内容存入name变量中
echo My name is $name#打印,使用变量前加dollar符
运行:
➜ ~ zsh first.zsh
tangshp
My name is tangshp
lsb_release 用来查看当前系统的发行版信息
➜ ~ lsb_release -a#lsb_release -a 显示所有消息
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.5 LTS#Linux Standard Base
Release: 16.04
Codename: xenial#codename代号
apt-get update/upgrade/dist-upgrade
apt-get update的作用是从/etc/apt/source.list文件中定义的源中去同步包的索引文件,即运行这个命令其实并没有更新软件,获取的是软件的状态。获得新的和更新的包的信息。更新应始终在升级或DIST升级之前执行。(而是相当于windows下面的检查更新)
apt-get upgrade的作用是根据update命令同步好了的包的索引文件,去真正地更新软件。(下载安装包,不包括安装)
apt-get dist-upgrade除了执行升级功能之外,还智能地处理随着新版本包的变化而变化的依赖关系;apt-get有一个“智能”冲突解决系统;(下载安装包,不包括安装)