Linux 基础之命令
命令的格式
命令 选项 参数
ls -a -l -h /
rm -r -f a.txt b.txt
–help命令帮助信息(只能查看命令 中文)
命令 --help 查看该命令的帮助信息
注意:并不是所有的命令都有帮助信息 pwd 就没有
man帮助信息(查看命令,库函数,系统调用等)
man 1 ls 从第一章节中查找ls命令
man 是 Linux 提供的一个手册,这个手册有很多个章节
第一章中放的是 命令 的帮助信息
第二章中放的是系统调用(操作系统提供的函数 open)
第三章中放的是库函数(c 库提供的函数 printf)的帮助信息
tab自动补全
输入命令的一部分,然后按 tab 键,就自动补全命令,如果有多个相同开头的命令 多按一次 tab 键,他会将所有的以你输入开头的命令提示出来
例:ifconfig 输入 if 按两下 tab 键
输入 ifc 按 tab 键
注意:目录或文件的名字 也可以自动补
历史命令
history 按条数展示开机所使用过的命令
可以按 上下键 将输入的命令调出来,敲回车执行或者修改之后敲回车执行
重定向 >
命令 > 目的文件 本来输出的数据,重定向输出到目的文件
命令 > >目的文件 本来输出的数据,重定向追加输出到目的文件末尾
edu@edu:~/work/c/day01$ ls > a.txt //将ls显示的内容输出到a.txt
edu@edu:~/work/c/day01$ cat a.txt
a.txt
edu@edu:~/work/c/day01$ echo "hello" //打印hello
hello
edu@edu:~/work/c/day01$ echo "hello" > a.txt //打印hello到a.txt中
edu@edu:~/work/c/day01$ cat a.txt
hello
edu@edu:~/work/c/day01$ echo "nihao" >> a.txt 打印nihao追加到a.txt中
edu@edu:~/work/c/day01$ cat a.txt
hello
nihao
在Ubuntu中可以用gedit a.txt来打开a.txt编辑内容
管道 |
一个程序的输出 作为另外一个程序的输入
edu@edu:~/work/c/day01$ ps -A | grep ssh
9576 ? 00:00:00 sshd
查看所有进程 | 搜索ssh ps -A的输出作为grep ssh的输入
ls
ls -a -l -h / 查看根目录下的文件
tree 以树状结构显示目录信息
系统默认没有这个命令,需要安装
sudo apt-get install tree 安装tree
出现问题:
edu@edu:~$ sudo apt-get install tree
E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?
解决方法:
edu@edu:~$ sudo rm /var/cache/apt/archives/lock
edu@edu:~$ sudo rm /var/lib/dpkg/lock
edu@edu:~$ sudo apt-get install tree
正在读取软件包列表... 完成
用法: tree
tree -L 层数 显示层数的文件
edu@edu:~$ tree / -L 1 //展示根目录下一层
/
├── bin
├── boot
├── cdrom
├── dev
├── etc
├── home
├── initrd.img -> boot/initrd.img-4.4.0-21-generic
clear 清屏
cd 切换目录
cd 目录 进入目录
cd .. 返回上一级目录
cd或者cd ~ 返回家目录
cd - 返回上一次目录
pwd
显示当前工作目录的绝对路径
cat
显示文本文件内容
使用方法 :cat 文件路径或名
rm
rm 是 remove 的意思,移除 即删除的意思
注意:选项 -rf 可以没有,但是删除文件夹的时候必须带-r
-f 的意思是强制删除,即使要删除的文件或文件夹不存在也不报错
rm test.c 删除.c文件
rm -rf a 删除文件夹或文件
rm -rf /home/v/a 删除路径下文件
cp 拷贝
cp 选项 源文件或文件夹路径或者名称 目的路径
cp -r -v test.txt /home/s
将当前目录下的 test.txt 文件拷贝到/home/s 目录下
cp a.txt b.txt
将当前目录下的a.txt备份一个b.txt
注意:cp 后面可以加选项
拷贝文件夹的时候必须加-r
-v 显示拷贝进度
mv
是 move 是移动的意思,即剪切的意思
使用方法:
mv 选项 要剪切的文件或目录 目的路径
mv -v a.txt /home/s 将当前目录的a.txt移动到s目录下
注意: 如果源文件和目的路径在同一个路径下,相当于重命名
mv test.txt test2.txt 把test.txt 重命名为 test2.txt
mkdir
mkdir 创建文件夹
注意:如需递归创建的话,需要加-p
edu@edu:~/work/c/day01$ mkdir a/b/c -p
edu@edu:~/work/c/day01$ tree
.
├── a
│ └── b
│ └── c
touch
touch 创建文件
find
find:在指定路径下查找指定文件
用法:find 路径 -name 文件
grep
在指定文件中查找指定内容
用法:grep 查找信息 文件名 参数-n(显示行号)
edu@edu:~/work/c/day01$ grep hello a.txt -n
1:hello
3:hello word
4:word hello
在a.txt 文件中找 hello 字符串,显示出来并带行号
edu@edu:~/work/c/day01$ grep word ./* -R -n
./a.txt:3:hello word
./a.txt:4:word hello
在当前目录下的文件及其子目录下文件中查找 hello 字符
注意:必须加 -R 递归查找子目录,-n 是用来控制显示行号
在某个路径及其子目录下的所有文件中查找字符串
ln链接文件
软链接
ln 源文件名字 链接文件(快捷方式)的名字 -s
edu@edu:~/work/c/day01$ ln a.txt b -s
edu@edu:~/work/c/day01$ ls
a a.txt b
edu@edu:~/work/c/day01$ cat b
hello
nihao
hello word
word hello
注:b 就是 a.txt 链接文件(快捷方式)
源文件和链接文件 内容实时同步 链接文件等价于源文件的快捷方式 如果删除源文件 链接文件将失效
硬链接
ln 源文件名字 链接文件名字
源文件和链接文件 内容实时同步 链接文件是一个独立的普通文件 如果删除源文件 链接文件不受影响
tar:压缩与解压
打包和压缩的区别:
打包:将多文件 封装在一起
压缩:将多文件 封装在一起 通过特定的算法 将冗余的数据 进行删除
tar默认是打包命令,如果想用tar进行压缩 必须加选项
1、gzip格式
压缩:
tar zcvf 压缩包包名 文件 1 文件2 文件3......
解压:
tar zxvf 压缩包的名称 解压到当前文件夹
tar zxvf 压缩包的名字 -C 目的路径 解压到目的路径
2、bz2格式
压缩:
tar jcvf 压缩包包名 文件1 文件2.....
解压:
tar jxvf 压缩包的名称 解压到当前文件夹
tar zxvf 压缩包的名字 -C 目的路径 解压到目的路径
暴力解压:
tar xvf 压缩包
vim编辑器
1、安装vim环境
sudo apt-get install vim 安装vim编辑器
sudo apt-get install ctags 安装代码补齐插件
2、配置
1.将vim-config拷入当前用户的目录下,使用samba或-共享文件夹完成
2.打开终端,执行以下命令
cd vim_configure/ 进入配置文件中查看
chmod +x copy_con.sh 添加脚本可执行权限
./copy_con.sh 执行脚本
vim的3种模式:
编辑模式:对代码的修改(复制、粘贴、剪切等等)
插入模式:用户编辑代码
命令行模式:保存 退出 另存为等
vim三种模式的切换:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JIU2GoTZ-1691996157137)(C:\Users\Laptop\AppData\Roaming\Typora\typora-user-images\image-20230814141610601.png)]
末行模式常用命令:
:w 保存文件 :wq 保存文件并退出 vi :x 保存文件并退出 vi
:q! 不保存文件,强制退出 vi :w filename 另存为 filename
:行号 到多少行 :set nu 显示行号 :set nonu 不显示行号 :set hls 设置高亮 :nohls 取消高亮
:vs 文件名 左右分屏打开文件 :q 退出分屏 c trl +ww 切换分屏
:Ve 左右分屏打开当前目录 :sp 文件名 上下分屏打开文件
编辑模式:
h 光标左移 j 光标右移 k 光标上移 l光标下移
u 撤消前面多次修改。 ctl +r 反撤销
[n]x 删除(剪切)光标后 n 个字符。 3x
[n]X 删除(剪切)光标前 n 个字符。 6X
[n]dd 删除(剪切)从当前行开始的 n 行。 4dd
dw 删除(剪切)一个单词
p粘贴
[n]yy 复制从当前行开始的 n 行。 4yy
yw复制一个单词
. 执行上一次操作
shift +zz(按住 shift 同时按下两次z) 保存并退出
[n]G:将光标定位到第 n 行开始处
5G 将光标移动第 5 行开始处
G: 将光标定位到文件结束处
gg:将光标定位到文件开始处
/字符串 从光标开始处向文件尾查找字符串
n 同一方向重复上次查找命令操作
N 反方向重复上一次查找命令操作
:nohls 取消高亮 :set hls 设置高亮
ctrl +n 在插入模式下关键字补齐
gcc
gcc hello.c -o main 将源文件00_code.c生成可执行文件main
gcc hello.c 默认生成可行性文件a.out
行。 4dd
dw 删除(剪切)一个单词
p粘贴
[n]yy 复制从当前行开始的 n 行。 4yy
yw复制一个单词
. 执行上一次操作
shift +zz(按住 shift 同时按下两次z) 保存并退出
[n]G:将光标定位到第 n 行开始处
5G 将光标移动第 5 行开始处
G: 将光标定位到文件结束处
gg:将光标定位到文件开始处
/字符串 从光标开始处向文件尾查找字符串
n 同一方向重复上次查找命令操作
N 反方向重复上一次查找命令操作
:nohls 取消高亮 :set hls 设置高亮
ctrl +n 在插入模式下关键字补齐
gcc
gcc hello.c -o main 将源文件00_code.c生成可执行文件main
gcc hello.c 默认生成可行性文件a.out
gdb调试工具