博客主页:🏆​看看是李XX还是李歘歘​ 🏆

🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是      常用linux命令介绍       ⛽️💻💻💻

目录

​文件管理命令​

​cat 命令​

​touch 命令​

​vim 命令​

​tail 命令​

​ head 命令​

​cp 命令​

​find 命令​

​which 命令​

​mv 命令​

​rm 命令​

​grep 命令​

​wc 命令​

​cd 命令​

​ls命令​

​mkdir 命令​

​pwd 命令​

​ifconfig 命令​

​ping 命令​

​kill 命令​

​rpm 命令​

​top 命令​

​scp命令​



文件管理命令

cat 命令

cat 命令用于连接文件并打印到标准输出设备上。


cat [-AbeEnstTuv] [--help] [--version] fileName

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

常用:

1.一次显示整个文件:

cat filename

2.从键盘创建一个文件:

cat > filename

只能创建新文件,文件名重复会覆盖,control+c结束新建。

3.将几个文件合并为一个文件:

cat file1 file2 > file

4.-b对非空输出行号 -n 输出所有行号

cat -b file1
cat -n file2

5.反向列示

tac filename

touch 命令

​Linux touch​​命令用于修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。​​ll​​可以显示档案的时间记录。

touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数说明:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。

常用:

1.修改文件"testfile"的时间属性为当前系统时间

touch testfile

2.新建文件,使用指令"touch"时,如果指定的文件不存在,则将创建一个新的空白文件。

touch filename

vim 命令

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

分为:命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

命令模式:

  • i、o、a切换到输入模式,以输入字符。
  • :(英文冒号)切换到底线命令模式,可以在最底一行输入命令。

输入模式:

  • ESC,退出输入模式,切换到命令模式。
  • 回车,回到命令模式

底线命令模式:

  • :(英文冒号)就进入了底线命令模式。

在底线命令模式中,基本的命令有(已经省略了冒号):

  • q 退出程序
  • wq 保存文件,退出程序
  • wq! 强制储存后离开
  • q! 不保存文件,退出程序

按ESC键可随时退出底线命令模式。

1.打开文件并跳到第 10 行

vim +10 filename

​2.进入文件后跳到第10行​

vim filename

进入问价后输入

:10

tail 命令

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。


tail [options] [name]

-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)

1.查看最新请求日志

tail -f ping.log

2.查看文件最后2行

tail -n 2 filename

3.查看文件第2行到文件尾的内容

tail -n +2 filename

 head 命令

head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数。

常用:

1.显示 filename文件中前 20 行

head filename -n 20

2.显示 filename文件前 20 字节

head -c 20 log2014.log

3.显示 filename 最后 10 行

head -n -10 t.log

cp 命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!

-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-f:覆盖已经存在的目标文件而不给出提示。
-i:与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。

常用:

1.复制 a.txt 到 test 目录下,保持原文件时间,如果原文件存在提示是否覆盖。

cp -ai filename1 filename2

2.cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下

cp –r test/ newtest

find 命令

用于在文件树中查找文件,并作出相应的处理。命令格式:

find pathname -options [-print -exec -ok ...]

命令参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print:find命令将匹配的文件输出到标准输出。
-exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。
-ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。

-options选项:

name 按照文件名查找文件
perm 按文件权限查找文件
user 按文件属主查找文件
group 按照文件所属的组来查找文件。
type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件

常用:

1.查找 48 小时内修改过的文件

find -atime -2

2.在当前目录查找 以 .log 结尾的文件。. 代表当前目录

find ./ -name '*.log'

3.查找 /opt 目录下 权限为 777 的文件

find /opt -perm 777

4.查找大于 1K 的文件

find -size +1000k

5.查找等于 1000 字符的文件

find -size +1000c

which 命令

在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which 查看可执行文件的位置。
whereis 查看文件的位置。
locate 配合数据库查看文件位置。
find 实际搜寻硬盘查询文件名称。

which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

常用参数:

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

常用:

1.使用指令"which"查看指令"go"的绝对路径

which go

mv 命令

移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。

-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

常用:

1.将文件 filename1  重命名为 filename2

mv filename1 filename2

2.将文件 filename1 、filename2 移动到上一级目录的 test 目录中

mv filename1 filename2 ../test/

