常用的 linux 命令

常用的 linux 命令


1.从其他机器拷贝文件夹

格式: scp -r 文件夹名(源) 用户名@机器名:/路径(目的)

范例: scp -r search work@zjm-testing-ps23.zjm.baidu.com:/home/work/

2.查看哪个程序在用特定端口

格式: netstat -nap | grep 端口号

范例: netstat -nap | grep 8080

资源由 www.eimhe.com 美河学习在线收集提供

3.实时监控日志文件内容

格式: tail -f 日志文件名

范例: tail -f ui.log

说明:这显示 ui.log 文件的最后十行。tail 命令继续显示添加到 ui.log 文件中的行。显示会一

直继续,直到您按下 Ctrl-C 按键顺序来停止

4.查看指定用户拥有的进程

格式: pstree 用户 id

范例: pstree work

说明:显示 work 用户正在运行的各进程之间的继承关系,以树状结构方式列出

5.查看磁盘空间使用情况

格式: df -h

6.文件搜索

which(whereis) 显示系统命令所在目录

which ls 可以查找 ls 命令文件所在目录。输出为:/bin/ls

whereis ls 可以查找 ls 命令所在目录,同时会显示该命令的帮助文档所在目录。

find 查找任何文件或目录

--name --size --ctime --atime --mtime --type -user

find [搜索路径] [查找方式] [搜索关键字]

1) 根据文件名称查找

find ./ -name temp //在当前目录下,按照名字查找名字为 temp 的文件。可以使用通

配符和?,其中 匹配多个或零个字符,?匹配一个任意字符。

find ./ -name a.* find ./ -name a.tx? 都是查找 a.txt。

2) 根据文件大小查找

find ./ -size +204800 //在当前目录下,按照文件大小来查找,其中后面的数字的单位

是数据块,一个数据块是 512 字节。

204800512 字节=204800 0.5KB=102400KB=100MB,因此上述命令是查找大于 100MB

的文件。

+是大于,-是小于,不加加减表示等于。

3 )根据文件所有者来查找

find ./ -user yirenwei//在当前目录下,查找文件所有者为 yirenwei 的文件。

4) 根据文件修改时间来查找

ctime(文件属性被修改过)atime(被访问过)mtime(内容被修改过) 单位是天

cmin、amin、mmin 单位是分钟

-之内,+超过

find ./ -ctime -1 查找 1 个小时内被属性被修改过的文件;

find ./ -cmin -10 查找 10 分钟之内属性被修改过的文件;

find ./ amin +10 查到已经访问了超过 10 分钟的文件。

资源由 www.eimhe.com 美河学习在线收集提供

5) 连接符 --a(AND) -o(OR) -exec

5.1 find ./ -size +163800 --a -204800 //查找文件大小大于 80M 小于 100M 的文件。

5.2 find ./ -type f --exec ls {}; 花括号,转义符,分号。 查找当前目录下所有的文

件,然后再对查找结果进行 ls 操作。

又如: find ./ -user yirenwei --exec rm {};查找,并删除。

6) 根据文件类型查找

find ./ -type f //查找二进制文件,还有 --type d/-type l,查找目录或者 link 文件。

locate (linux 特有的命令,UNIX 没有这个命令)

locate newfile //查找名称为 newfile 的文件。

注意:locate 是从系统文件的数据库中查找,不是在硬盘搜索,find 是在硬盘搜索。因

此locat快,但是当新建的文件,可能找不到,因为系统的数据库还没有更新;可以使用updatdb命令来配合使用,手动更新数据库(只能 root 调用貌似)。

grep 在文件中查找需要的行

grep [指定字符串] [源文件]

-v 反选 例如:grep --v "^#" 不以#开始的行

7.查看内存使用情况

格式: free

8.查看本机系统内核

格式: uname -a

9.查看当前路径下的文件/文件夹大小

格式: du -hs 文件名/文件夹名

10.变更为其它使用者的身份

格式: su 使用者帐号

范例: su work

11.远程登陆

格式: ssh 用户名@机器名

范例: ssh rd@build01

12.不挂断地运行命令

