嵌入式学习笔记--liunx基础命令(unbantu)
一、终端操作与使用权限
1.打开终端有三种方式:右键选择“打开终端”;从应用程序面板启动;快捷键Ctrl + Alt + T
2.调整终端字号:放大Ctrl + Shift + +,缩小Ctrl + -
3.关闭终端:输入exit或按alt+f4
4.Linux 有两种权限:超级管理员(提示符以#结尾)和普通用户(提示符以$结尾)
5.权限切换:普通用户切超级管理员用sudo su或su root;超级管理员切普通用户 用exit或su 用户名
6.sudo的作用:使用sudo可以在命令前临时获得管理员权限,执行时需要输入当前用户密码 (输入时不显示)
7.修改密码用passwd 用户;修改root 密码需要加sudo 也就是sudo passwd root
8.命令提示符格式:用户名@主机名:当前目录$(或#);
二、常用命令
1.软件安装:sudo apt install 软件名或sudo apt-get install 软件名。
2.查看 IP:ifconfig(若未安装,先执行sudo apt install net-tools)
3.隐藏文件:所有以.开头的文件都是隐藏文件,用ls -a查看。
4.目录与文件操作:ls:列出目录内容,常用参数-l(详细信息),-a(显示隐藏),-R(递归),-r(逆向)
一般使用 ls 或ls -al(显示隐藏+详细信息)
pwd:显示当前工作目录的绝对路径
cd:切换目录,cd ~或cd回到用户主目录,cd ..返回上级目录
./: 表示当前目录,常用在文件或目录的平移用来代替目录部分,这样不用写出当前完整的目 录 如 mv ./b ../c ./b就表示当前命令行的目录下的目录b ; ../c就表示当前目录的上级目录下 的目录c mv ./b ../c :将b目录移动到上级目录并重命名为a
mkdir:创建目录,-p可创建多级目录。mkdir -p a/b/c
rmdir:删除空目录。
rm:删除文件或目录,-r递归删除,-f强制删除,-i交互提示。rm -rf 目标文件 目标文件
cp:复制文件或目录,-r复制目录,-a保留属性并递归,-i覆盖前提示
(复制+重命名)cp 源文件夹 目标文件夹/新文件件名称 (复制)cp 源文件夹 目标文件夹。
mv:移动或重命名文件/目录。
touch:创建空文件或更新文件时间戳 touch 1.txt;创建一百个txt文本 touch {1..100}.txt
如何删除呢:方法一 :cd 目标目录 rm -rf * 或 rm *.txt
5.查看文件内容:cat:直接显示全部内容,-n显示行号。 cat -n 目标文件名
more:分页显示(回车下一行,空格下一页,q 退出)。
less:逐步查看(PgUp/PgDn 翻页,q 退出)。
tail:显示文件末尾,-n指定行数,-f动态监控 tail -f 文件名,可以持续跟踪文件,一旦文件有新内容写入,它就会立即在终端显示出来;tail -f test.txt 这个命令在新的终端页面打开;然后在新打开一个页面运行这个命令 echo "第一次添加的内容" >> test.txt; 运行tail命令的终端就会显示第一次添加的内容;参用来监视日志
6.搜索与过滤:
grep:在文件内搜索内容,-n显示行号,--color高亮。
find:按名称-name或类型-type f/d查找文件。
find / -name "1*.c" 查找根目录下名字以1开头的c文件,*指任意内容
find / -name "*1.c"查找根目录下名字以1结尾的c文件,*指任意内容
find / -name "*1*.c"查找根目录下名字包含1的c文件,*指任意内容
find ~ -type f 查找主目录下的所有普通文件
管道|:将前一个命令的输出作为后一个命令的输入。 ps -ef 显示当前运行的所有进程通常搭 配grep使用如:ps -ef | grep system
7.排序与统计:sort:对文件内容排序,-n按数字,-k按列,-u去重,-o输出到文件。输出文件:将结果写入文件(如sort data.txt -o sorted.txt)
wc:统计行数-l、单词数-w(由空格分隔)、字符数-c(包括换行符)。
8.压缩与解压:tar:压缩和解包:压缩:tazvf 包名.tar.gz 解压:tar -xzvf 储存 package.tar.gz ;解压到指定目录(如tar -xzvf package.tar.gz -C /tmp)
zip/unzip:处理zip格式 压缩:zip -r 文件名.zip 要压缩的目录或文件 -r:递归压缩目录
解压:unzip 文件名.zip -d 目录:解压到指定目录 :unzip archive.zip -d /tmp/
9.进程管理
ps:显示当前进程快照。
ps -ef:显示所有进程的完整信息(UID, PID, PPID, C, STIME, TTY, TIME, CMD)。
ps aux:另一种格式,显示CPU和内存使用。
常用组合:ps -ef | grep 进程名 查找特定进程。
kill:向进程发送信号。
kill PID:发送TERM信号(请求正常终止)。
kill -9 PID:发送KILL信号(强制杀死,无法捕获)。
kill -l:列出所有信号名称。
注意:需要进程所有者或root权限。
top:实时显示进程活动(类似Windows任务管理器)。
默认按CPU使用率排序,按 P 按CPU,M 按内存,q 退出。
可以实时监控系统资源。
10.文件权限(chmod详细
符号法:
用户类别:u(所有者)、g(组)、o(其他)、a(所有)。
操作符:+(添加)、-(移除)、=(设置精确)。
权限:r(读)、w(写)、x(执行)。
示例:
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w file.txt # 移除组的写权限
chmod o=rx file.txt # 设置其他用户只有读和执行
chmod a+rw file.txt # 所有用户添加读写
chmod u=rwx,g=rx,o=r file # 分别设置
数字法:
每个权限对应数字:r=4, w=2, x=1。
三位数字分别代表所有者、组、其他。
计算:rwx = 4+2+1=7;r-x=4+0+1=5;r--=4+0+0=4;-wx=0+2+1=3;等等。
示例:
BASH
chmod 755 script.sh # 所有者rwx,组rx,其他rx
chmod 644 file.txt # 所有者rw,组r,其他r
chmod 777 file # 所有用户rwx(不安全,谨慎)
chmod 500 file # 所有者rx,组无,其他无
其他相关命令:
chown:改变文件所有者(如 sudo chown user:group file)。
umask:设置默认创建文件的权限掩码。
11.vim 编辑器(详细)
打开与安装
vim 文件名:打开文件(不存在则创建)。
如果提示未安装,执行 sudo apt install vim。
可以打开多个文件:vim file1 file2(用 :n 切换到下一个,:prev 上一个)。
三种工作模式详解
命令模式(Normal mode):刚进入时的模式,所有按键都是命令(如移动、复制、删除)。
插入模式(Insert mode):按 i、a、o 等进入,此时输入的文字会插入到文件中。按 Esc 返回命令模式。
底行模式(Last line mode):在命令模式下按 : 进入,光标会移到屏幕底部,可以输入命令(如保存、退出、搜索)。按 Esc 返回命令模式。
可视化模式(Visual mode):按 v(字符选择)、V(行选择)、Ctrl+v(块选择),用于选择文本后再进行操作(复制、删除等)。
命令模式常用操作(详细)
光标移动:
基本:h(左)、j(下)、k(上)、l(右)。
单词:w(下一个单词开头)、b(当前/上一个单词开头)、e(当前单词结尾)。
行内:0(行首)、^(行首第一个非空白字符)、$(行尾)。
文件:gg(第一行)、G(最后一行)、nG(跳转到第n行)。
屏幕:H(屏幕顶部)、M(中间)、L(底部)。
翻页:Ctrl+f(下一页)、Ctrl+b(上一页)、Ctrl+d(下半页)、Ctrl+u(上半页)。
复制(yank):
yy:复制当前行。只能复制一整行,在想要复制的那一行点两次y
nyy:复制从当前行开始的n行(如 3yy)。 想复制三行就输入3 加yy
y$:从光标复制到行尾。
y^:从行首复制到光标。
yw:复制一个单词。
剪切/删除:
dd:删除当前行。
ndd:删除n行。
d$:删除光标到行尾。
d^:删除行首到光标。
dw:删除一个单词。
x:删除光标处字符(相当于Del)。
X:删除光标前字符(相当于Backspace)。
粘贴:
p:粘贴到光标之后(下方)。
P:粘贴到光标之前(上方)。
撤销与恢复:
u:撤销上一步操作(可多次)。
Ctrl + r:恢复撤销(重做)。
替换:
r:替换光标处的一个字符(按r后输入新字符)。
R:进入替换模式(连续替换,按Esc退出)。
缩进:
>>:当前行向右缩进。
<<:当前行向左缩进。
=:自动缩进(如 gg=G 对整个文件自动缩进)。
插入模式进入方式
i:在光标前插入。
I:在行首插入。
a:在光标后插入。
A:在行尾插入。
o:在当前行下方新建一行并插入。
O:在当前行上方新建一行并插入。
s:删除光标处字符并进入插入。
S:删除当前行并进入插入。
底行模式常用命令
保存与退出:
:w:保存文件。
:w 新文件名:另存为。
:q:退出(未保存会提示)。
:q!:强制退出不保存。
:wq 或 :x:保存并退出。
跳转行号::n(如 :100 跳转到第100行)。
搜索:
:/关键词:向下搜索,按 n 下一个,N 上一个。
:?关键词:向上搜索。
:nohlsearch:取消高亮。
12.用户和用户组
多用户机制
Linux 支持多个用户同时登录,每个用户有独立的配置文件和主目录。
用户信息存储在 /etc/passwd(每行格式:用户名:密码占位符:UID:GID:描述:主目录:登录shell)。
密码加密存储在 /etc/shadow(仅root可读)。
组信息存储在 /etc/group(格式:组名:密码占位符:GID:成员列表)。
用户管理命令
添加用户:sudo adduser 用户名(会自动创建主目录、设置密码、创建同名组)。
更底层的命令:sudo useradd -m -s /bin/bash 用户名(需要手动设置密码)。
删除用户:sudo deluser 用户名(删除用户但保留主目录);sudo deluser --remove-home 用户名(连主目录一起删除)。
修改用户信息:sudo usermod,常用选项:
-a -G 组名:将用户添加到附加组(如 sudo usermod -aG sudo jack)。
-g 组名:修改用户的主组。
-d 目录:修改主目录。
-l 新用户名:修改用户名。
用户组管理命令
添加组:sudo groupadd 组名。
删除组:sudo groupdel 组名。
修改组:sudo groupmod -n 新组名 旧组名(重命名)。
查看用户所属组:groups 用户名 或 id 用户名。
权限机制详解
每个文件/目录有三组权限(所有者、组、其他),每组有读(r)、写(w)、执行(x)。
对于目录:
r:允许列出目录内容(如 ls)。
w:允许在目录中创建/删除文件(需要x配合)。
x:允许进入目录(如 cd)。
查看权限:ls -l 输出第一列如 -rwxr-xr--。
修改所有者:chown 用户名:组名 文件(如 sudo chown ciyeer:ciyeer file.txt)。
修改所属组:chgrp 组名 文件。
默认权限:新建文件默认权限由 umask 决定(如 umask 022 使新建文件为 644,目录为 755)。
特殊权限
SUID:在所有者执行位上设为 s(如 rwsr-xr-x),允许执行者以文件所有者身份运行(如 passwd)。
SGID:在组执行位上设为 s,对目录:新文件继承目录的组。
Sticky Bit:在其他用户执行位上设为 t(如 rwxrwxrwt),仅文件所有者或root可删除(如 /tmp)。
设置:chmod u+s file、chmod g+s dir、chmod +t dir