Linux_基础编程day01

将近日学习Linux基础编程,系统编程,网络编程的word笔记搬运过来,图片无法直接粘贴,就丢失掉了。

日后工作学习中使用与扩充维护还是word笔记。

基础编程day01

内容简介:

         Linux简介

         shell基本操作

                   自动补全,历史记录,光标移动,删除字符ctrl+h d u k

         Linux目录结构

                   /,usr,usr/local

         绝对路径/,相对路径,., .., cd -

         文件目录相关命令

                   tree,ls,三种人的rwx权限,cp,rm,mv,mkdir(-p)

         查看文件内容

                   cat,more等

         软硬链接

                   Inode,ln(-s)

         修改文件权限

                   chmod,~umask设置默认文件权限

         查找

                   find(-name,-type, -size, -atime),grep

         压缩包的管理

                   tar,rar,zip,unzip

Linux介绍

是类unix的操作系统

Linux操作系统的内核的名字也是Linux

Ubuntu主版本号副版本号,副版本号:4月是稳定版本,10月是beta版本,主版本号:双数是长期支持版本,单数是短期支持版本

不同颜色代表不同类型文件

白色普通文件

绿色可执行文件

红色压缩文件

蓝色目录

青色链接文件 快捷方式

黄色设备文件 block块,char字符,fifo管道

灰色其他文件

带-还是- - 还是不带任何

命令参数前是否带- System V风格的,带-;BSD风格的参数前不带-

单词前--,两个-

字母前-,一个-

Shell是什么

窗口的名字叫虚拟终端,和用户进行交互

Shell是在后台运行的应用程序,输入命令后回车shell开始工作

Shell会解析输入的命令,搜索环境变量

环境变量:路径,比如安装了Qt,就把它的路径配置到环境变量中,当QT加载DLL的时候,需要将DLL的路径设置到环境变量中

找到了输入的命令,运行这个程序,在终端下会有对应的输出

 

Shell-unix

Bash-linux

命令解析器的作用:

解释用户输入的命令,执行对应的操作

         去指定路径搜索用户输入的命令

         环境变量—路径

1     命令或目录补齐

快捷键:tab

 

2.    遍历历史记录

History

Crtl+p;ctrl+n;向上;向下

 

3.    光标移动

         左ctrl+b;右ctrl+f;头部+a;尾部+e;(backward,forward,ahead,end)

4.    删除字符

ctrl+h删除光标之前的字符,ctrl+d删除光标之后的字符

光标盖住的字符就是光标后面的字符

         ctrl+u删除前面所有;ctrl+k删除后面所有

Linux的目录结构

树,根目录‘/’表示,没有磁盘符

不同的子目录有不同的功能

根目录下常见目录:

 

1 /bin:binary:可执行程序,shell命令,内建命令不会显示如cd

.在linux中表示当前目录

./ls

 

2 /dev:设备目录,在linux下一切皆文件

3 /lib:linux运行时需要加载的一些动态库

4 /mnt:手动的挂载目录

5 /media:自动的挂载目录

6 /root:linux的超级用户的家目录,超级用户运行时需要的文件存放在此

7 /usr:unix system resourceunix操作系统的资源目录

                   头文件:stdio.hstdlib.h

                   游戏:

                   用户安装的程序 /usr/local

8 /etc:存放配置文件(包括操作系统和第三方)

         /etc/passwrd:存放当前linux操作系统下用户的信息

         /etc/group

         man5 passwrd   5是章节号

9 /opt:安装第三方的应用程序

10 /home:是linux操作系统中所有用户的家目录(宿主目录)

         /home/ye

11 /tmp:存放临时文件 重新启动电脑时,该目录清空

12 /boot:存放的是开机启动项,修改可能导致无法开机

绝对路径与相对路径 . / ..

1 绝对路径:windows下是用盘符来表示的,linux是从根目录/开始表示的

         ~代表用户的家目录,宿主目录

         /home/ye/zoo/animal/food

 

2 相对路径:从当前的目录开始表示。 ./zoo/animal/food   ./可加可不加

 

3 .和..目录  

         .当前目录 ./当前目录下的东西

         ..当前目录的上一级目录cd.进入上一级目录中

         cd– 切换目录

4

         Ye:当前登录的用户

         @:在

         Ye-virtual-machine:主机名

         ~:用户的家目录

         $:当前用户是普通用户

         #:当前用户是超级用户

 

文件目录相关命令:

1 tree

         查看目录的内容

         tree查看当前的目录

         treedir查看指定目录

         需要安装:sudo apt-getinstall tree

2 ls

         功能:查看文件或目录

         参数:

                   -a显示所有文件

                            隐藏文件:文件或目录名前有‘.’

                   -l(list)显示详细信息

                   -F如果是目录的话,在后面加一个/

rwx文件所有者权限:读,写,执行

r-x文件所属组用户:读,执行

r-x其他人:读,执行

1:硬链接计数

第一个root:文件所有者是谁

