热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

常用Linux指令

玩OI,难免要用Linux,这是了解一些常用的Linux命令就很有必要了。首先,要运行命令,需要点开一个终端(Terminal)基本文件操作在Linux当中,两个点(..)表示父文

玩OI,难免要用Linux,这是了解一些常用的Linux命令就很有必要了。

首先,要运行命令,需要点开一个终端(Terminal)


基本文件操作

在Linux当中,两个点(..)表示父文件夹,一个点(.)表示当前文件夹,~表示当前用户的主文件夹

ls:列出文件夹下的文件

样例:

ls #列出当前文件夹下的文件
ls c++ #列出名为c++文件夹下的文件
ls -a #列出当前文件夹下的所有文件(包括.xxx.xxx之类的隐藏文件)

cd:进入一个文件夹

样例:

cd c++ #进入到一个名为c++的文件夹中
cd .. #进入上一文件夹(父文件夹)
cd . #进入当前文件夹(其实什么也没干)
cd - #回到上一次的工作目录
cd ../../.. #进入上一文件夹的上一文件夹的上一文件夹
cd c++/main/ #进入c++文件夹中的main文件夹

touch:创建空文件

样例:

touch hello.txt #创建一个名为hello.txt的空文件

mkdir:创建一个文件夹

样例:

mkdir c++ #创建一个名为c++的文件夹
mkdir -v c++ #创建一个名为c++的文件夹并显示更多输出

rm:删除一个文件/文件夹

样例:

rm bad.txt #删除bad.txt
rm -f bad.txt #没有提示直接删除bad.txt
rm -r c++ #删除名为c++的文件夹
rm -rf c++ #没有提示直接删除名为c++的文件夹

注意:rm -rf很强大,删除后不可恢复,请使用前明白你在做什么


mv:移动(剪切粘贴)/重命名文件/文件夹

样例:

mv 1.txt c++/ #把1.txt移动到c++目录下
mv 1.txt .. #把1.txt移动到父目录下
mv 1.txt 2.txt #把1.txt重命名为2.txt
mv 1.txt c++/2.txt #把1.txt移动到c++目录下并重命名为2.txt
mv -r c++ .. #把c++文件夹移动到父目录下
mv -r c++ c-- #把c++文件夹重命名为c--

cp:复制文件/文件夹

样例:

cp 1.txt c++/ #把1.txt复制到c++目录下
cp 1.txt .. #把1.txt复制到父目录下
cp 1.txt 2.txt #把1.txt另存为2.txt
cp 1.txt c++/2.txt #把1.txt复制到c++目录下并重命名为2.txt
cp -r c++ .. #把c++文件夹复制到父目录下
cp -r c++ c-- #把c++文件夹另存为c--

chmod:设置文件权限

这个命令用的少(主要是用数字表示权限不好记),就不多讲好了(逃)

样例:

chmod 777 1.cpp #将1.cpp设置为所有人皆可读取,修改,执行
chmod 755 1.cpp #将1.cpp设置为所有人皆可读取,执行,但只有本人可以修改
chmod -R 777 c++ #将c++文件夹及其子文件夹和文件设置为所有人皆可读取,执行,但只有本人可以修改
chmod +x navo #赋予navo可执行权限

chattr:最牛的文件保护

这个命令需要root权限,可以让文件禁止修改、删除、移动等

样例:

sudo chattr +i 1.txt #将1.cpp设置为所有人都不能修改、删除、移动
sudo chattr -i 1.txt #恢复1. cpp的权限

linux下的通配符

* 代表0个或无穷多个任意字符

? 代表一定有一个人字符

[a,b,c,d,e] 代表是a,b,c,d,e中的某一个字符

[a-z] 代表是a到z中的某一个字符

假如当前文件夹下有这些文件:


.hello.txt hello.txt helloworld.cpp cuda.o ppx


那么:

ls hello*会得到hello.txt helloworld.cpp

ls hello.*会得到hello.txt

ls [a,b,c]*会得到cuda.o

ls hel?o*会得到hello.txt helloworld.cpp

ls .*会得到.hello.txt

ls *x会得到ppx

ls [a-b]*会什么也得不到


Linux下常用的编辑器


vim


Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。



Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs在文本编辑方面都是非常优秀的。



——来自百度百科


若想编辑1.cpp,只需运行如下指令:

vim 1.cpp

然后你就进入了Vim的普通模式,和其他编辑器一样你可以看到要编辑的文件的内容,但是你不能输入

在普通模式下,有许多有趣的命令:(只列举删除的好了)

dd #删除当前行
Ndd #重复dd命令N次(向下删除N行)
d^ #删除到行首
dG #删除到行尾

在普通模式下,你可以按i(突然想起来可以用code标签)进入编辑模式,然后随意编辑就好了(笑)

若想回到普通模式,只需按下Esc即可

在普通模式下,输入:进入命令模式

w:保存

w!:强制保存

q:退出(不保存)

