Linux终端笔记

Posted by saltyfishyjk on 2022-03-27
Words 1.8k and Reading Time 6 Minutes
Viewed Times

Linux终端笔记

Part 0 前言

Linux是一个重要的操作系统,著名发行版有 Ubuntu 等。服务器多采用Linux系统,掌握常见的Linux命令对远程使用服务器有重要意义。同时,OS课程要求在Linux环境中完成实验。

本博客主要作为个人笔记。

Part 1 相关资源

  1. 菜鸟教程-Linux教程 适合作为字典查阅

Part 2 常用指令

以下指令在Linux终端中执行

clear

清屏。

cd

change directory,进入某个目录。

cd xxx:进入xxx目录(需要xxx目录在当前位置下)。

cd ..:进入上层目录。

touch

创建新文件。

1
2
3
4
touch 
用法:touch [选项]... [文件]...
eg:
touch HelloWorld.c // 创建了一个名为HelloWorld.c的文件

mkdir

make directory,创建文件目录(类似windows下的文件夹)

1
2
3
4
mkdir
用法:mkdir [选项]... 目录...
eg:
mkdir newFolder // 创建了一个名为newFolder的文件夹

pwd

print working directory,查看当前的绝对路径。

rmdir

删除目录,目录不能为非空;如果想要删除非空目录,需要使用rm -rf filename

1
2
rmdir 
用法:rmdir [选项]... 目录...

rm

rm:删除一个目录中的一个或多个文件或目录

1
2
3
4
5
rm - remove files or directories
用法:rm [选项]... 文件...
选项(常用):
-r 递归删除目录及其内容
-f 强制删除。忽略不存在的文件,不提示确认

此外,rm 命令可以用 -i 选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入 y 并按 Enter 键,才能删除文件。如果仅按 Enter 键或其他字符,文件不会被删除。与之相对应的就是 -f 选项,强制删除文件或目录,不询问用户。使用该选项配合 -r 选项,进行递归强制删除,强制将指定目录下的所有文件与子目录一并删除可以达到毁灭性效果。例如:rm –rf / 即可强制递归删除全盘文件,绝对不要尝试!

使用rm命令要格外小心,因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
很多优秀的程序员会在目录下建一个文件夹类似回收站,如果要使用rm指令,先把要删除的文件移到这个文件夹里,然后再进行rm,一定时间之后再对回收站里的文件进行删除。

cp

复制文件。

1
2
3
4
cp 
用法:cp [选项]... 源文件... 目录
选项(常用):
-r 递归复制目录及其子目录内的所有内容

move

移动文件。

1
2
写mv hello_world.c trashbin/就是将hello_world.c移动到trashbin这个文件夹了。
不过mv还有一种更有意思的用法,mv file ../file_mv就是将当前目录中的file文件移动至上一层目录中且重命名为file_mv。聪明的你应该已经看出来,在Linux系统中想要对文件进行重命名操作,使用mv oldname newname命令就可以了。

echo

回声。

1
如果你在屏幕上输入echo hello_world, 你会发现它给你回显了一个hello_world,看起来是一个复读机的功能

echo one > test.txt:将one输入test.txt,为覆盖式,即覆原有所有文件,并在第一行写入one

echo two >> test.txt:将two追加到test.txt后面

事实上,这个指令非常万用。比方说,需要将一个特定字符串打印进入某个文件,可以用它;需要将某个字符串输入进另一个指令,也可以用它结合重定向实现。

ls

显示当前目录下的所有文件。

1
2
3
4
5
ls
用法:ls [选项]... [文件]...
选项(常用):
-a 不隐藏任何以"."开始的项目
-l 每行只列出一个文件

事实上,对于隐藏文件,ls仍然不能访问,需要使用la

Ctrl + C

终止当前程序执行。

Ctrl + Z

挂起当前程序。

Ctrl + D

终止输入。

Ctrl + L

清屏,效果和clear相同。

cat /proc/version

查看Linux版本

watch nvidia-smi

查看服务器的GPU情况,确定对应的CUDA版本

arch

查看CPU架构,可能获得x86_64等答案。

lsb_release -a

查看Ubuntu版本

screen系列指令

  • screen -S <会话名> :创建并进入名为<会话名>的screen会话
  • screen -ls:查看当前存在的所有screen会话
  • screen -x <会话ID>:重新接入会话ID为<会话ID>的screen会话(配合screen -ls使用
  • screen -r <会话名>:重新接入会话名为<会话名>的screen会话,与-x参数作用相同
  • screen - X -S <会话ID>:kill会话
  • ctrl + a, d:退出当前会话窗口
  • ctrl + a, w:列出当前所有的会话窗口
  • ctrl + a, k:杀死当前窗口,同时结束当前窗口
  • exit:在某一个screen中使用该命令可以退出并kill该窗口

java

  1. java -version:查看jdk版本

netstat

用于显示网络状态。

参考文献:Linux netstat命令

参数 说明
l listening,显示监控中的服务器的socket
n numeric,直接使用IP地址,而不通过域名服务器
t tcp,显示TCP传输协议的连线状况
p programs,显示正在使用Socket的程序识别码和程序名称

ln

用于创建软链接。

  • ln -s [源文件或目录] [目标文件或目录]:创建软链接
  • rm -rf [软链接名称]:删除软链接

scp

secure copy protocol,允许用户在两个主机之间传输数据

1
scp [选项] <file_source> <file_target>
参数 说明
-r 递归,用于复制整个目录

zip

压缩

1
zip [选项] <file_target> <file/dir_source>
参数 说明
-r 递归,用于压缩整个目录

Part 3 查看文件信息

用于查看文件开头内容。

1
head [选项] [文件名]

无选项运行

显示名为 file_name 的文件的开头(默认前 10 行)

1
head file_name

显示前 N 行 -n N

显示名为 file_name 的文件的前 N 行()

1
head -n N file_name

tail

用于查看文件末尾内容。

wc

word count,计算文件单词量等

1
wc [选项] [文件名]

显示文件行数 -l

显示名为 file_name 的文件行数

1
wc -l file_name

显示多个文件行数

1
wc -l file_name1 file_name2 file_name3

du

disk usage,显示文件和目录的磁盘使用情况

1
du [选项] [文件或目录]

以人类可读方式 -h

以人类可读(KB/MB/GB)方式显示 path/to/directory 目录/文件磁盘使用情况

1
du -h /path/to/directory

Part 4 杂项

判断Linux是CentOS还是Ubuntu

1
lsb_release -a

参考这篇博客,其中使用apt-get和yum判断比较快捷。

下载指令

参考文章:ubuntu几种不同的下载指令(apt-get,wget,git clone,pip etc)

从指定url下载文件:wget

查看内存信息

free -h:可显示总内存、已使用内存、空闲内存等

查看硬盘信息

df -h


This is copyright.