首页 > 系统相关 >【Linux学习】基本指令其二

【Linux学习】基本指令其二

时间:2024-10-01 10:54:15浏览次数:13  
标签:文件 其二 目录 Test 指令 Linux test txt hello

前言

【Linux学习】基本指令其一
第一篇中介绍Linux中最基本的命令, 现在继续说明后续指令。

一、man指令

Linux的命令有很多参数,可以通过查看联机手册获取帮助。
man 命令用于查看 Linux 系统中的手册页,提供了关于各种命令和程序的详细信息。
基本语法如下:

man [选项] 命令

手册页中使用方向键进行滚动,按q退出。
比如: 使用man ls命令后可以看到最下一行的提示。

Manual page ls(1) line 1 (press h for help or q to quit) # 按q 或者 ctrl + c退出

简单示例:

-> man ls   # 查看ls指令的手册

常用选项:

  • -k:根据关键词搜索手册页。
  • -f:显示指定命令的简短描述。
  • -a:显示所有匹配的手册页,而不仅仅是第一个。
  • -c:清除缓存的手册页。

搜索与copy相关的命令。

  man -k copy # 凡是命令描述中带有copy的均会被显示打印出来。

显示指定命令的简单描述

➜  ~ man -f cp	# cp命令下文说明
cp (1)               - copy files and directories
cp (1p)              - copy files

man 后面可以跟自己

-> man man

在这里插入图片描述

Linux 手册页有8章内容:
你提到的分类是 Linux 手册页的不同部分,具体说明如下:

  1. 普通命令:指用户在命令行中可以执行的命令,如 lscp 等。
  2. 系统调用:如 openwrite 等,内核提供的功能,可以通过 C 语言调用,相关头文件通常在手册中有说明。
  3. 库函数:如 printffread 等,函数在标准库中定义,提供更高级的功能。
  4. 特殊文件:通常指 /dev 目录下的设备文件,表示设备的接口。
  5. 文件格式:描述特定文件格式的手册,如 passwd 文件,解释其各字段的含义。
  6. 游戏相关:特定于游戏的命令和功能,由各个游戏自己定义。
  7. 附件和变量:如 environ 这样的全局变量的说明。
  8. 系统管理命令:需要超级用户权限的命令,如 ifconfig,用于系统配置和管理。

通过 man 命令,你可以访问这些不同的手册部分

man num ... # 只在第num章节找

比如

man 2 open   # 查看系统调用
man 3 printf # 查看库函数
man 5 passwd # 查看文件格式
man 8 ifconfig # 查看系统管理命令

二、echo指令 & cat指令

功能: 用于输出字符串变量的值到标准输出(通常是终端)

➜  ~ echo hello,world # 输出到终端上
hello,world
➜  ~ echo "hello world" # 以字符串的形式输出到终端
hello world
➜  ~ name="David" # 创建一个变量
➜  ~ echo "hello,$name" # 格式化打印
hello,David

如果我们将字符串写入文件呢?

cat指令作用: 查看目标文件中的内容
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

➜  ~ mkdir Test # 创建一个Test目录
➜  ~ cd Test # 进入到该目录中
➜  Test ls # 初始为空目录
➜  Test echo 'hello,Linux'>test.txt # 将’hello,world‘写入文件test.txt中
➜  Test cat test.txt # 打印文件内容
hello,Linux # 结果
➜  Test ls # 再次查看目录信息
test.txt # 当前目录创建了一个新文件test.txt

我们键盘输入的内容被打印到文件中而不是显示器中,这样的操作叫输出重定向,上面第二个输出方式就叫做输出重定向, 它使得输出被保存在文件中。 重定向过程中,如果当前目录没有该文件,则创建该文件并将字符串写入。
如果已经存在呢?

➜  Test cat test.txt
hello,Linux
➜  Test echo 'hello,C!'>test.txt
➜  Test ls
test.txt
➜  Test cat test.txt
hello,C! # 原test.txt的内容被覆写了。

如果要采取追加的方式呢?

➜  Test echo 'hello,Linux'>>test.txt # >> 追加重定向
➜  Test cat -n test.txt # -n 是cat指令的选项, 对所有输出行进行编号
     1	hello,C!
     2	hello,Linux
  • 使用 > 进行输出重定向时,如果文件已存在,内容将被覆盖。
  • 如果希望将输出追加到现有文件中,可以使用 >>

三、cp指令

基本语法:cp [选项] 源文件/目录 目标文件/目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录。
若同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

同一目录下拷贝
同一目录下拷贝文件,若后者是一份新文件则注意不要重名。