格式: nohup command &

范例: nohup ./build_index.sh -d .../newdbi/ &

资源由 www.eimhe.com 美河学习在线收集提供

13.查看文件的行数

格式: wc -l 文件名

范例: wc -l as.conf

14.比较两个文件的不同之处

格式: vimdiff 文件 1 文件 2

范例: vimdiff 1.txt 2.txt

15.杀死进程

格式: killall -9 进程名

范例: killall -9 bs.se

16.在 SecureCRT 中把文件传给本机的 SecureCRT 安装目录的 download 目录下

格式: sz 文件名

范例: sz 1.txt

17.把本机文件传给 SecureCRT 中当前机器的当前目录

格式: rz

18.Vi 文本编辑器

开始进入是命令模式;i a o 进入插入模式,ESC 可以退出插入模式;:可以进入编辑模式,

编辑完成回车退回命令模式。

1) 插入命令


2) 定位

3) 删除

4) 复制剪切

5) 替换和取消

6) 搜索和替换

7) 保存退出

xml 复制代码
:wq 保存退出 :wq!强行保存退出(文件的所有者以及 root 才可以用)
shift+ZZ 保存退出
:q! 退出不保存

8) vi 其他用法

xml 复制代码
:r filename 将 filename 文件的内容导入到当前文件中
:! ls /etc 在 vi 中编辑模式,键入:! 然后可以执行命令,不需要退出 vi

19.察看文件类型

格式:file 文件名

20.压缩命令

1) gzip 将文件压缩为.gz(只能压缩文件,不能压缩目录;不能保留源文件)

gzip [选项] 文件名

gzip newfile 可以得到 newfile.gz 而原来的 newfile 文件不存在了。

解压缩:gunzip newfile.gz 解压 newfile.gz 得到 newfile 文件

2) tar 打包文件,将一个目录打包为一个 tar 包,可以与 gzip 结合压缩目录。

tar [选项] [打包以后的文件名] [对那个目录进行打包]

选项:-c 产生打包文件 -v 显示详细信息 --f 指定打包后的文件名 --z 打包的同时压缩

tar --zcvf dir.tar.gz dir 将 dir 打包并压缩为名为 dir.tar.gz

解压缩:将-c 换成-x 即可 tar --zxvf dir.tar.gz

3) zip 将文件打包为 zip 文件,windows 和 linux 默认统一支持的压缩格式。

zip file.zip file(压缩文件)

zip --r dir.zip dir(压缩目录)

解压缩:unzip dir.zip

4) bzip2 将文件压缩为.bz2 文件,只能压缩文件,跟 gzip 类似,但是可以添加-k 选项,从而保留原文件;

bzip2 --k a.bz2 a.txt 得到:a.bz2

解压缩:bunzip2 a.bz2

总结:linux 下一共有四种压缩方式,得到的后缀分别为:.gz/.tar.gz/.zip/.bz2;其中 tar.gz 是

先打包再压缩的。对应的四种命令是:gzip/tar -c/zip/bzip2

对应的解压缩为:gunzip/tar --x/unzip/bunzip2

21.非交互性文本流编辑器

格式:sed [选项] '命令' 输入文件名

参数:

-n 不打印,sed 不写编辑行到标准输出,缺省为打印所有行

-c 下一命令是编辑命令,使用多项编辑时加入此选项。如果只用到一条 sed 命令,

此选项无用,但指定它也没有关系。

-f 如果正在调用 sed 脚本文件,使用此选项。此选项通知 sed 一个脚本文件支持所

有的 sed 命令,例如:sed -f myscript.sed input_file,这里 myscript.sed 即为支持

sed 命令的文件。

范例:

sed --n '2p' quota.txt 打印文本的第二行

sed --n '/Neave/'p quota.txt 匹配单词 Neave,并打印此行

sed '1d' quota.txt 删除文本的第一行

22.将文件中的记录分类

格式:sort [选项] --o 输出文件名 [其他选项] +pos1 +pos2 输入文件名

参数:

-c 测试文件是否已经分类

-m 合并两个分类文件

-u 删除所有复制行

