文章目录
一、shell
命令解释器,执行输入的命令;
1.1 相关操作
cat /etc/shells查看当前系统下有哪些shell;

echo $SHELL:查看当前系统正在使用的shell;

1.2 快捷键盘
Ctrl-p:上;Ctrl-n:下;Ctrl-b:左;Ctrl-f:右;Ctrl-d:关闭;Ctrl-a:光标移至命令开头;Ctrl-e:光标移至命令结尾;Ctrl-u:清除正在输入的命令行。
二、目录和文件
2.1 目录介绍

bin:存放二进制可执行文件;boot:开机启动文件;dev:存储设备;etc:存用户的相关配置信息;home:用户目录;lib:存放所有库;usr:软件资源;
bin:应用程序;game:游戏程序;lib:应用程序的库文件;local:包含用户程序;sbin:管理员应用程序。
2.2 文件路径
相对路径:
从当前位置开始描述。
绝对路径:
从
/目录开始描述。
快速切换:
.:表示当前目录;..:表示上一级目录;cd -:会切换到刚才的目录。
2.3 文件类型【查看文件的第一个字符】
- 普通文件:-;
- 目录文件:d;
- 字符设备文件:c;
- 块设备文件:b;
- 软连接:l;
- 管道文件:p;
- 套字接:s;
2.4 ls
查看当前目录下的文件
参数:
-a:显示隐藏文件;-l:查看文件详细信息;-d:显示目录;-R:查看子目录;
2.5 which
查看指定命令所在路径。
2.6 pwd
查看当前所在路径
2.7 rm
删除文件
-r:删除文件夹;
-f: 强制删除。
2.8 touch
- 将文件修改为当前时间;
- 若文件不存在,则创建。
2.9 mv
移动文件。
mv 文件 指定目录
2.10 cp
拷贝文件
-a:拷贝文件夹的全部,且文件时间不变;
cp 拷贝文件 到指定目录
2.11 cat
查看文件内容
tac:文件倒置显示
2.12 more
分屏显示。
空格换页、回车换行、
Ctrl+c退出
2.13 tree
需要安装:
sudo apt-get install tree;
显示目录和文件
2.14 du
显示磁盘大小
2.15 df
查看磁盘使用情况。
df --block-size=GB
2.16 ln
硬链接:
- 链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接;
- 对其中一个文件修改【具有相同的inode】,则源文件也会被修改。
软链接:ln -s file file.s
- 本质是创建一个路径指向源文件。
- 若要在任何文件都能访问,则file要使用
绝对路径。-s:创建软连接
三、文件属性和用户用户组
3.1 whoami
查看当前登录用户。
3.2 chmod
修改文件属性。
chmod [who] [+|-|=] [mode] 文件名
- 在ls中权限组合【ugo】:
chmod a+w file
- u:所有者;
- g:同组用户;
- o:其他用户。
- a:以上所有。
数字设定法:
rwx --> 421==> 设定chmode 471 file即文件-r--rwx--x
3.3 chown
修改用户权限:
chown 用户:组 文件
3.4 修改用户组
修改用户组:
chgrp 用户组 文件
四、查找与检索
4.1 find
find 目录 -type/-name ''
-size;-name;-maxdepth;-type
若要配合管道使用
|需要结合xargs;可在前后加上-print0=null作为文件的切割项
4.2 exec
执行语句。
find 目录 -xx 'findword' -exec [执行的语句] {} \;
\:表示转移;{}:表示包括-exec前面的所有内容。
4.3 ok
与exec类似,但是交互方式的。
4.4 grep
根据内容检索。
grep -r '检索内容 文件'
五、软件的卸载与安装
5.1 apt-get
apt-get update:更新服务器列表;apt-get install 软件名:安装软件;apt-get remove 软件吗:卸载。
5.2 deb包安装
- 安装deb软件包命令:
sudo dpkg -i xxx.deb;- 删除软件包命令:
sudo dpkg -r xxx.deb;- 连同配置文件- -起删除命令:
sudo dpkg -r --purge xxx.deb;- 查看软件包信息命令:
sudo dpkg - info xxx.deb;- 查看文件拷贝详情命令:
sudo dpkg -L xxx.deb;- 查看系统中已安装软件包信息命令:
sudo dpkg -1;- 重新配置软件包命令:
sudo dpkg-reconfigure xxx。
六、压缩包
6.1 tar
tar -zcvf 压缩包名称 .tar.gz压缩材料:压缩文件 【参数v:显示压缩过程可加可不加】tar -zxvf 压缩包:解压缩
z代表gzip压缩方式;j表示bzip2压缩方式
6.2 rar
sudo apt-get install rar:需要先安装
rar a -r 文件.rar 文件:压缩;unrar x 文件.rar:解压缩。
6.3 zip
zuo -r 文件.zip 文件:压缩;unzip 文件.zip:解压缩。
七、其他命令
whoami:当前用户;who:查看用户登录;ps -aux:查看进程;top:任务管理器;env:显示所有环境变量;w / who / whoami / last:查看用户登录情况;adduser / passwd / userdel:创建用户修改密码/删除用户;su:切换用户;date / cal:查看日期日历;write / wall / mesg:发送消息;history:查看历史命令;reboot:重启shutdown:关机 +*参数:时间/now;
7.2 网络相关命令
ping:检查网络可达性 ICMP协议;
ttl = time to live
ping to death DDoS 分布式拒绝服务攻击
ifconfig:127.0.0.1 回环地址
netstat -nap(p:进程);
7.3 进程相关命令:
ps:(查看进程:第一组数就是进程号);ps -a(all)x(显示没有控制总段的进程);ps -u:查看特定用户的进程;- ps -ef 查看所有进程;
ps -aux:把结果按照cpu或者内存来筛选;ps -aux --sort -pcpu | less:通过cpu来升序排序;ps -aux --sort -pmem | less: 根据内存来升序;ps -C: -C 参数,后面跟你要找的进程的名字。
kill:(结束进程)
kill -9:强制杀死进程;
jobs(查看后台的进程)
jobs –r:只显示running状态的进程;jobs –p:只显示PID。
fg / bg(后台置前台 / 后台置前台)
Ctrl z:把前台放回后台。
top:(任务管理器、cpu、内存)
s:改变画面更新频率;l:关闭或开启第一部分第一行 top 信息的表示;t:关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示;m:关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示;N:以 PID 的大小的顺序排列表示进程列表;P:以 CPU 占用率大小的顺序排列进程列表;M:以内存占用率大小的顺序排列进程列表;h:显示帮助;n:设置在进程列表所显示进程的数量;q:退出 top;s:改变画面更新周期。
&
在启动命令后加 & 表示在后台运行
7.4 ssh命令:
登录:ssh 用户名@ip(公网ip);文件操作:scp 文件 root@ip:路径;scp:远程安全拷贝;sftp:sftp 用户名@ip命令前可加个l -- local文件加-r;lls:查看本地文件;put:上传到链接的服务器;get:下载,从链接的服务器下载下来。
八、vim命令
8.1 三种模式
- 命令模式:【a\i\o\A\I\O\s\S】 -> 编辑;【:】-> 末行模式;
- 编辑模式:【ESC】-> 命令模式;
- 末行模式:2次【ESC】-> 命令模式;执行末行命令 -> 命令模式。
8.2 命令模式
8.2.1 插入
a:光标后插入;A:行末插入;i:当前光标插入;I:行首插入;o:换行插入;O:上一行插入;s:删除光标所在的字符,插入;S:删除光标所在行,插入;
8.2.2 移动
h:左移;j:下移;k:上移;l:右移;M:光标移到中间行;L:光标移到最后一行行首;G:移动到指定行,行号G;G:移动文件末尾;gg:光标到文件开头;gg=G:程序自动格式化;%:光标移动到一个括号中,执行会跳到相应的另一半;0:光标移到行首;$:光标移至行尾;
8.2.3 删除
x:删除当个字符;dw:删除单词,光标要在首字母;D | d$:删除光标到行末;d0:删除光标到行首;r:按下,在按其他键即可替换;V:按下,在移动光标即可选中;dd:删整行,相当于剪切;数量 dd:光标在删除行首行,删除n行;
8.2.4 复制
yy:复制整行;p:复制到光标后;P:复制到光标前;
8.2.5 查找、替换
/查找内容:回车即可查找;n:查找下一个;*:光标放在要查找的单词上,在*即可查找下一个【若在任意一个单词,即可检索那个单词】;#:查找上一个;:s /要替换的/替换词:当行替换,替换光标所在行;:%s /要替换的/替换词/g:全部替换,若无/g则单替换每一行中的第一个;:起始行,末行s /要替换的 替换词:指定行替换;u:撤销;ctrl r:反撤销;
8.3.6 分屏
sp:上下分屏;Ctrl ww:切换;qall:退出所有;vsp:左右分屏;章数 K:光标移至该函数,跳转到文档;[d:光标移至该名,查看宏定义;:!命令:命令可以为终端执行命令;
9、gcc编译
9.1 预处理
xx.c->xx.i,gcc -E;- 展开宏、头文件,替换条件编译,删除注释、空行、空白。
9.2 编译
xx.i->xx.s,gcc -S;- 检查语法规范;
9.3 汇编
xx.s->xx.o,gcc -c;
将汇编指令翻译成机器指令;
9.4 gcc参数
-I 目录:指定头文件目录;
-c:只作预处理、编译、汇编;
-g:编译时添加调试文件;
Wall:警告;
十、静态库和共享库
10.1 静态库
对空间要求低,而时间要求高的程序中;
制作:
- 先将
xx.c生成xx.o文件;- 在使用
ar rcs name.a xx.o生成静态库;- 使用静态库,在编译之前添加静态库名称。
10.2 动态库
对时间要求低,对空间要求高。
制作:
- 先将
xx.c生成xx.o文件;gcc -c xx.c -o xx.o -fPIC;gcc -shared -o 库名.so xx.o;- 编译可执行程序时,要指定动态库,
-l 指定库名,-L 指定库路径;
- 链接器:工作于链接阶段,工作时需要
-l和-L;- 动态链接器:工作于程序运行阶段,工作时需要提供动态库所在目录位置。
- 【1】设置动态库路径:
export LD_LIBRARY_PATH=路径,临时生效,重启后即失效;- 【2】若要永久生效,写入终端配置:
.bashrc在使用source . bashrc;- 【3】将动态库拷贝到
/lib下;- 【4】配置文件:
vi /etc/ld/so/conf,写入动态库的绝对路径,在ldconfig -v生效;ldd 可执行文件:即可查看动态库配置路径。
11、gdb调试
-g:使用于编译,后续即可调试;gdb xx.out:即可进入调试;list num:即可在num查看;b num:在num行设置断点;r:运行;n:下一条指令,会跳过函数;s:下一条,会进入函数;p x:查看变量的值;finish:结束当前函数调用;start:从头开始执行;set args值:设置main参数值;run 参数:可直接运行并设置main参数;info b:查看断点信息;b num if ..:条件断点;ptype:查看变量类型;bt:查看函数当前所在的栈帧;frame num:切换栈帧;display 变量:跟踪显示变量值;undisplay 变量:取消跟踪;
12、makefile项目管理
执行顺序递归都最后的命令
12.1 规则
目标:依赖条件
(tab缩进)命令
- 目标要写在
最前面;- 若不要编译的时候显示该条命令,则在命令前增加
@;- 执行文件时,可指定目标
make 目标,否则执行第一句;- 目标时间必须晚于依赖条件的时间,否则更新目标;
- 依赖条件若不存在,找新的规则去产生依赖;
ALL: xx:指定生成目标;
变量 =:替换;+=:追加;:=:恒等于。
12.2 函数
$(wildcard ./*.c):匹配当前工作目录下的所有.c文件,并组成列表;$(patsubst %.c, %.o, $(src)):将src中包含参数1的部分,替换为参数2;make clearn -n:-n模拟执行;
12.3 自动变量
$:变量引用时,需要加上切使用();$@:目标文件;$^:所有依赖条件。$<:在规则命令中,表示第一个依赖条件;$?:构造所需文件列表中更新过的文件;CC:默认CC=gccCC=arm-linux-gcc;RM:删除文件,rm -f;
12.4 模式规则
%.o:%.c【%:任意】
gcc -c $< -o $@
【*:所有】
12.5 静态模式规则
$(obj):%.o:%.c:保证指向;
12.6 伪目标
.PHONY:
clean:(无依赖)
-rm -rf xxx;
// - 保证删除不存在的文件时,不报错;
使用:
make clear
【注】:
- 若该命令无注释,则make不会主动去寻找它的依赖性(即不会执行它的命令),若要执行,则需要加上该label。
- 可以在一个makefile中定义不用的编译或是和编译无关的命令,比如
程序的打包,程序的备份等等。
12.7 多目录工程
- 源文件
src:放置*.c;- 头文件
include:放置*.h;- 库文件
lib:放置*.sc;- 可执行文件
bin:生成二进制。
-I:头文件连接;-L:库文件目录连接;-l:库文件访问;lm:连接系统库
本文详述了Linux系统中的各种核心命令,包括shell操作、目录与文件管理、文件属性与用户权限、查找与检索、软件安装与卸载、压缩包处理、进程管理、网络与SSH命令、vim编辑器的使用、GCC编译、静态库与共享库管理以及gdb调试。内容全面,覆盖日常运维与开发所需的关键技能。
33万+

被折叠的 条评论
为什么被折叠?



