0
点赞
收藏
分享

微信扫一扫

linux基础命令:

女侠展昭 2022-05-03 阅读 62

1.

pwd: 显示当前所在位置的绝对路径

cd 路径 : 切换当前工作位置

cd . : 退回到当前位置

cd .. : 退回到上一层

ls: 默认显示当前位置当前目录下的内容

clear: 清屏 ( 相当于翻页 )

cd ~: 直接进入到当前用户的家目录

cd -: 切换到上一次所在位置 , 在两个位置之间来回切换 ;

mkdir 文件名 : 创建一个目录 ( 文件夹 )

touch 文件名 : 创建一个普通文件

2.文件类型

目录文件 : 文件夹 'd' 表示

管道文件 : 用于进程间通信的一种文件 (p)

链接文件 : 相当于 Windows 上的快捷方式 (l)

设备文件 : 字符设备文件 (c), 块设备文件 (b), 套接字 (s)

ls -l: 查看文件的属性信息 :

对于一个文件而言 , 操作它的用户可以分为三类 :

所有者 , 同组用户 , 其他用户

u (user) 表示文件属主的访问权限 ; g (group) 表示文件同组用户的访问权限 ;

o (others) 表示其他用户的访问权限 ;

文件权限如下 :

r (read) 读权限 , 值为 4

w (write) 写权限 , 值为 2

x (execute) 执行权限 , 值为 1

3 修改文件权限 (chmod);

(1) 文字设定法 :

u: 表示属主 (user) g: 表示同组人 (group) o: 其他人 (other) a: 所有人 (all)

+: 表示增加权限 -: 表示去掉权限

例如 : 修改 main.c 文件的所有者权限 :

1). 取消写权限 :chmod u-w main.c

2). 成为可写可读的 chmod u=rw main.c

3). 同时修改 main.c 的属主权限和组用户权限 :chmod u-w,g+x main.c

练习 : 用文字设定法修改文件权限 ;

(2) 数字设定法

采用数字设定法时,权限通常由三位数字组成,每一位数字代表一种角色的权

限。每个角色的数值由其所具有的权限对应的数值之和构成 ;

r (read) 读权限 , 值为 4(100)

w (write) 写权限 , 值为 2(010)

x (execute) 执行权限 , 值为 1(001)

格式 :chmod xxx 文件名

1. 基础命令

(1)pwd: 显示当前位置的绝对路径

(2)cd: 切换目录 :cd 要切换的位置 ( 绝对路径 / 相对路径 )

(3)ls: 显示目录中的文件

ls -l( 简写为 ll, 等价 )

(4)man: 帮助手册

(1) 代表命令

(2) 代表系统调用

(3) 代表库函数

man printf: 查询命令 printf

man 3 printf: 查询库函数 printf

(5)touch: 创建普通文件

(6)mkdir: 创建目录文件

(7)rmdir: 删除空目录 , 不能删除非空目录

(8)cp: 拷贝文件

拷贝普通文件语法 :cp 源文件的路径 + 文件名 目的路径

拷贝目录文件的语法 :cp -r 源目录文件 + 目录名 目的路径 ( 需要加 r )

拷贝 + 重命名的语法 :cp 源文件 + 文件名 目的文件 + 新文件名

(9)mv: 剪切文件

移动普通文件 :mv 源文件的路径 + 文件名 目的路径

移动目录文件 :( 不需要 -r ):mv 源文件的路径 + 文件名 目的路径

mv: 剪切并重命名的语法 :mv 源文件路径 + 文件名 目的路径 + 新文件名

重命名 :mv 源文件的路径 + 文件名 源文件的路径 + 新文件名

(10)rm: 删除文件 ( 删除目录文件 需要加 -r )

rmdir 目录名 : 删除空目录

rm -r 目录名 : 删除非空目录

(11)find : 查找

find 搜索路径 -name 文件名 ( 按文件名搜索 )

find 搜索路径 -cmin -n( 搜索过去 n 分钟内修改的文件 );

find 搜索路径 -ctime -n( 搜索过去 n 天内修改的文件 );

(12)grep: 在文件中过滤出包含指定字符串的行 ;

(vim 先不管

cat: 查看 test 的内容 )

语法 :grep 字符串 文件名

(13) 管道命令 |

将前一个命令的输出结果作为后一个命令的输入

1:

touch test.o test.cpp twdoxj.ll testoo.x

ls

ls | grep test

2:

ls /bin

ls /bin |grep sh

(14)wc: 统计文件中单词的个数 (-w), 字符的个数 (-c), 行数 (-l)

wc -w 文件名

wc -c 文件名

wc -l 文件名

(15)su: 切换用户

1. 切换为管理员的命令 :sudo su;

退出 :exit

2. 切换为其他用户的命令 :su 用户名 ;

退出 :exit

(16) 关机与重启 shutdown -h now: 立刻关机

halt: 关机

init 0: 关机

shutdown -r now : 立刻重启

reboot: 重启

init 6: 重启

