当前位置: 首页 > news >正文

Linux2 指令(二)

常用指令2

  • 1. 文件权限指令
    • 目录的三个权限
    • chmod
    • 改变文件拥有者
    • 改变文件所属组
    • 关于默认文件权限
  • 2. 软件安装
    • 更新软件包列表
    • 升级软件包
    • 安装软件包
    • 卸载软件包
    • 搜索软件包
    • 查看软件信息
  • 3. gcc/g++ 编译命令
    • 预处理阶段
    • 编译阶段
    • 汇编阶段
    • 链接阶段
    • 补充
    • 4. git
      • 配置用户姓名 - name
      • 配置用户电子邮件 - email
      • 仓库初始化 - init
      • 克隆仓库 - clone
      • 添加文件到暂存区 - add
      • 提交更改 - commit
      • 查看仓库状态 - status
      • 查看提交历史 - log
      • 创建分支 - branch
      • 切换分支 - checkout
      • 合并分支 - merge
      • 添加远程仓库 - remote
      • 推送更改到远程仓库 - push
      • 从远程仓库拉取更改 - pull

1. 文件权限指令

目录的三个权限

  • 读权限 r :决定用户能否查看目录内文件信息
  • 写权限 w:决定用户能否在目录内增删改查文件
  • 执行权限 x:决定用户能否进入目录

chmod

drwxrwxrwx
第一个字母表示文件类型,后面三个字母为一组,分别表示拥有者,所属组,other对此文件的权限

  • r:读权限
  • w:写权限
  • x:执行权限
  1. 文件权限只能由root或者拥有者修改
  2. 可执行的文件前提必须是:可执行 + x权限
    修改权限可以用chmod
chmod u+rwx 文件名	#给文件的拥有者添加rwx权限
chmod g+rwx 文件名	#给文件的所属组添加rwx权限
chmod o+rwx 文件名	#给文件的other添加rwx权限
chmod a+rwx 文件名	#给文件的所有人添加rwx权限chmod u-rwx 文件名	#给文件的拥有者撤销rwx权限
chmod g-rwx 文件名	#给文件的所属组撤销rwx权限
chmod o-rwx 文件名	#给文件的other撤销rwx权限
chmod a-rwx 文件名	#给文件的所有人撤销rwx权限

此外,每个人的权限用一个八进制数字来表示。
x = 1、w = 2、r = 4、组合起来rwx = 7

chmod 000 文件名	#取消文件的所有人权限
chmod +t 文件名	#给文件添加粘滞位,该文件只能被拥有者,root删除

改变文件拥有者

chown 新的拥有者名 文件名	#改变文件拥有者

改变文件所属组

chgrp 新的所属组名 文件名	#改变所属组

关于默认文件权限

Linux默认创建文件权限:普通文件0666,目录文件0777
umask可以更改起始文件权限权重,最终权限 = 起始权限 & (~umask)

umask 0002	#创建普通文件最终权限为0664,创建目录最终权限为0775

2. 软件安装

本文内容是基于ubuntu下的Linux,因此是利用apt安装软件

更新软件包列表

sudo apt update	#在安装或升级软件之前,需要先更新软件包列表

升级软件包

sudo apt upgrade	#根据 apt update 获取的最新软件包信息,对已经安装的软件包进行升级

安装软件包

sudo apt install 软件包名	#安装软件

卸载软件包

sudo apt remove 软件包名	#卸载软件,但会保留配置文件
sudo apt purge 软件包名	#卸载并且删除配置文件

搜索软件包

apt-cache search 软件包关键词	#在仓库中搜索有关的软件

查看软件信息

apt-cache show 软件包名·#输出软件包的详细信息

3. gcc/g++ 编译命令

基础格式:gcc 选项 要编译的文件 选项 目标文件
c语言文件到可执行文件一般需要经过“预处理、编译、汇编、链接”

预处理阶段

预处理主要干了四件事:宏替换,头文件展开,条件编译、去除注释
-E:在预处理结束后停止编译过程
-o:指要生成的目标文件
预处理完毕生成 .i 文件

gcc -E test.c -o test.i

编译阶段

生成汇编代码
-S进行编译而不进行汇编,仅生成汇编代码

gcc -S test.i -o test.s

汇编阶段

生成机器可识别的代码
-c把汇编代码转换成 .o 的二进制目标代码

gcc -c test.s -o test.o

链接阶段

生成可执行文件或者库文件

  1. 静态库:编译链接时把库文件代码全部加入到可执行文件中(可执行文件会变大),运行时不需要库文件了。静态库文件后缀一般为.a
  2. 动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”
  3. gcc 在编译时默认使用动态库。
gcc test.o -o test

补充

Linux下gcc/g++出来的二进制程序默认是release模式,debug模式必须在编译时添加-g选项
以上只是细分了阶段,可以直接从.c文件编译成可执行文件
如:gcc/g++ 要编译的文件 -o 目标文件
如果需要加一些语言的标准,直接在编译时后面添加 -std=标准(如c++11,c99)

4. git

配置用户姓名 - name

git config --global user.name "your name"
# 这里的Your Name是你希望在提交记录中显示的名字。

配置用户电子邮件 - email

git config --global user.email "your@email.com"
# 这是用于识别提交者身份的重要信息。

仓库初始化 - init

