首页 > 系统相关 >c++ linux基础学习第一课

c++ linux基础学习第一课

时间:2023-06-13 12:02:23浏览次数:45  
标签:文件 shell 命令 c++ 第一课 linux 权限 链接

课程目标:

1. shell 命令解析器

shell就是命令解析器,将用户命令翻译成内核能够识别的指令。

shell常用的快捷键:tab:补齐命令,补齐文件(包括目录和文件)

ctrl+a光标移动到头部,ctrl+e光标移动到尾部

2. linux下主要目录:

/bin 保存着二进制文件、可执行程序和shell命令

/sbin s是super user的意思,里面存放的是系统管理员使用的系统管理程序

/dev 在linux下一切皆为文件,用来保存设备文件。设备包含两大类 字符设备和块设备。

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

/root linux超级用户root的家目录

/usr unix系统资源,相当于windows的program files。 里面的/include目录中存放着.h头文件,/games目录中存放着小游戏

/etc 存放linux系统级别的配置文件

  /etc/passwd      man 5 passwd可以查看passwd文件的格式信息

  /etc/group      man 5 可以查看group文件的格式信息

  /etc/profile     系统的配置文件,修改该文件会影响这个系统下面所有的用户

/home 用户的家目录

 /opt 安装的第三方软件的目录

3.文件和目录操作相关的命令

ls -l 列出文件的详细信息,7部分内容

cd - 回到上一次的目录

which 查看一个命令所在的目录

touch 如果文件不存在,创建新文件,如果文件存在,更新文件的最后修改时间。

cp :  cp 源目录或文件  目标目录或文件,如果目标文件存在,则被覆盖,如果目标目录存在,则将源目录存放到目标目录的子目录中

查看文件内容的命令:cat more  less head tail。 tail -f test.log 实时显示日志的更新。

文件重定向 cat file1>file2,相当于cp file1 file2,可以起到复制文件的作用,1个>符号表示覆盖重定向,两个>表示追加

4. 软链接  ln -s 源文件 连接文件

使用相对路径创建软链接文件后,将源文件移动后,软链接就会失效,找不到指向的文件,因此源文件一定要使用绝对路径

软链接文件的大小是:路径+文件名的总字节数

5. 硬链接 ln 源文件 连接文件。硬链接不能建立在目录上,对绝对路径没有要求。

硬链接的本质是不同文件名所在的inode节点是相同的,相同的inode节点指向相同的数据块,所以他们的文件内容是一样的,文件内容会同步。

ls -li可以查看文件的inode

创建硬链接可以起到同步文件和保护文件的作用。对某个文件进行一次硬链接则硬链接计数加1,删除一个硬链接后硬链接技术减1,如果硬链接技术为0,则该文件会删除。

硬链接不能够建立在不同的文件系统上:硬链接文件和源文件的inode是相同的,文件系统的inode要求唯一,跨文件系统可能会使得inode不同,所以硬链接不能跨文件系统。

 

6.修改文件权限、用户、用户组

(1)修改文件权限(权限由三部分组成:拥有者的权限 同组用户的权限 其他用户的权限)

文字设定法:

语法:chmod [who] [+||-||=] filename, +加权限,-减权限,=赋予权限

  who:  a所有用户   o其他用户   u当前用户即所有者   g同组用户

数字设定法:

语法:chmod [+||-||=] filename

  0表示没有权限,1表示执行权限(x),2写权限(w),4表示读权限(r)

  数字设定法使用的是3位的8进制数

 7.find命令

根据查找的文件名、文件类型、文件大小、最大最小深度、时间(创建时间 访问时间 修改时间)等find命令有参数 -name  -type   -size -maxdepth/mindepth  -ctime/atime/mtime 

find path -name "*.c" -exec shell命令 {} \;

find path -name "*.c" -ok shell命令 {} \;     //ok比较安全,特别是在执行rm命令的时候,会询问用户是否要执行语句中的shell命令

find path -name "*.c" | xargs shell命令    //  |表示管道符

8.grep命令 以及grep和find命令的结合使用 

 9.软件安装

 

标签:文件,shell,命令,c++,第一课,linux,权限,链接
From: https://www.cnblogs.com/yz-lucky77/p/17474245.html

相关文章

  • C++ Windows.h max宏与std::max冲突问题解决
    C语言引入的宏支持了一定程度的元编程,但它仅仅是简单的字符串替换,这种“六亲不认”的操作很容易导致一些编译错误。这篇文章介绍了一种场景:项目同时引入了老的C头文件,里面用宏定义了一些宏函数;还引入了C++的头文件,里面用其他方式定义了一些同名函数。具体到问题本身,这个......
  • 【Linux】CentOS防火墙操作:开启端口、开启、关闭、配置
    ......
  • Linux打包C++应用deb脚本
    目录结构├──CMakeLists.txt├──README.md├──scripts│  └──build_deb.sh├──src│  └──app.cpp└──VERSION打包脚本#!/bin/bashPROJECT_NAME="my-app"PROJECT_PATH=$(cd"$(dirname${BASH_SOURCE[0]})";cd..;pwd)MAINTAINER="jojo......
  • linux系统nfs搭建-cnblog
    Linux系统nfs搭建首先介绍一下NFS:​ NFS(NetworkFileSystem)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。1、虚拟机nfs环......
  • C/C++学习(10)关于数组、内联函数、虚函数的错题集锦
    1、顺序存储方式不仅用于存储线性结构,还可以用于存放非线性结构,如完全二叉树是属于非线性结构,但其最佳存储方式是顺序存储方式。 2、数组名有两重属性:1)数据结构的一个对象(数据结构为当前数组),在java中数组就是一个对象。2)某些情况下自动退化成指向第一个元素的常量指针。 3、有两......
  • C++中虚拟继承问题
    #include<iostream>usingnamespacestd;classA{public: A(char*s){ cout<<s<<endl; } ~A(){}};classB:virtualpublicA{public: B(char*s1,char*s2):A(s1){ cout<<s2<<endl; }};classC:virtualpublicA{publi......
  • C++学习(65)
    1关于new运算符,错误的是DA可以用来动态创建对象和对象数组B使用它创建的对象和对象数组可以使用运算符delete删除C使用它创建对象时要调用构造函数D使用它创建对象数组时必须指定初始值分析:D可以不指定初始值,调用默认构造函数进行默认初始化。int*x=newint();//不传值,默认初始化......
  • #yyds干货盘点#linux之curl使用技巧
    获取页面内容>curlhttps://json.im显示HTTP头>curl-Ihttps://json.imHTTP/1.1200OKServer:openrestyDate:Fri,04Jun202107:38:32GMTContent-Type:text/htmlContent-Length:12864Last-Modified:Thu,29Apr202101:39:01GMTConnection:keep-aliveVa......
  • C++地址值为1(情况说明)
    关于C++中地址值打印出来为1的情况;以下是测试代码:#include<iostream>#include<iomanip>usingnamespacestd;intmain(){constvolatileinta=10;cout<<&a<<endl;int*p=(int*)&a;*p=12;cout<......
  • Linux shell 之 for循环变量有空格的问题——IFS变量
    在使用shell的for循环时,如果循环的字符串中间有空格,那么循环时会自动分割,下面是解决的方法 1只需要更改shell分隔符即可2在for循环之前修改IFS变量,示例:3OLDIFS="$IFS"#备份旧的IFS变量4IFS=$'\n'#修改分隔符为换行符56foriin`cataaa`#aaa文件......