shell
shell 的一些快捷操作
linux系统的一些目录
bin:存放二进制可执行文件
boot:存放开机启动程序
dev:存放设备文件
home:存放用户
etc:用户信息和系统配置文件
lib:库文件
root:管理员宿主目录
usr:用户资源管理目录
linux系统文件类型
普通文件: -
目录文件: d
字符设备文件:c
块设备文件: b
软链接: l
管道文件: p
套接字: s
未知文件.
安装命令
sudo apt-get install +安装的东西
软链接
命令: ln -s 文件名 软链接名
为保证软链接可以任意搬迁,创建时务必对源文件使用绝对路径
硬链接
命令:ln 文件名 硬链接名字
操作系统给每一个文件赋予唯一的inode,当有相同inode的文件存在时,彼此同步.
删除时,只将硬链接计数减一.减为0时,inode被释放.
linux下~和/区别
~:是家目录
/:表示根目录
创建文件命令
e.g:touch xx;
修改文件权限
命令:chmod [who] [+ - =] 文件名
e.g:
用数字表示
创建用户
sudo adduser 新用户名
e.g: sudo adduser ys
修改文件所属用户
sudo chown 新用户名 待修改文件
e.g :sudo chown ys a.c
创建用户组
sudo addgroup 新组名
删除用户
命令: sudo deluser 用户名
修改文件所属用户组
sudo chgrp 新用户组名 待修改文件
e.g :sudo chgrp g77 a.c
删除组
sudo delgroup 用户组名
改变用户和用户组方法2
命令:sudo chown 用户:用户组 文件
查找文件
find命令:
-type 按文件类型搜索 d/p/s/c/b/l / f:文件
-name 按文件名搜索
e.g : find -name '*.c '
-maxdepth 指定搜索深度
e.g : find ./ -maxdepth 1 -name '*.c '
-size 按文件大小搜索
find ./ -size +20M -size -50M(文件大小在20M到50M之间的)
-atime, -mtime,-ctime按时间搜索
-exec:将find搜索的结果集执行某一指定命令
find ./ -name '*.c' -exec ls -ld { } \ ;
-ok: 以交互的方式将find搜索的结果集执行某一指定命令.
-xargs:将find搜索的结果集执行某一指定命令.当结果集数量过大时,可以分片映射.
find ./ -maxdepth 1 -name '*.c' | -xargs ls -l(默认空格为拆分依据)
-print0: find ./ -maxdepth 1 -type f -print0 | -xargs print0 ls -l(默认nul为拆分依据)
查找文件内容
grep
命令:grep -r 'index' ./ -n
ps aux | grep 'user' --检索进程结果集
在更新软件的时候发现:
有一个错误:参考链接https://blog.csdn.net/alinsword/article/details/113186774
压缩和解压文件
1.tar压缩和解压
tar -zcvf 要生成的压缩包名 压缩材料
e.g: tar zcvf test.tar.gz file1 file2 使用gzip方式压缩
e.g: tar jcvf test.tar.gz file1 file2 使用bzip2方式压缩
解压:将压缩命令中的c->x
e.g: tar zxvf test.tar.gz file1 file2 使用gzip方式解压缩
e.g: tar jxvf test.tar.gz file1 file2 使用bzip2方式解压缩
2.rar压缩和解压
rar a -r 压缩包名(带.rar后缀) 压缩材料
rar a -r testrar.rar file1 flie2
rar解压:
unrar x 压缩包名(带.rar后缀)
3zip压缩:
zip -r 压缩包名(带.zip后缀) 压缩材料
zip -r testzip.zip file1 file2
zip解压:
unzip 压缩包名(带.zip后缀)
unzip testzip.zip
c语言编译
g++ main.cpp file1.cpp file2.cpp -o my_program -I/path/to/header_directory -L/path/to/library_directory -lmylibrary
```bash
其中:
- `main.cpp` 是主程序文件。
- `file1.cpp` 和 `file2.cpp` 是其他需要编译的源文件。
- `my_program` 是编译后的可执行文件名称。
- `/path/to/header_directory` 是头文件所在的目录。
- `/path/to/library_directory` 是动态库所在的目录。
- `mylibrary` 是需要链接的动态库名称(不包括“lib”前缀和“.so”后缀)。