q!:强制退出(不保存)

wq:保存并退出

wq!:强制保存并退出

w <文件名>:另存为

一般刚安装完的Vim不自带自动缩进,行号,标尺之类的有用的东西,若想实现,编辑~/.vimrc即可

set shiftnano">Nano

Nano是Unix和类Unix系统中的一个文本编辑器,是Pico的复制品。



Nano是一个小巧友好的文本编辑器. 与基本的文本编辑相比,nano提供许多额外的特性,例如:交互式的查找和替换,定位到指定的行列,自动缩进,特性切换,国际化支持,以及文件名标记完成。



——来自百度百科


nano是很简单和易用的,所以不多讲,要用的指令在Nano运行时它的下方都有

若想编辑1.cpp,只需运行如下指令:

nano 1.cpp

打开文件后,直接编辑即可

Ctrl+O保存

Ctrl+X退出


编译(GCC/G++)

由于是OIer,所以编译代码是必不可少的!

编译C语言程序用gcc,C++程序用g++,两者用法基本相同(那就用g++来当例子把)

编译1.cpp

g++ 1.cpp

然后会生成一个叫做a.out的可执行文件

为了管理方便,常常重命名输出文件,比如:

g++ 1.cpp -o 1.o

这样就能生成1.o了

O3优化也是可以的:

g++ -O3 1.cpp -o 1.o

有趣的系统指令

TODO

先写这么多,好累啊!(逃)

如需转载请注明出处(或此出处),谢谢!



推荐阅读
  • 如何在Linux环境中高效地创建、编译与运行C语言代码
    本文面向第一次在linux尝试写C语言程序的新人。有经验的请绕行。C语言用法不是本文介绍的关键,本文只是引入如何第一次在linux系统下编写、编译和执行一个简单的c程序。学会后请自行深入 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 对于以压缩包形式发布的软件,其目录中通常包含一个配置脚本 `configure`。该脚本的主要功能是确定编译所需的各项参数,如头文件的位置和链接库的路径,并生成相应的 `Makefile` 以供编译使用。通过运行此脚本,开发者可以确保软件在不同环境下的正确编译与安装。此外,该脚本还能够检测系统依赖项,进一步提高编译过程的可靠性和兼容性。 ... [详细]
  • 编写程序可以用vi编辑器vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和 ... [详细]
  • 如何在Windows 10系统上成功安装Singular软件
    目录1.Singular2.使用Linux子系统2.1.使用命令行安装2.2.使用源码包安装3.使用Linux模拟器安装4.使用其他软件安装4.1.使用Sage安装1.Singul ... [详细]
  •  像Slashdot这样的论坛上常常有人在攻击GNU,他们的观点在我看来完全是缺乏历史知识和不尊重历史。当GNU倡导称Linux为GNU/Linux时,这些人声称GNU企图从Linus ... [详细]
  • 经过前面的一系列工作后,GO的语言环境已经搭建完成。我们也初步体验了GO提供的大部分命令。但在正式进入开发之前,还有件工作要做,那就是选择一款适合自己的IDE。为什么使用IDE“程 ... [详细]
  • ESP32 IRAM 内存优化策略与实践总结
    本文总结了针对ESP32 IRAM内存溢出问题的优化策略与实践经验。通过详细分析ESP32的内存结构和IRAM分配机制,提出了一系列有效的解决方案,包括代码优化、内存管理技巧和编译器配置调整,旨在帮助开发者有效解决`.espressif/tools/xtensa-esp32-elf/esp-2`等类似错误,提升系统性能和稳定性。 ... [详细]
  • JVM参数设置与命令行工具详解
    JVM参数配置与命令行工具的深入解析旨在优化系统性能,通过合理设置JVM参数,确保在高吞吐量的前提下,有效减少垃圾回收(GC)的频率,进而降低系统停顿时间,提升服务的稳定性和响应速度。此外,本文还将详细介绍常用的JVM命令行工具,帮助开发者更好地监控和调优JVM运行状态。 ... [详细]
  • SpringBoot启动脚本详解:BAT文件应用与基础入门指南(SpringBoot系列第1篇)
    如果你还在为SSM框架的复杂搭建过程和繁琐的配置文件而烦恼,那么SpringBoot将是你的一大福音。作为SpringBoot系列的第一篇文章,本文详细介绍了如何使用BAT文件来启动SpringBoot应用,并提供了基础入门指南,帮助开发者快速上手,简化开发流程。 ... [详细]
  • Python正则表达式详解:掌握数量词用法轻松上手
    Python正则表达式详解:掌握数量词用法轻松上手 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • CentOS7系统目录LINUX有四种基本文件系统类型普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、 ... [详细]
  • BashShell作为Linux的指定合作伙伴我们已经再熟悉不过了,使用Bash可以快速编写简单的脚本方便我们的日常比如善用vim,awk和sed三剑客,也可以创建十分复杂的逻辑, ... [详细]
author-avatar
爱圣翼迹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有