第二个root:文件所属组的名字

70952:文件大小 如果文件是目录,大小是4K

日期

文件名

Linux下文件的类型:

         7种,第一个字符表示文件的类型

         普通文件:-

                   .txt压缩包 可执行文件

         目录:d

         符号链接,软连接:l (link)

         管道:p (pipe)

         套接字:s (socket)

         字符设备:c (char计数)

                   鼠标,键盘

         块设备:b

                   U盘,硬盘

Linux下三种类型的用户

文件所有者:user

文件所属组用户:group

其他人:other

3 cd 切换目录

         cd目录

         如何进入家目录

                   cd绝对路径(/home/ye)

                   cd~

                   cd 不加东西就是进入当前用户的家目录

         在临近的(最后两个相邻的)两个目录之间切换

                   cd– 适用于目录很长的情况

4 pwd

显示当前目录 print work directory

5 mkdir

         mkdir文件名

         -p 一次性地创建多级目录(删除是-r

         mkdiraa/bb/cc –p

6 touch

创建空文件

         touch文件名 如果文件不存在 则创建文件

         文件存在:更新文件的时间

7 rmdir

删除空目录

         rmdir空目录的名字

8 rm 删除

删除目录是递归的方式 -r

目录:

         rmfile -r

         rm目录名 –r

                   -r递归的方式处理

         注意问题:

                   删除之后,很难恢复

         删除提示 –i

                   rmfile -ri

 文件:

         rm文件名 –i 删除时会添加提示信息

 

9 cp 拷贝

         cp要拷贝的文件(file1) file(不存在)

                   创建file,将file1的内容拷贝到file中

         cpfile1 file(存在)

                   file1会覆盖file

         cpfile dir(存在)文件和目录拷贝

                   把file拷贝到dir中

         cpdir(存在) dir1(存在)-r目录和目录拷贝

                   目录是树状的,拷贝时需要递归地拷贝 -r

                   将dir的内容(不包括dir)拷贝到dir1中

         cpdir(存在) dir1(不存在)-r目录和目录拷贝

                   拷贝时需要递归地拷贝-r

                   将dir中的内容(不包括dir)拷贝到dir1中

10 mv 改名或者移动文件

         mvfile1 file2

         改名

                   mvfile(存在) file1(不存在)--file为文件

                   mvdir(存在) dir1(不存在)

         移动:

                   mvfile(文件) dir(存在的目录)

                            fileàdir中

                   mvdir(存在) dir1(存在)

                            把dir移动到dir1中

                   mvfile(存在) file1(存在)

                            file文件覆盖file1文件,file文件被删除

 查看文件内容

11 cat 显示文件内容到终端

         catfilename 把文件的内容打印到终端

         终端能显示的字符是有上限的

12 more

         morefilename

         q退出,回车向下浏览一行,空格是翻页

         没有回头路

13 less

         lessfilename

         ctrl+p向上浏览一行,ctrl+n或者回车向下浏览一行

         空格或者page down向下翻页

         Pageup向上翻页

14 head

从文件头部开始 显示指定的行数

         head-5 stdio.h 显示5行

         默认是显示10行

15 tail

         同head

软硬链接 ln

      软连接—快捷方式

                   ln–s 文件名 快捷方式的名字

                   路径的字节数就是mystdio.h文件的大小:7

                   文件名使用绝对路径,那么软连接移动到其他目录也可使用

                   目录也可以创建软连接

      硬链接

                   创建硬链接和引用很像

                   ln文件名 硬链接的名字 

                   磁盘à数据块à索引节点号inode定位文件  文件名是给用户看的,访问文件其实是访问inode索引节点号。

                   创建的硬链接指向的inode索引节点号和文件名是一样的,所以创建硬链接并不会占用额外的磁盘空间

                   作用:     创建新文件,硬链接计数1

                                     每增加一个硬链接,硬链接计数加1

                                     若硬链接计数为0,那么数据块就是被废弃的数据块,操作系统不会保护这个数据块,使得它里面的内容可以被覆盖掉

                                     格式化磁盘会使得文件的引用计数变为0,但是文件不会被删除

                   使用场景:

                            磁盘上有一个文件/home/ye/hello

                            在其他多个目录中也能管理hello,并且实时同步,就创建硬链接

修改文件或目录权限-chmod

文字设定法

chmod who[+-=] mode 文件名

         who:

                   u-user文件所有者

                   g-group文件所属组

                   o-other其他人

         +

         -

         =覆盖

         mod:

                   r:读

                   w:写

                   x:执行

                   -:没有任何权限

题目:rwxrwxrwx – file

         文件所有者和其他人减去读写权限

                   所有者u

                   其他人 o

                   读r

                   写w

                   减去-

         chmod u+r,g-x file.c 用逗号做间隔

         a  all(默认的)所有三类人

 

数字设定法

chmod [+-=] mod 文件名

=是覆盖,默认是不写的

         mode:八进制的数 0777

                   r:4

                   w:2

                   x:1

                   -:0

                   权限加满:4+2+1 = 7

         题目:

                   所有者和同组用户设置为-wx

                   wx:3

                   其他人只有执行权限:1

                   chmod 0331 file; 0是八进制 第一个3是文件所有者 第二个是用户所属组 最后一位是other

chmod默认的保护机制 chmod –w file  other的w权限不会被设置,需要显式地aw

0331会和~umask相与,得到的结果作为最终设置的值

 

chown修改文件地所有者或所属组

         chown新的所有者 文件名

         chown新的所有者:新的组文件名

chgrp 修改文件所属用户组

         chgrp新的组 文件名

 

目录一定要有执行权限,否则就打不开了

 

文件的查找和检索

根据文件属性查找find

         文件名:

                   find查找的目录 –name “查找的文件名”

                            不加””时,使用通配符可能会产生解析错误

                            通配符*可以匹配字符串或字符  ?只能匹配一个字符

         文件类型

                   find查找目录 –type 文件类型

                            普通文件:f

                            目录:d

                            符号链接:l

                            管道:p

                            套接字:s

                            字符设备:c

                            块设备:b

         文件大小

                   find查找的目录 –size+10k

                   +大于: +10k

                   -小于: -10k

                   等于: 10k

                   单位

                            k-小写

                            M-大写

                   大于10k,小于100k, 每个参数前面都需要加size

                   find. –size +10k –size -100k

                  

         按日期

                   创建日期:-ctime –n/+n                  (create)

                            -n代表:n天以内的才是

                            +n代表:n天以前的都是

                   修改日期:-mtime –n/+n    (modify)

                   访问日期:-atime –n/+n                  (access)

 

         深度:最深搜索到第几层/搜索n层以上的目录

                   -maxdepthn(层数) 搜索n层之内的

                   findtest –maxdepth 1

                   -mindepthn(层数) 搜索n层以上的

 

         高级查找

                   例:查找指定目录,并列出目录的详细信息 –exec和-ok的区别

                            find./ -type d –exec ls –l {} \;

                            find ./ -type d –exec shell命令 {} \;

                            find./ -type d –ok shell命令{} \;

                                     ok比较安全,会有选择提示,一个y会ls –l一个目录

                            find./ -type d | xargs ls –l

                                     |是管道,find的内容默认显示到终端,加管道会将内容放到管道

                                     管道分为两端, write端和read端,管道里的数据会使用ls–l这个命令

                                     管道可以看作一个缓存区,是内核分配的

搜索总结:find 搜索路径参数(按照什么搜索) 搜索的内容

grep  根据文件内容查找

         grep–r(有目录递归地搜索)“查找的内容” 搜索的路径

         搜索家目录中带hello world的字符串的文件

                   grep–r “hello world” ~

         查找到后,想进入文件查看这一行 -n

                   grep–r -n “hello world” ~

总结:

         find 搜索路径参数搜索内容

         grep 搜索内容参数搜索路径

 

压缩包的管理

1 linux下常见压缩格式

         .gz– gzip         

-k保留源文件默认是不保留的

                   无法对目录进行压缩

                   gzipfile1 file2 会压出来两个压缩文件

         .bz2– bzip2 缺点同上

 

2 常用压缩命令
1 tar – 打包

                   参数:

                            c– 创建压缩文件

                            x– 释放压缩文件

                            v– 打印提示信息

                            f– 指定压缩包的名字

                            z– 使用gzip压缩文件 --- XXX.tar.gz

                            j– 使用bzip2的方式压缩文件 --- XXX.tar.bz2

                   压缩:

                            tar参数 压缩包的名字 原材料

                                     tarzcvf test.tar.gz file dir

                   解压缩

                            tarzxvf test.tar.gz

                            tarzxvf test.tar.gz –C dir解压到指定目录

总结

         压缩

                   tar参数 压缩包名 原材料

         解压缩

                   tar参数 压缩包名 参数(-C) 解压路径

2 rar

                   rar需要安装

                   sudoapt-get install rar

                   压缩:

(缺少参数a)

                   rara 压缩包名(不需要指定后缀)原材料 –r(用递归的方式,子目录也压入)

                            压缩参数加-r,将目录中的子目录也压缩

                            如果不加-r,那么只会压入文件

                   解压缩:

                   rarx 压缩包名 解压目录(默认是当前目录)

总结

压缩:

         tar/rar/zip 参数 压缩包名 原材料

解压缩:

         tar/rar 参数 压缩包名 参数 解压路径

                   rar解压缩到指定目录不需要参数(-C)

3 zip/unzip

         压缩

                  zip 参数 压缩包名 原材料(bk hello)

                            如果有目录 –r 才会把子目录都压入 不加的话默认是不压缩目录的

         解压缩

                   unzip压缩包的名字 –d 解压目录

总结:

zip 参数 压缩包名 原材料(bk hello) (-r)

         unzip 不加参数 压缩包的名字 –d解压目录
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值