Linux入门学习
https://space.bilibili.com/24014925?spm_id_from=333.788.b_765f7570696e666f.2
https://www.bilibili.com/video/BV1Bh411y7QM?p=3
Linux系统
多用tab补全功能
Linux 常用基本指令
1 日期查看 切换/查看目录 查看/创建/删除文件 移动/修改文件
date 查看日期
cal 查看日历
cal 02 2021 查看具体月份日历
目录相关指令
cd --help 查看命令信息
cd dirName 切换目录到 dirName
cd .. 返回上一级目录
cd 或者 cd ~ 返回home目录
cd / 返回根目录
cd - 进入上次所在的目录
cd . 进入当前目录
pwd 查看当前目录
ls 列出当前目录下的文件
ls -a 列出当前目录下的文件 包括隐藏文件
ls -l 以列表形式列出当前目录下文件的详细信息
ls -al , ls -la 以列表形式列出当前目录下文件的详细信息 包括隐藏文件
ls -l 目录 列出指定目录下文件的详细信息
ls /dirname/fil* 列出指定目录下文件为filx的文件,x为任意符号
clear 清空终端列表
文件及文件夹相关指令
mkdir filename 在当前目录下创建一个文件夹
mkdir -p a/b/c 在当前目录或指定目录下递归创建一系列文件夹
rmdir filename 在当前目录下删除一个文件夹
rm filename 删除文件,删除后就不可恢复,谨慎使用该命令
rm -rf 文件夹名 删除当前目录下的所有文件,这个命令很危险,应避免使用。
rm -r dirname 递归删除列出的目录及子目录及文件
touch filename.xxx 创建文件
> filename.xxx 创建文件
cp file1 file2 复制file1 并命名为file2
cp file dir/a 复制文件到指定目录
cp -r file1 file2 复制文件夹file1 并命名为file2
cp -r filedir1 dir2/a 复制文件夹到指定目录
虽然显示不能,但仍会复制到自己的子目录下
mv filename filenewname 改变文件名
mv file dir 将文件或文件夹移动到指定目录
mv dir/file . 将文件或文件夹移动到当前目录
mv dir/* dir 将文件夹里的文件移动到指定目录
cat filename 打印文件内容
cat t1.txt t2.txt > t.txt 将 t1.txt 和 t2.txt 的内容放到 t.txt 中,并覆盖原内容
cat t1.txt t2.txt >> t.txt 将 t1.txt 和 t2.txt 的内容放到 t.txt 中,在原内容上补加
diff file1 file2 查看两个文件是否有差异,无差异无输出
head filename -n 5 打印文件的前5行
tail filename -n 5 打印文件的后5行
wc filename 查看文件行数、字数、字符数
wc -w filename 查看文件字数
wc -l filename 查看文件行数
wc -c filename 查看文件字符数
less filename 按上下键 可以上下查看文件内容 , q 退出
echo 输出命令 echo [-neE] [arg ...]
echo "xxx" > test.txt 将xxx 放到 test.txt中,但会覆盖原有内容,没有就创建新的test.txt 中
echo "xxx" >> test.txt 将xxx 放到 test.txt中,在原有内容上增加xxx,没有就创建新的test.txt 中
chmod 权限管理指令
chmod u-r filename 去掉一个文件的作者的阅读权限, 为什么没有w权限时,用vim的 :wq!仍然可以更改文件内容
chmod u+r filename 增加一个文件的作者的阅读权限
chmod g-r filename 去掉一个文件的小组成员的阅读权限
chmod o-r filename 去掉一个文件的其他成员的阅读权限
chmod go-r filename 去掉一个文件除作者外所有其他人的阅读权限
通过二进制对文件权限进行修改
chmod 444 filename 所有人只能读
chmod 777 filename 所有人都能读写运行
chmod 000 filename 取消所有人的rwx权限
文件内容查询指令
grep word/char filename 查找文件中所有包含word/char的行
注意正则表达式的使用
grep l* filename 查找文件中 0个l, 1个l, n个l 的单词
grep ll* filename 查找文件中1个l, n个l 的单词
grep ^H filename 查找文件中所有H开头的行
grep H.ll filename 查找文件中所有包含Hxll的行,x可以是任意符号
grep [Hh]ll filename 查找文件中所有包含 Hll或 hll 的行,不能是Hhll
grep [A-Za-z]ll filename 查找文件中所有包含 xll 的行,x可以是任何字母
grep [A-Za-z]ll filename|wc 统计符合条件的 行数,单词,字符 数量
grep [A-Za-z]ll filename|wc -l 统计符合条件的 行数的数量
zip压缩
zip bak file1 file2 将 file1 和file2 压缩成bak.zip
zip -r bak dir * * 代表压缩该文件夹下的所有文件,*可以不要 , -r 代表递归压缩,将文件夹下的子文件夹一并压缩打包
unzip filename.zip 解压缩压缩包到当前目录
unzip -d dir bak.zip 解压缩压缩包到指定目录dir
tar -czvf test.tar.gz file1 file2 压缩文件1和2 为test.tar.gz
tar -czvf test.tar.gz *.txt 压缩目录下所有txt文件为test.tar.gz
tar -czvf test.tar.gz dir/ 压缩目录下所有文件及文件夹为test.tar.gz
解压缩
tar -xzvf test.tar.gz 将压缩文件解压缩到当前目录
tar -xzvf test.tar.gz -C dir 将压缩文件解压缩到指定目录,不可解压缩到不存在的目录
解压缩
下载
wget http://www.xlysauc.com/img/2015cp/mh/d/1433.jpg 下载指定路径图片
wget -O hello.jpg http://www.xlysauc.com/img/2015cp/mh/d/1433.jpg 下载指定路径图片 重命名为 hello.jpg
tree 张开当前目录文件夹的结构
which rosrun 查询rosrun命令路径
网络配置
ifconfig 查看ip等网络配置
ping www.baidu.com 检查网络是否连通
ssh 对方账号名@对方ip 远程链接 前提对方要安装
安装ssh sudo apt remove openssh-server
sudo apt install openssh-server
sudo service ssh restart
check sudo service ssh status
Linux 脚本
Linux 脚本就是将很多 linux的、命令写到一起打包成文件,这些命令在终端中也可以逐条运行
<,> 重定向符号。< : 把输入从文件中读出来;> : 把输出打到一个文件
> filename.xxx 新建一个空文件
ls > filename.xxx 将本目录下文件名打包成一个文件
Linux 脚本的后缀是sh
sh file.sh
如何像查看文本一样查看Linux 文件
输出语句: echo , 当赋值变量时不能加$ , 当使用变量时加$ , 注意赋值的时候等于号两边不能加空格, 但运算符两边必须加
计算式前加 expr , 加减乘除分别是 + - \* / , 括号是 \( \) 表达式要用 `` 括起来
if 语句 用中括号 最后跟 fi , 大于等于 用蓝框内的字符来表示
for 语句
while 循环
全局变量
USER 当前登录系统的用户名
HOME 用户主目录,~ 跟 HOME 作用一样
环境变量
PATH 该文件的目录添加环境变量后该文件可在其他地方运行 ??? 为何失败,
路径中间用 : 隔开,添加时必须 PATH=$PATH:/···/···/ 不然会删掉之前的路径
下载
wget 网址 -O newname 从某网址下载文件并重命名