(3)将文件 file1 改名为 file2,如果 file2 已经存在,则询问是否覆盖,输入y则覆盖。

mv -i log1.txt log2.txt

(4)移动当前文件夹下的所有文件到上一级目录

mv * ../

rm 命令

删除一个目录中的一个或多个文件或目录,如果没有使用 ​​-r​​​ 选项,则 ​​rm​​​ 不会删除目录。如果使用 ​​rm​​ 来删除文件,通常仍可以将该文件恢复原状。

rm [options] name
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。

常用:

1.删除任何 .filename 文件,删除前逐一询问确认:

rm -i *.filename

2.删除 test 子目录及子目录中所有档案删除,并且不用一一确认:

rm -rf test

3.删除以 ​​-f​​ 开头的文件

rm f*

grep 命令

强大的文本搜索命令,grep(​​Global Regular Expression Print​​) 全局正则表达式搜索

grep [option] pattern file|dir

常用参数:

-A n --after-context显示匹配字符后n行
-B n --before-context显示匹配字符前n行
-C n --context 显示匹配字符前后n行
-c --count 计算符合样式的列数
-i 忽略大小写
-l 只列出文件内容符合指定的样式的文件名称
-f 从文件中读取关键词
-n 显示匹配内容的所在文件中行数
-R 递归查找文件夹

grep 的规则表达式:

^ #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$ #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
. #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。
* #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.* #一起用代表任意字符。
[] #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^] #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。
\(..\) #标记匹配字符,如'\(love\)',love被标记为1。
\< #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\> #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\} #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\} #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。
x\{m,n\} #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。
\w #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。
\W #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。
\b #单词锁定符,如: '\bgrep\b'只匹配grep。

常用:

1.查找go的进程

ps -ef | grep go

2.从文件中读取关键词

grep "lcc" filename

3.从文件中读取关键词出现行数

grep -c "lcc" filename

4.从文件中读取关键词出现行内容及其行数

grep -n "lcc" filename

5.查询输出结果匹配的内容

cat filenmae  | grep "lcc"

wc 命令

wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出 命令格式:

wc [option] file..

命令参数:

-c 统计字节数
-l 统计行数
-m 统计字符数
-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

常用

1.查找文件的 行数 单词数 字节数 文件名

wc text.txt

结果:

7 8 70 test.txt

2.统计输出结果的行数

cat test.txt | wc

cd 命令

cd(changeDirectory) 命令语法:

cd [目录名]

常用:

1.进入根目录

cd /

2.进入 “home” 目录

cd ~

3.进入上一次工作路径

cd -

4.跳到目前目录的上两层

cd ../..

ls命令

就是 list 的缩写,通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。常用参数搭配:

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

mkdir 命令

mkdir 命令用于创建文件夹。可用选项:


mkdir [-p] dirName

-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;
-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

常用:

当前工作目录下创建名为 t 的文件夹

mkdir t

(2)在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

mkdir -p /tmp/test/t1/t

pwd 命令

pwd 命令用于查看当前工作目录路径。

常用:

查看当前路径

pwd

ifconfig 命令

ifconfig 用于查看和配置 Linux 系统的网络接口。

显示网络设备信息:​​ifconfig -a​​ 。

ping 命令

Linux ping命令用于检测主机。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

指定接收包的次数

ping www.baidu.com
ping 127.0.0.1:8080/ping

kill 命令

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

常用参数:

-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户

先使用lsof查询端口占用情况

lsof -i:8998

linux常用命令_shell

强制杀死进程

kill -9 pid

rpm 命令

Linux rpm 命令用于管理套件。rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。

# 查看系统自带jdk
rpm -qa | grep jdk
# 删除系统自带jdk
rpm -e --nodeps 查看jdk显示的数据
# 安装jdk
rpm -ivh jdk-7u80-linux-x64.rpm

top 命令

显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等 常用参数:

-c 显示完整的进程命令
-s 保密模式
-p <进程号> 指定进程显示
-n <次数>循环显示次数

scp命令

用于 Linux 之间复制文件和目录。


scp [可选参数] file_source file_target

-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

上传文件: 

scp 本地目录文件 用户名@ip:目录文件

用户

 查当前用户

whoami

切换用户

sudo -iu xxx

上传本地文件到服务器

linux常用命令_vim_02