(17)runlevel: 查看系统运行级别

0: 关机

1: 单用户模式

2: 多用户无网络服务

3: 完全的多用户 文本界面

4. 未定义或自定义

5. 图形化界面

6. 重启

(18) 其他命令及小知识点

1.tab 补全 , 按上下键查阅执行过的命令

2.ctrl - 调小窗口

ctrl +shift+ + 调大窗口

3.Ctrl+Alt: 释放鼠标

4.history: 查看终端的所有的历史命令

2. 文件查看命令

(1)cat

1.cat: 查看文件内容

2. 合并文件 :

cat a.txt b.txt > c.txt

3. 往文件中写入数据

cat > ab.c ctrl+d 结束输入

(2)more

more 文件名

( 空格 , 回车 )

(3)less

less 文件名

看完内容之后不会显示到屏幕上

( 上下键 , 翻页键 )

(4)head

显示文件前 n

head -num 文件名

默认是 10

(5)tail

显示文件后 n

tail -num 文件名

, 默认是 10

查看日志文件主要用 tail

1. 文件编辑命令

vim 的三种模式

vim 分为三种模式 : 命令模式 , 插入模式 ( 编辑模式 ), 末行模式 ;

(1) 命令模式转为插入模式 :

(4)vim/vi 常用命令 :

n dd: 删除光标开始向下的 n ;

n yy: 拷贝光标开始向下的 n ;

p: 粘贴 ;

u: 撤销上一次操作

ctrl+r: 恢复上一次撤销操作 ;

r: 替换一个字符 ;

shift+6: 光标移动到当前行的开头 ;

shift+4: 光标移动到当前行的末尾 ;

shift+g: 光标移动到文本的最后一行 ;

gg: 光标移动到第一行 ;

n shift +g: 光标移动到第 n ;

d n shift +g: 删除光标到 n 行的内容 ;

y n shitf+g: 拷贝光标到 n 行的内容 ;

(5) 末行模式下的操作 :

:w 保存文本

:q 退出编辑

:wq 保存并退出 :q! 强制退出 ( 不保存退出 )

:w ( 路径 ) 文件名 另存为

:set nu 显示行号

:set nonu 取消行号

:set hlsearch 设置高亮搜索

:set nohlsearch 取消高亮搜索

:n,m s/oldstring/newstring 替换从 n 行到 m 行的第一个 oldstring

:n,m s/oldstring/newstring/g 替换从 n 行到 m 行的所有 oldstring

/string 向下搜索

?string 向上搜索

2) 配置文件的设置方法 :

sudo vi /etc/vim/vimrc

然后将配置选项写入到该文件中末尾 :

set nu

set tabstop=4 tab 缩进 4 个空格

set softtabstop=4

set shiftwidth=4 set expandtab

set smartindent 自动缩进

编译链接的四步

(1) 预编译 :

gcc -E main.c -o main.i

(2) 编译

gcc -S main.i -o main.s

(3) 汇编

gcc -c main.s -o main.o

(4) 链接

gcc main.o -o main 执行 : ./main

或者 : 全路径 /main

main.c 通过预编译 生成 main.i 文件

main.i 通过编译生成 main.s 文件

main.s 通过汇编生成 main.o 文件

链接阶段 : 将所有的 .o .a( 静态库文件 ) .lib( 库文件 ) .obj 文件链接起来 , 生成 .out 文件

ELF 格式的可执行文件 .out 文件 (Windows 生成的是 .ext 文件 )

(1) 可以三步合为一步 , 即不经过预编译 , 编译 , 汇编三步 , 直接一步生成 .o 文件 :

gcc -c main.c -o main.o

gcc -o main main.o

(2) 可以四步合为一步 :

gcc -o main main.c

1.gdb 调试

gdb命令

l: 显示 main 函数所在的文件的源代码 list 文件名 :num 显示文件名文件 num 行上下的源代码

b 行号 : 给指定行添加断点

b 函数名 : 给指定函数的第一有效行添加一个断点

info break: 显示断点信息 ;

delete 断点号 : 删除指定断点

r(run): 运行程序

n(next): 单步执行

c(continue): 继续执行 , 直接执行到下一个断点处

s: 进入将要被调用的函数中执行

finish: 跳出函数 ;

q: 退出调试

bt: 显示函数调用栈

disable 断点号 : 将断点设定为无效的 , 不加断点号 , 将所有断点设置为无效

enable 断点号 : 将断点设定为有效的 , 不加断点号 , 将所有断点设置为有效 ;

p val: 打印变量 val 的值

p &val: 打印变量 val 的地址

p a+b: 打印表达式的值

p arr( 数组名 ): 打印数组所有元素的值

*parr@len: 用指向数组的指针打印数组所有元素的值

display: 自动显示 , 参数和 p 命令一样 ;

info display: 显示自动显示信息

undisplay+ 编号 : 删除指定的自动显示

ptype val: 显示变量类型

makefile

 

 

 

 

 

 

 

 

 

 

 

举报

相关推荐

0 条评论