Linux学习笔记——常用命令
Posted Preference for stars
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记——常用命令相关的知识,希望对你有一定的参考价值。
自己从大二开始玩单片机,一路Arduino、51玩到STM32,虽然性能越来越强大,但是所能做的事都过于局限。
而像树莓派这样的Linux小主机,可以利用海量的Python库文件,能点灯,能做视觉处理、机器学习和科学计算。也逐渐认识到系统的强大,也慢慢不局限于做一些小作品。
目标是嵌入式Linux,利用Python库做科学计算处理。
暂且定一个小项目,用Linux主板做偏振测量仪器的中心处理,加图像显示。
Linux终端常用命令
正点原子
命令 | 描述 | 补充 |
---|---|---|
ls | 目录信息 | |
ls -a | 显示目录所有文件,包括隐藏和.开头的 | |
cd | 进入目录 | Tab联想文件名 |
cd …/ | 返回上一级 | |
pwd | 当前路径显示命令 | |
uname | 系统信息查看命令 | |
clear | 清屏 | |
cat | 显示文件内容 | ctrl+d 退出 |
sudo | 切换用户 | |
sudo su | root用户 | |
sudo su yajoer | 切回用户yajoer | |
touch | 创建文件 | touch a.c |
mkdir | 创建目录 | |
cp | 拷贝cope | |
rm | 删除 | rm a.c |
rm -rf | 强制删除 | rm -rf test/ |
rm /* -rf | 删库跑路 | |
rmdir | 删除目录 | |
mv | 移动move | mv a.c b.c重命名 |
man | 查看命令所有选项 | |
ifconfig | 显示网络配置信息命令 | |
reboot | 重启 | |
poweroff | 关机 | |
man | 系统帮助命令 | |
sync | 数据同步写入磁盘命令 | |
find | 查找文件命令 | find -name a.c |
grep | 查找内容命令 | grep -nr “Ubuntu” / |
du | 查看文件大小 | du -sh test1/ |
df | 磁盘空间检查命令 | |
gedit | 用gedit打开某文件 | gedit a.c |
ps | 查看当前系统进程 | |
top | 进程实时运行状态查看 | Q退出 |
file | 文件类型查看命令 | file a.c |
ctrl + c 打断终端进程
韦东山
韦东山的视频简洁精炼,废话少很多,但是细节赘述
命令 | 描述 |
---|---|
pwd | 显示当前所在目录(文件夹) |
ls | 显示当前目录下的文件 |
cd | 切换路径 |
cd… | 返回上一级目录 |
mkdir test | 新建目录(文件夹) |
touch text1.c | 新建文件 |
gedit text1.c | 编辑文件 |
cp text1.c text2.c | 复制(cope) |
cat text1.c | 将文件内容显示到终端 |
rm text1.c | 删除文件 |
rmdir | 删除目录(文件夹) |
clear | 清屏 |
man | 查看命令所有选项 |
shell
查看路径
echo $PATH
env
运行C程序
cd /home/book/
cd Desktop/ 进入桌面
ls
gcc -o hello hello.c
hello
-/hello 相对路径
-/hello yajoer
/heme/book/Desktop/hello yajoer 绝对路径
hello.c
#include <stdio.h>
int main(int argc,char **argv)
if(argc >= 2)
printf("Hello,&s!\\n",argv[1]);
else
printf("Hello,world!\\n");
return 0;
设置PATH
- 临时设置
export PATH=$PATH:/home/book
- 永久设置,修改PATH文件
sudo gedit/etc/environment
将:/home/book添加到最后
Shell 循环
for((i=0;i<10;i++))
ctrl + T 打开终端
Linux命令格式
book@yajoer:~$ ls -l /home
用户名 | 连接符 | 主机名 | 连接符 | 目录(home) | 普通用户 | 命令command | 选项options | 参数constant |
---|---|---|---|---|---|---|---|---|
book | @ | yajoer | : | ~ | $ | ls | -l | /home |
man ls 查看命令ls的所有选项
VMware配置Ubuntu
CPU | 一处理器 多核(和win五五分) |
内存 | 4G以上 |
硬盘 | 100G以上 |
屏幕自适应
sudo apt-get instanll open-vim-tools
sudo apt-get instanll open-vim*
reboot
升级系统
更新系统
sudo do-release-upgrade
清理无用安装包
sudo apt-get remove
python
命令 | 描述 |
---|---|
quit() | 退出python |
shift+ZZ | 保存修改内容并退出 |
常用英文单词
directory | 目录 |
change | 改变 |
list | 列出 |
打印 | |
remove | 删除 |
cope | 拷贝 |
move | 移动 |
clear | 清楚 |
pwd | print working directory | 打印当前所在目录 |
9、Ubuntu 下磁盘管理(21/7/14)
Linux只支持文件系统为FAT32的U盘
cd /dev
ls sd*
其中sdb表示U盘,sdb1表示U盘的第一个分区
df 命令 磁盘空间检查命令
du命令 查看目录下文件的大小
du -h --max-depth=1 查看最大深度为1的文件大小
1. 磁盘的挂载(mount)和卸载(umount)
卸载:
sudo umount /media/yajoer/U盘名
挂载:
sudo mount /dev/sdb
2. 磁盘的分区(fdisk)
sudo fdisk -l
sudo fdisk /dev/sdb
需要先卸载U盘再操作
3. 磁盘的格式化(mkfs)
mkfs --help
sudo mkfs -t vfat /fev/sdb1
10、 Ubuntu下压缩和解压缩(21/7/15)
零、Linux常用压缩格式:
.tar、.bz2、.gz
需要再win下安装7zip工具
一. gzip压缩工具(.gz)
文件压缩
gzip xxx 压缩
gzip -d xxx 解压缩
gzip -r xxx 递归操作,对文件夹内所有文件压缩(不打包)
二. bzip压缩工具(.bz2)
bzip --help
bzip -z a,c 压缩
bzip -d a.c 解压缩
三、tar打包工具,也支持压缩
tar --help 查看帮助文档
tar -c 归档
tar -x 提取
-j bzip格式压缩
-z gzip格式压缩
-v 打印过程
-f 使用归档文件
常用操作
tar -vcjf test.tar.bz2 test 压缩
tar -vxjf test.tar.bz2 test 解压
tar -vczf test.tar.gz test 压缩
tar -vxzf test.tar.gz test 解压
四、其他格式的压缩和解压缩
- rar格式
sudo apt-get install rar 安装rar
rar a test.rar test 压缩
rar 参看帮助文档
rar x test.rar 解压
zip格式
-r 递归
-v 打印过程
zip -rv test.zip test 压缩
unzip test.zip 解压
11讲、Ubuntu用户与用户组(21/7/16)
一、Linux用户类别和权限
- 初次创建用户
- root用户:可创建普通用户
- 普通用户
sudo gedit /etc/passwad
每个用户都有一个ID,叫GID。
二、用户组
三、创建用户和用户组
图形化操作,在app中有用户和组的应用程序
命令操作
adduser 创建用户
finger 查看用户信息
passward 修改用户密码
deluser 删除用户
addgroup 添加用户组
groups 显示用户组
delgroups 删除用户组
12讲、Ubunt文件权限(21/7/16)
1. 文件的三种状态:读(r)、写(w)、执行(x)
ls a.c -l 查看a.c文件的权限
2、Ubuntu文件权限修改
- 修改文件权限命令(chmod)
- 修改文件所属用户(chown)
13讲、Linux连接文件(21/7/16)
一、连接类型
符号链接(软):相当于win的快捷方式
硬链接:
inode:记录文件属性,相当于ID
二、ln命令
ln --help
三、硬链接
多个文件指向同一个inode
修改硬链接中的任一个文件,都会被修改
gedit hello.c
gcc hello.c -o hello
ls
ln hello hello1
ln hello hello2
ll --help
ll -i hello* 参看inode
ln
四、符号连接(软)
ln -s /home/yajoer/hello hello2
快捷方式
软连接创建时最好用绝对路径,否则移动后找不到原来路径。
14讲、Vim编辑器(21/7/18)
尝试安装Ubuntu 20.04双系统,失败告终。使用Rufus创建启动U盘时,分区类型应该选择MBR,否则关闭快速启动和安全启动后,仍然看不到U盘选项。
最终失败原因为,安装Ubuntu需要关闭英特尔快速存储技术,而win10显然依赖该技术,担心文件损失,遂放弃,网上有相关解决方法,但是未尝试。
嵌入式Linux有着便宜且稳定的特性,可接入广泛的库文件,优势巨大。
Ubuntu 20.04自带vi编辑器,vim编辑器
编辑器有三种工作模式:
1. 一般模式:
进入文档默认一般模式,可按Esc进入
vi tect.c 创建并编辑
:x 保存并退出
:q 退出
:q! 不保存退出
:w 保存文档
:wq 保存并退出
cat ect.c 显示内容
dd 删除行
ndd 删除n行
yy 复制行
nyy 复制n行
p 复制到光标下一行
P 复制到光标上一行
2. 编辑模式
a 在光标后插入字符(常用)
A
i 在光标前插入字符
I
o
s
r
Esc 退出到一般模式
不保存关闭终端,会产生.txt.swp文件
15讲、Linux C编程(21/7/18)
一、编写C程序
vi main.c
设置TAB键,显示行号
sudo vi /etc/vim/vimrc
在最后面添加
set ts = 4 设置TAB键为4空格
set nu 显示行号
二、编译C程序
gcc编译器,gcc -v查看版本,可检查语法错误
预处理、汇编、编译、链接
-c 只编译不链接生成可执行文件,生成.out文件
-o<链接文件> 生成链接文件,不生成.out文件
16讲、make工具和Makefile的引入(21/7/18)
三、Makefile基础
GNU make是一个自动化编程软件
vi Makefile 创建Makefile文件,区分大小写
make 编译,会判断文件最后时间,只编译修改文件
make clean 清楚命令,需要写在Makefile 中
17讲、Makefile 基本语法(21/7/19)
参考书籍:跟我一起写Makefile 作者:陈皓
一、规则格式
main:main.o input.o calcu.o
gcc -o mian main.o input.o caclu.o
按Tab键
二、Makefile 变量
不需要int、char定义,$(temp)使用变量
- 赋值符"="
取决于最后一次赋值
temp = main.o input.o calcu.o
main:$(temp)
gcc -o $(temp)
- ":="赋值符
只使用前面的赋值,不使用后面定义的变量
- “?=”
name ?= yajoer
如果变量name未被赋值,赋值为yajoer,否则使用前面的赋值
- “+=” 变量的追加
三、模式规则
一条规则将所有C文件编译成O文件
"%"相当于通配符
%.o:%.c
四、自动化变量
$@ 常用
$%
$< 依赖文件,常用
$?
$^ 常用
$+
$*
%.o:%.c 依赖.c文件
gcc -c %<
将所有C文件编译成O文件
五、Makefile 伪目标
当目录存在文件名为clean的文件,执行make clean不会执行清楚命令
将clean 命名为伪目标
.PHONY:clean 即使重复命名,也会执行
clean: 无依赖文件
rm *.o 删除所有.o文件
rm main 删除main链接文件
六、Makefile条件判断
七、函数使用
18讲、shell脚本入门(21/7/19)
一、shell脚本
类似win的批量处理文件,连续执行的命令写成一个文件,提供数组、循环、条件判断
二、shell脚本写法
扩展名:.sh
第一行:#!/bin/bash
echo “hello world!” 在终端显示字符
./my.sh 执行
三、shell脚本语法
- 写一个shell脚本
vi my.sh 创建文件并进入
a 进入编辑
#!/bin/bash
echo "hello world!"
Esc
:wq
./my.sh
- 交互式shell脚本
#!/bin/bash
echo "please input name:"
read name
echo "your name: $name"
read -p "input your name age and heights" age heights
- 数值计算 $(())
total = $(($first + $second))
echo "$first + $second = $total"
- test命令
cmd1 && cmd2 cmd1执行且正确,才执行cmd2
cmd1 || cmd2 cmd1执行且错误,才执行cmd2
test -e $name && echo y || echo n
- 中括号[ ]判断符
[ $first == $second ] “==” “!=” - 默认变量
0 0~ 0 n
$0 为my.sh的名字
$# 最后一个变量的标号
$@ 除$0外所有变量
19讲、shell脚本条件判断、函数和循环
一、if语句
- if
#!/bin/bash
if[ 条件判断 ];then
//
fi
- if else
if[ 条件判断 ];then
//
else
//
fi
- if elif else
if[ 条件判断 ];then
//
elif
//
else
//
fi
- case语句
case $变量 in
"a")
//
;;
"b")
//
;;
esac
二、脚本函数
function fname()
//
fname a b 传递参数
三、shell循环
- while 条件成立一直执行
while[条件]
do
//
done
- utill 条件不成立时一直执行
utill[条件]
do
//
done
- for循环
for name in a b c d
do
echo "$name"
done
for((i=0;i<10;i++))
do
//
done
以上是关于Linux学习笔记——常用命令的主要内容,如果未能解决你的问题,请参考以下文章