git init
# 在当前目录下创建一个新的 Git 仓库。这会在目录中生成一个隐藏的.git文件夹,用于存储仓库的所有版本控制信息。例如,在一个新的项目文件夹中执行git init后,该文件夹就变成了一个可以被 Git 管理的仓库。

克隆仓库 - clone

git clone repository-url
# 用于从远程服务器(如 GitHub、GitLab 等)克隆一个现有的 Git 仓库到本地。其中 repository - url 是远程仓库的地址
# 这会在本地创建一个和远程仓库同名的文件夹,并将远程仓库的所有内容(包括代码、文件历史等)下载到这个文件夹中。

添加文件到暂存区 - add

git add filenames
# 将指定的文件添加到 Git 的暂存区。暂存区是一个中间区域,用于准备要提交的文件修改。
# 如果想添加目录下的所有文件,可以使用git add.(注意,“.” 表示当前目录下的所有文件和子目录,包括新建的文件和修改后的文件)。

提交更改 - commit

git commit -m "commit - message"
# 将暂存区的文件提交到本地仓库,并添加一个提交说明(commit - message)。提交说明应该简洁明了地描述本次提交所做的更改。

git commit --amend

  • 它允许你修改最近一次的提交
  1. 当你只想要修改最近一次提交的提交信息时,执行git commit --amend命令后,Git 会打开默认的文本编辑器(可以通过git config命令设置),在编辑器中,你可以修改提交信息。修改完成后保存并退出编辑器,Git 就会使用新的提交信息更新最近一次的提交。
  2. 如果你在提交后发现遗漏了一些文件,首先需要将这些文件添加到暂存区(使用git add命令),然后执行git commit --amend。Git 会将暂存区中的这些文件添加到最近一次提交中,并且更新提交时间为当前时间。

查看仓库状态 - status

git status
# 显示当前仓库的状态,包括哪些文件被修改了、哪些文件在暂存区、哪些文件没有被跟踪等信息。
例如,在修改了一些文件后执行git status,会看到类似这样的信息:
On branch master(显示当前所在分支是master)
Changes not staged for commit:(未暂存的更改)
modified: file1.txt(列出被修改但未添加到暂存区的文件)
Untracked files:(未被跟踪的文件)
new_file.cpp(列出新创建但未添加到 Git 的文件)

查看提交历史 - log

git log
# 显示仓库的提交历史,包括每次提交的作者、日期、提交说明和唯一的提交哈希值等信息。
例如,执行git log后会看到类似如下的输出:
commit a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6(提交哈希值)
Author: John Doe <johndoe@example.com>(作者信息)
Date: Mon Jan 01 12:00:00 2024 -0500(提交日期)
Add new functionality to the system(提交说明)

创建分支 - branch

git branch branchname
# 在本地仓库中创建一个新的分支。例如,git branch new_feature会创建一个名为new_feature的新分支。

切换分支 - checkout

git checkout branch - name
# 切换到指定的分支。例如,git checkout new_feature会从当前分支切换到new_feature分支。

合并分支 - merge

git merge branch - name
# 将指定分支合并到当前分支。例如,在master分支上执行git merge new_feature,会将new_feature分支的内容合并到master分支。

添加远程仓库 - remote

git remote add [remote - name] [remote - repository - url]
# 为本地仓库添加一个远程仓库。
例如,git remote add origin https://github.com/user/my_repository.git,这里origin是远程仓库的名称(通常使用origin),后面是远程仓库的地址

推送更改到远程仓库 - push

git push [remote - name] [branch - name]
# 将本地分支的更改推送到远程仓库。
例如,git push origin master会将本地master分支的内容推送到名为origin的远程仓库的master分支。

从远程仓库拉取更改 - pull

git pull [remote - name] [branch - name]
# 从远程仓库拉取指定分支的更新并合并到本地对应的分支。
例如,git pull origin master会从名为origin的远程仓库的master分支拉取更新并合并到本地master分支。

http://www.mrgr.cn/news/69569.html

相关文章:

  • ⾃动化运维利器 Ansible-变量
  • 工程化实战内功修炼测试题(二)
  • 深度解析 Linux 系统下的 top 命令
  • Hbase Shell
  • SpringCloud学习笔记
  • 泷羽sec学习打卡-Linux基础
  • 计算机网络(3)
  • 基于Springboot+Vue的心理咨询系统 (含源码数据库)
  • 如何选情绪龙头
  • 单页面应用和多页面应用区别及优缺点
  • 【Docker容器化技术】docker安装与配置、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
  • 从认识 VNode VDOM 到实现 mini-vue
  • 【含文档】基于ssm+jsp的流浪动物收养系统(含源码+数据库+lw)
  • 关于我的编程语言——C/C++——第八篇
  • 大华Android面试题及参考答案
  • C#实现:电脑系统信息的全面获取与监控
  • cell队列监控
  • Redis相关技术内容
  • 花指令例子
  • Java期末复习暨学校第二次上机课作业
  • Python | Leetcode Python题解之第554题砖墙
  • 系统安全第七次作业题目及答案
  • 高并发内存池介绍
  • 【JAVA项目】基于jspm的【医院病历管理系统】
  • 基于java+SpringBoot+Vue的课程答疑系统设计与实现
  • openpyxl处理Excel模板,带格式拷贝行和数据填入