➜  Test ls
test.txt
➜  Test cp test.txt test2.txt # 当前目录下拷贝同时创建一个新文件
➜  Test ls
test2.txt  test.txt
➜  Test cat test.txt
hello,C!
hello,Linux
➜  Test cat test2.txt # 拷贝文件内容相同
hello,C!
hello,Linux

如果试图拷贝一份重名文件

➜  Test cp test.txt test.txt
cp: ‘test.txt’ and ‘test.txt’ are the same file # 错误信息

已有文件则直接拷贝内容,无创建过程:

➜  Test echo > test2.txt # 利用重定向将test2.txt文件清空
➜  Test ls test2.txt
test2.txt
➜  Test cat test2.txt # 验证清空该文件了

➜  Test cp test.txt test2.txt # 拷贝内容到已有文件上
➜  Test cat test2.txt # 打印结果
hello,C!
hello,Linux

不同目录下拷贝文件

➜  Test mkdir dir1 # 当前目录下, 新建一个dir1目录
➜  Test cp test.txt dir1/test.txt # 拷贝一个文件在dir1下, 不同目录允许重名文件
➜  Test cat dir1/test.txt # 打印观察
hello,C!
hello,Linux

常用选项

-f 或 –force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 –interactive 覆盖文件之前先询问用户, 防止覆盖一些重要文件。
-r 递归复制目录及其内容,包括所有文件和子目录。
-功能与 -r 相同,递归处理目录及其所有内容,通常可以互换使用

四、mv指令

mv 命令是 “move” 的缩写,用于移动文件或目录,以及重命名文件或目录。
它是 Linux 系统中常用的命令,特别适用于备份操作。
语法

mv [选项] 源文件或目录 目标文件或目录
  1. 重命名文件或目录
➜  Test ls
dir1  dir2  test2.txt  test.txt
➜  Test mv test2.txt test.c # 当前目录下的test2.txt进行重命名
➜  Test ls
dir1  dir2  test.c  test.txt
➜  Test mv dir2 dir # 修改目录名
➜  Test ls
dir  dir1  test.c  test.txt
  1. 移动文件或目录到新目录
➜  Test tree ./
./
├── dir
│   └── test.txt
├── dir1
│   └── test.txt
├── test.c
└── test.txt

2 directories, 4 files
➜  Test mv test.c ./dir # 将当前目录的test.c文件移动到dir目录下。
➜  Test tree ./
./
├── dir
│   ├── test.c
│   └── test.txt
├── dir1
│   └── test.txt
└── test.txt

2 directories, 4 files

注意到当前目录,dir目录,dir1目录下均有同名的test.txt文件。

  • -i:在覆盖现有文件之前询问用户确认。
    mv -i source.txt destination.txt
    
➜  Test mv -i test.txt ./dir/test.txt # 可以发现两者是重名文件
mv: overwrite ‘./dir/test.txt’? n # 询问是否覆写? 这里拒绝
➜  Test tree ./ # 打印应该与先前一样。
./
├── dir
│   ├── test.c
│   └── test.txt
├── dir1
│   └── test.txt
└── test.txt

2 directories, 4 files

移动时,并重命名。

➜  Test mv test.txt ./dir/test2.txt
➜  Test tree ./
./
├── dir
│   ├── test2.txt
│   ├── test.c
│   └── test.txt
└── dir1
    └── test.txt

2 directories, 4 files
  • -f:强制移动文件,覆盖目标文件而不询问。
 mv -f source.txt destination.txt
➜  Test tree ./
./
├── dir
│   ├── test2.txt
│   ├── test.c
│   └── test.txt
└── dir1
    └── test.txt

2 directories, 4 files
➜  Test mv -f ./dir1/test.txt ./dir/test.txt # 不询问直接覆写文件。
➜  Test tree ./
./
├── dir
│   ├── test2.txt
│   ├── test.c
│   └── test.txt
└── dir1

2 directories, 3 files
  • -u:仅在源文件比目标文件新时移动。
    mv -u source.txt destination.txt
    

五、which指令

功能:查找指令所在的位置

while 指令

示例:

➜  Test which echo
/usr/bin/echo # echo指令路径, 下面同理
➜  Test which cat
/usr/bin/cat
➜  Test which cp
/usr/bin/cp
➜  Test which mv
/usr/bin/mv

六、clear指令

clear 指令用于清除终端屏幕上的内容,使其变得干净,通常用于提升可读性。执行 clear 命令后,光标会移动到屏幕的左上角。

clear

七、alias

alias是用于创建命令的别名。

