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

Linux 下 ls -l 命令执行显示结果的每一列含义

ls -l

~ ls -l ~/catkin_ws 
总用量 12
drwxrwxr-x 8 tangshp tangshp 4096 1130 12:32 build
drwxrwxr-x 5 tangshp tangshp 4096 1130 12:32 devel
drwxrwxr-x 3 tangshp tangshp 4096 1128 22:13 src

在这里插入图片描述

chmod (change mode)更改权限

SymbolMeaning
uuser
ggroup
oother
aall
rread
xexecute (and access directory)
wwrite (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有一个“智能”冲突解决系统;(下载安装包,不包括安装)

bash -c 注意事项

Ubuntu 各版本代号简介
Sublime Text

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值