Linux C/C++ 开发工程师之路(2)

欢迎加入QQ:498903810 一起交流、讨论知识,里面有大佬,也有小白,天下码农一家亲,大家一起讨论进步。

Linux系统结构

Linux是一个倒树结构,类似一个数,也类似于一个家族的族谱。

Linux系统的一个重要思想:一切皆文件

因此在linux中不存在像win一样的分盘

Linux的目录

一级目录

 ‘/‘:一个斜杠即为根目录,也是一级目录

二级目录

/bin    ##二进制可执行文件也就是系统命令
/sbin   ##系统管理命令存放位置
/boot   ##启动分区,负责系统启动
/dev    ##设备管理文件
/etc    ##大多数系统管理文件markdownpad插入本机图片
/home   ##普通用户的家目录
/lib    ##32位系统库文件存放位置
/lib64  ##64位系统库文件存放位置
/media  ##系统临时设备挂载点                                                                                 
/mnt    ##系统临时设备挂载点
/run    ##系统临时设备挂载点
/opt    ##第三方软件安装位置
/proc   ##系统信息
/root   ##超级用户家目录
/srv,/var      ##系统数据
/sys    ##系统管理,主要是关于内核的
/tmp    ##系统临时文件存放位置
/usr    ##系统用户相关信息数据及用户自定义软件存放位置

文件寻址

这里有两个比较重要的概念:

1.相对路径:文件相对于
当前操作的位置的路径

2.绝对路径:文件相对于操作系统的未知的路径

绝对路径一般是以根目录开始的

文件管理相关命令

touch

该命令本来用作改变文件的时间戳,但是大多数情况被用来创建文件

touch命令

mkdir(make directory)

创建一个新的目录


如果想要在一个不存在的目录里面创建一个新的目录
那么需要加上参数 -p,否则就会报错

Linux C/C++ 开发工程师之路(2)_第1张图片

rm(remove)

删除文件或者目录的命令,文件夹也可以用专门删除目录的命令删除(rmdir(make directorry))
rm file

Linux C/C++ 开发工程师之路(2)_第2张图片

rm -f ##强行删除不提示
-r ##删除目录
rm -fr /* 是一个非常危险的命令它会删除所有的的系统文件,如果你是虚拟机的话,可以拍一个快照然后,玩一玩 ^_^

cat(concatenate)|head|tail

这不是一只猫哦,cat命令是查看文件信息的命令
Linux C/C++ 开发工程师之路(2)_第3张图片
cat还可以这样玩!!!
Linux C/C++ 开发工程师之路(2)_第4张图片
如果把cat命令反着输入tac那么你查看的文件的信息会从文件的末端开始输出在你的shell上。在你的虚拟机上试一试???
head和tail分别是从文件的开头和文件的末尾显示数据,还可带参数例如
head -n 5 file ##显示文件开始的前五行
tail -n 5 file ##显示文件末尾的后五行
更多命令参数自己动手后试一试man 或者 –help一下,这里就不一一赘述了(肯定不是因为我懒^_^)

vim编译器,linux公认的神器

vim filename 进入到命令模式
命令模式不能编辑文件,如果要编辑文件要进入插入模式
按"i"进入插入模式
如果完成编辑,按”esc“推出插入模式,输入”:wq“ 保存退出
vim filename 如果文件名字不存在,会自动创建
vim 没有操作对象直接打开,编辑文件后要 :wq filename
注意:当文内容被错误更改,不想保存用 " :q! "  这表示强制退出不保存

这里写图片描述
Linux C/C++ 开发工程师之路(2)_第5张图片
编辑文件时需要按一下 ‘ i ’ 才可以进入文件编辑模式。

cd(change directory)切换工作目录

cd directory    ##切换工作目录到指定目录
cd -            ##切换工作目录到之前所在目录
cd ~           ##切换到自己的家目录
cd ~usernmae   ##切换到指定用户家目录
~+      ###当前目录
~-      ###当前目录之前所在目录
.       ###当前目录
..      ###当前目录的上一级

ls -lA 可以 显示当前目录的 . 和 .. 文件

ls(list)列出当前目录下的文件和目录

ls                      ##如果后面没有目标那么默认目标为当前目录
ls direcory|filename    ##列出文件或目录内容
ls -d direcotry         ##列出目录本身
ls -l filename|dorectory##列出文件或目录里面内容的属性(也可以直接使用ll展示当前文件和目录的属性)
ls -ld directory        ##列出目录本身属性
ls -a                   ##显示目录中的所有内容,包括以"."开头的隐藏文件

Linux C/C++ 开发工程师之路(2)_第6张图片

cp(cpoy)复制文件

记得自己man cp 或者 cp –help一下了解更多参数和命令用法
cp是新建文件的过程,即为新建一个和原文件完全相同的文件。

cp file file1 file2 ... filen 把前面n个文件复制到最后一个文件中去,cp带多个参数表示把前面的文件复制到最后一个文件中去。

cp file test                ###建立test文件模板为file
cp -r test test1            ###复制目录

Linux C/C++ 开发工程师之路(2)_第7张图片

mv(move)移动或重命名

通过 mv –help 可以获取mv的所有帮助

用法
Usage: mv [OPTION]... [-T] SOURCE DEST
or:  mv [OPTION]... SOURCE... DIRECTORY
or:  mv [OPTION]... -t DIRECTORY SOURCE...

mv 也可以去修改文件名

Linux C/C++ 开发工程师之路(2)_第8张图片

Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

Mandatory arguments to long options are mandatory for short options too.
–backup[=CONTROL] make a backup of each existing destination file
-b like –backup but does not accept an argument
-f, –force do not prompt before overwriting
-i, –interactive prompt before overwrite
-n, –no-clobber do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.
–strip-trailing-slashes remove any trailing slashes from each SOURCE
argument
-S, –suffix=SUFFIX override the usual backup suffix
-t, –target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY
-T, –no-target-directory treat DEST as a normal file
-u, –update move only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, –verbose explain what is being done
-Z, –context set SELinux security context of destination
file to default type
–help display this help and exit
–version output version information and exit

正则表达式

*       ###匹配0到任意字符
?       ###匹配单个字符
[[:alpha:]] ###匹配单个字母
[[:lower:]] ###匹配单个小写字母
[[:upper:]] ###匹配单个大写字母
[[:digit:]] ###匹配单个数字
[[:alnum:]] ###匹配单个数字或字母
[[:punct:]] ###匹配单个符号
[[:space:]] ###匹配单个空格

{}表示不存在的或者存在的
{1..9}      ###1-9
{a..f}      ###a-f
{1,3,5}     ###135
{a,c,e}     ###a c e
{1..3}{a..c}    ###1a 2a 3a 2a 2b 2c 3a 3b 3c

[]表示存在的
[a-C]       ###aA bB cC
[a-c]       ###aA或者bB或者c
[1-3]       ###1或者2或者3
[145]       ###1或者4或者5
[^abc]|[!abc]   ###除了a并且除了b并且除了c

简单的使用:
Linux C/C++ 开发工程师之路(2)_第9张图片

{}表示不存在或者存在的文件
[]表示存在的文件
所以创建文件时应当使用,{ },我刚才也在这里被坑了,用的touch file[a-z] 结果创建出来的,一个file[a-z]的文件,

Linux C/C++ 开发工程师之路(2)_第10张图片

你可能感兴趣的:(Linux,C/C++开发工程师之路)