➜  Test alias one="ls -l -a"
➜  Test ls -l -a
total 16
drwxrwxr-x  4 LiuGuanYi LiuGuanYi 4096 Oct  1 10:40 .
drwx------ 12 LiuGuanYi LiuGuanYi 4096 Oct  1 10:48 ..
drwxrwxr-x  2 LiuGuanYi LiuGuanYi 4096 Oct  1 10:42 dir
drwxrwxr-x  2 LiuGuanYi LiuGuanYi 4096 Oct  1 10:42 dir1
➜  Test one # 效果等价
total 16
drwxrwxr-x  4 LiuGuanYi LiuGuanYi 4096 Oct  1 10:40 .
drwx------ 12 LiuGuanYi LiuGuanYi 4096 Oct  1 10:48 ..
drwxrwxr-x  2 LiuGuanYi LiuGuanYi 4096 Oct  1 10:42 dir
drwxrwxr-x  2 LiuGuanYi LiuGuanYi 4096 Oct  1 10:42 dir1
alias # 查看别名的指令。

标签:文件,其二,目录,Test,指令,Linux,test,txt,hello
From: https://blog.csdn.net/2303_79972050/article/details/142535985

相关文章

  • Linux(三)文件管理、复杂操作与实用工具详解
    Linux学习笔记(三)文件管理、复杂操作与实用工具详解Linux学习笔记(二):深入理解用户管理、运行级别与命令行操作1.文件操作的基本操作1.1创建创建目录mkdir:创建目录mkdir/home/dog#创建单级目录mkdir-p/home/animal/tiger#创建多级目录,如果父目录不存在,将连......
  • Linux 学习笔记(二):深入理解用户管理、运行级别与命令行操作
    Linux学习笔记(二):深入理解用户管理、运行级别与命令行操作前置学习内容:Linux学习(一)1.用户管理1.1用户密码管理创建用户密码使用passwd命令可以为指定用户设置密码:sudopasswd`userName`密码找回当忘记密码时,可以采取以下步骤找回:在登录界面按e键进入编......
  • Linux 万字入门教程
    0.前言文章已经收录到GitHub个人博客项目,欢迎Star:https://github.com/chenyl8848/chenyl8848.github.io或者访问网站,进行在线浏览:https://chenyl8848.github.io/1.Linux介绍1.1引言Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix......
  • Linux
    Linux文章目录LinuxLinux的简介为什么不用Windows部署程序,而选择Linux?Linux文件系统常用命令文本编辑器用户管理帮助指令文件目录指令日期时间搜索查找命令解压缩组管理和权限管理**组管理****权限管理**定时任务调度crond定时调度**at定时任务**磁盘分区、挂载网络......
  • Linux: network: /proc/net/sockstat 解读
    怎么解读:sockets:used333833TCP:inuse18017orphan0tw2alloc333609mem232518ChatGPT这些数据是关于系统网络套接字使用情况的统计信息。下面是各项的解释:sockets:used333833:当前系统正在使用的套接字总数为333,833。TCP:inuse18017:表示当前有18,017......
  • linux内核双向链表使用list klist
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、list和klist是什么?二、代码示例1.list2.klist总结前言提示:这里可以添加本文要记录的大概内容:linux内核中大量使用了链表数据结构来存储各种数据,比如device和driver使用klist存储,下......
  • c# - - - .net core 判断程序运行的环境,Windows环境或Linux环境或MacOs环境
    c#.netcore判断程序运行的环境,Windows环境或Linux环境或MacOs环境Codeif(RuntimeInformation.IsOSPlatform(OSPlatform.Linux)){//Linux}elseif(RuntimeInformation.IsOSPlatform(OSPlatform.Windows)){//Windows}elseif(RuntimeInformation.IsOSPlatform(OSPlatfo......
  • MySQL之数据表,数据类型,表约束类型的指令讲解和练习
        本篇博客主要用来记录和分享本人学习MySQL数据库的基本操作指令的笔记和心得,包括数据表操作、数据管理、数据类型的讲解以及表的约束。通过实际的示例和注意事项,帮助大家更好地理解和应用这些知识。一、数据表操作指令1.创建数据表使用CREATETABLE指令可以创......
  • LInux基础——裸金属主机重装系统进入kernel Panic
    裸金属主机重装系统进入kernelPanic1、问题描述       租户裸金属主机重装系统,重启后进入”endKernelpanic–notsyncing:Fatalexception”; 2、问题分析  i.内存问题(非此类问题,忽略)     按照问题描述内核回退Calltrace是__pte_alloc内核物理内存调......
  • linux 上安装gitlab代码仓库
    作者:程序那点事儿日期:2024/02/0804:06安装过程安装节点:192.168.43.106wgethttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpmrpm-igitlab-ce-15.9.1-ce.0.el7.x86_64.rpmvim/etc/gitlab/gitlab.rbgitlab-ctl......