-o 存储 sort 结果的输出文件名

其它参数有:

-b 使用域进行分类时,忽略第一个空格。

-n 指定分类是域上的数字分类。

-t 域分隔符;用非空格或 t a b 键分隔域。

-r 对分类次序或比较求逆。

+n n 为域号。使用此域号开始分类。

n n 为域号。在分类比较时忽略此域,一般与+ n 一起使用。

pos1,pos2 传递到 m,n。m 为域号,n 为开始分类字符数;例如 4,6 意即以第 5 域

分类,从第 7 个字符开始。

范例:sort -t: +2n video.txt 以":"为域分割符,按第三个域数字分类 video.txt

23.去除文本文件的重复行

格式:uniq [选项] 输入文件 [输出文件]

资源由 www.eimhe.com 美河学习在线收集提供

参数:

-u 只显示不重复行。

-d 只显示有重复数据行,每种重复行只显示其中一行

-c 打印每一重复行出现次数。

-f n 为数字,前 n 个域被忽略。一些系统不识别- f 选项,这时替代使用- n。

范例:uniq --n2 parts.txt

24.连接两个文本文件

格式:join [选项] 文件 1 文件 2

说明:join 用来将来自两个文本文件的行连在一起,两个输入文件必须已经分过类,每个文

件里都有一些元素与另一个文件相关,由于这种关系,join 将两个文件连在一起。

参数:

-an n 为一数字,用于连接时从文件 n 中显示不匹配行。例如, - a 1 显示第一个文

件的不匹配行,- a 2 为从第二个文件中显示不匹配行。

-o n.m n 为文件号,m 为域号。1 . 3 表示只显示文件 1 第三域,每个 n,m 必须用逗号

分隔,如 1 . 3,2 . 1。

-j n m n 为文件号,m 为域号。使用其他域做连接域。

-t 域分隔符。用来设置非空格或 t a b 键的域分隔符。例如,指定冒号做域分隔符- t:

范例: join --o 1.1,2.2 names.txt town.txt

25.从文本文件中剪切列或域

格式:cut [选项] 文件名

参数:

-c list 指定剪切字符数。

-f field 指定剪切域数。

-d 指定与空格和 tab 键不同的域分隔符。

  • c 用来指定剪切范围,如下所示:
  • c 1,5-7 剪切第 1 个字符,然后是第 5 到第 7 个字符。
    -f 格式与- c 相同。
    -f 1,5 剪切第 1 域,第 5 域。
    范例: cut --d: -f3 pers

26.将两个文本文件粘贴在一起

格式:paste [options] file1 file2

说明:粘贴两个不同来源的数据时,首先需将其分类,并确保两个文件行数相同。paste 将

按行将不同文件行信息放在一行。缺省情况下, paste 连接时,用空格或 tab 键分隔

新行中不同文本,除非指定-d 选项,它将成为域分隔符。

参数:

-d 指定不同于空格或 t a b 键的域分隔符。例如用@分隔域,使用- d @。

-s 将每个文件合并成行而不是按行粘贴。

资源由 www.eimhe.com 美河学习在线收集提供

范例: paste --d: pas2 pas1 用冒号作分割符

27.将大文件进行分割

格式:split [选项] 输入文件名 输出文件名前缀

参数:-a 指定后缀的长度(缺省为 2)

-b 每个输出文件的字节大小

-l 每个输出文件的行数

范例:split --l 1000 bigfile.txt outfile

28.linux 常用命令
















































相关推荐
YRr YRr32 分钟前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.35 分钟前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker
zhou周大哥1 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
不想起昵称9291 小时前
Linux SHELL脚本中的变量与运算
linux
loong_XL1 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
夕泠爱吃糖1 小时前
C++中如何实现序列化和反序列化?
服务器·数据库·c++
the丶only2 小时前
单点登录平台Casdoor搭建与使用,集成gitlab同步创建删除账号
linux·运维·服务器·docker·gitlab
书生-w2 小时前
Docker部署GitLab服务器
服务器·docker·gitlab
Ling_suu2 小时前
SpringBoot3——Web开发
java·服务器·前端