实用的linux 命令(上)
今天介绍几个我常用的Linux 命令,每个命令这里只介绍其常用参数。
对于每个Linux 命令都可以使用man + 命令名称,查看其完整使用方法。
0,man
man 命令是一个非常有用的命令,当你不会使用某个Linux 命令时,可以使用man 来查看其帮助文档。man 命令查到的手册来源于目录 /usr/share/man/,可以看到该目录下有9 个这样的目录:
>>> ls /usr/share/man/| grep man
______________________________
man1
man2
man3
man4
man5
man6
man7
man8
man9
man 手册分9 种,用数字[1-9] 来区分,分别代表的含义如下(可以用man man 命令来查看):
| 数字 | 含义 |
|---|---|
1 |
System commands 系统命令 |
2 |
System calls 系统函数 |
3 |
Library calls 库函数 |
4 |
Special files 特殊文件 |
5 |
File formats 文件格式 |
6 |
Games 游戏和娱乐 |
7 |
Miscellaneous 杂项 |
8 |
System administration commands 管理员root 命令 |
9 |
其它 |
可以通过设置不同的数字来查看不同的手册,如下:
man 1 系统命令名
man 2 系统函数名
man 3 库函数名
如果没有带这个数字,则会从1 查到9,直到查到第一个为止。
一,文件管理
1,cat
cat 命令用于查看文件内容,该命令会将文件的所有内容输出到控制台。
>>> cat hello.c
______________________________________
// 包含头文件
#include <stdio.h>
// 程序入口,main 函数,返回值类型为int 类型
int main()
{
// 打印字符串
printf("hello world .\n");
return 0;
}
cat 命令常用参数:
| 参数 | 含义 |
|---|---|
| -n | 对输出的内容加上行号 |
| -b | 对输出的内容加上行号,空白行不计入行号 |
| -s | 将两个以上的空白行,显示为一个空白行 |
cat 命令会将文件内容快速的输出到控制台,它并不能控制浏览文件的进度。如果想控制浏览文件的进度,可以使用more 或less 命令。
2,more
more 命令用于查看Linux 文件的内容,用more filename 打开一个文件后,可以控制向上或向下翻滚页面。
>>> more log.txt
________________________________
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
11111111111111111111111111111111
--More--(2%) (`注`:这里显示浏览页面的`进度百分比`)
more 命令常用操作:
| 操作 | 含义 |
|---|---|
Enter 键 |
向下翻滚一行 |
空格键 |
向下翻滚一页,一页的大小可以使用 -N 参数来设置 |
Ctrl + B (本操作并不是很方便 ) |
向上翻滚一页,一页的大小可以使用 -N 参数来设置 |
使用下面的方式将一页 的大小设置为10 行,这时每次向上或者向下翻页时,每次会滚动10 行:
more -10 log.txt
more 命令可以与cat 命令来配合使用,比如用cat显示行号,然后用more 控制翻页,并且页的大小为10 行:
>>> cat -n log.txt| more -10
——————————————————————————————————————————
56 1111111111111111111111111111111111
57 1111111111111111111111111111111111
58 1111111111111111111111111111111111
59 1111111111111111111111111111111111
60 1111111111111111111111111111111111
61 1111111111111111111111111111111111
62 1111111111111111111111111111111111
--More--
(`注`:第一列为行号,并且这时`进度百分比`消失了,而且`不能向上翻页`)
3,less
less 命令 也是用来浏览文件内容,但与more 命令 有些不同,less 命令有更多的操作。
用命令less filename 打开文件后的常用操作:
| 操作 | 含义 |
|---|---|
b |
向上翻一页 |
d或者空格键 |
向下翻一页 |
k或者方向键↑ |
向上翻一行 |
j或者方向键↓或者Enter 键 |
向下翻一行 |
/pattern |
在页面中搜索字符串pattern,匹配到的字符串会高亮显示,可以用-i 参数来忽略大小写 |
n |
锁定下一个匹配到的字符串pattern |
N |
锁定上一个匹配到的字符串pattern |
q |
退出当前文件 |
less 命令常用参数:
| 参数 | 含义 |
|---|---|
-i |
忽略搜索/pattern时的大小写 |
-m |
显示类似more 命令的进度百分比 |
-N |
显示行号 |
-s |
连续空白行显示为一行 |
如下命令,即显示行号又显示进度百分比:
less -mN README.md
效果如下:

4,head
head 命令用于从一个文件的开头处查看文件。常用参数如下:
| 参数 | 含义 |
|---|---|
-n |
查看一个文件的前N行,默认为前10 行 |
-c |
查看一个文件的前N字节 |
如下命令查看hello.c 文件的前5 行:
>>> head hello.c -n 5
_______________________________________
// 包含头文件
#include <stdio.h>
// 程序入口,main 函数,返回值类型为int 类型
int main()
如下命令查看hello.c 文件的前20 字节:
>>> head hello.c -c 20
_______________________________________
// 包含头文件
#
5,tail
tail 命令的含义与head 恰好相反,tail 从一个文件的尾部开始查看,常用参数如下:
| 参数 | 含义 |
|---|---|
-n |
查看一个文件的最后N行,默认为后10 行 |
-c |
查看一个文件的最后N字节 |
-f |
实时查看文件的内容,并输出到控制台,常用于查看日志 输出 |
如下命令查看hello.c 文件的最后5 行:
>>> tail hello.c -n 5
_______________________________
// 打印字符串
printf("hello world 1.\n");
return 0;
}
如下命令查看hello.c 文件的最后20 字节:
>>> tail hello.c -c 20
_______________________________
return 0;
}
6,find
find 命令用来查找指定目录下符合指定条件的文件,并进行指定操作,其语法如下:
find `目录` `条件` `操作`
6.1 目录(可不写)
目录表示在哪个目录下进行查找。例如./ 代表当前目录,/ 代表根目录。如果没有写目录,默认会在当前目录及其子目录下查找。
6.2 条件(必须写)
查找符合怎样 条件的内容,支持如下常用条件(这里并没有列出所有可用条件):
| 参数 | 含义 |
|---|---|
-name |
按照文件名称查找,支持* 通配符 |
-perm |
按照文件权限查找 |
-user |
按照文件属主查找 |
-group |
按照文件所属的组查找 |
-prune |
忽略某个目录 |
-mtime -n/+n |
按照文件更改时间来查找,-n表示n天之内,+n表示n天之前 |
-atime -n/+n |
按照文件访问时间来查找 |
-ctime -n/+n |
按照文件创建时间来查找 |
-type |
按照文件类型查找 |
-size N[bcwkMG] |
按照文件大小查找,bcwkMG 是可选的单位 |
-depth |
使查找在进入子目录前先行查找完本目录 |
-maxdepth |
设置查找目录的最大深度 |
-mindepth |
设置查找目录的最小深度 |
其中-type 支持的类型如下:
| 类型 | 含义 |
|---|---|
f |
普通文件 |
d |
目录 |
l |
符号链接文件 |
s |
socket |
b |
块设备文件 |
c |
字符设备文件 |
p |
管道文件 |
6.3 操作(可不写)
对查找出来的文件进行怎样的操作,支持如下操作:
| 操作 | 含义 |
|---|---|
-print |
输出到控制台,不写的话,默认为此操作 |
-exec |
对查找到的文件执行shell命令 |
-ok |
对查找到的文件执行shell命令,在执行命令之前会先提示用户是否执行,比-exec 更安全 |
exec 与 -ok 的格式为:
-exec/-ok command {} \;
其中可变的只有command,其它都是固定写法,不用改变,command 为Linux 命令,比如ls,rm。
6.4 例子
find . -name "*.log" `在当前目录及其子目录查找,文件名以".log" 结尾的文件,并输出`
find . -perm 777 `在当前目录及其子目录查找,权限为"777" 的文件,并输出`
find . -type d `在当前目录及其子目录查找,文件类型为目录的文件,并输出`
find . -name "*.c" -exec rm {} \; `在当前目录及其子目录查找,文件名以".c" 结尾的文件,并删除`
find . -size +100c `在当前目录及其子目录查找,文件大小大于100字节的文件,并输出`
find . -size -100c `在当前目录及其子目录查找,文件大小小于100字节的文件,并输出`
find . -size 100c `在当前目录及其子目录查找,文件大小等于100字节的文件,并输出`
7,chmod
在类Unix 系统中,文件的调用权限分三级,分别是:文件拥有者、群组、其他。文件的操作权限 分三种分别是:可读,可写,可执行。
chmod 命令用于修改文件的调用权限和操作权限,该命令的语法格式如下(这里只列出了-R 参数,还有其它):
chmod [-R] `mode` `filename`
7.1 R参数(可选)
-R 参数表示,是否操作当前目录下的所有文件与子目录。
7.2 mode
mode 包含三部分:[ugoa],+-=,[rwx],它们的含义如下:
| 字母 | 含义 |
|---|---|
u |
该文件的拥有者 |
g |
与该文件所属同一群组者 |
o |
其它用户 |
a |
所有用户,即ugo 三者皆是 |
+ |
增加权限 |
- |
取消权限 |
= |
唯一设定权限,即设置为只有一个权限 |
r |
可读权限 |
w |
可写权限 |
x |
可执行权限 |
7.3 例子
chmod ugo+r file `将文件file 设为所有人皆可读`
chmod a+w file `将文件file 设为所有人皆可写`
chmod ug+w,o-w file1 file2 `将文件file1 file2设为该文件拥有者,与其所属同一个群组者可写入,但其它用户不可写`
chmod -R a+r dir/* `将dir 目录下的所有文件与子目录设为所有人可读`
8,chown
chown 命令用于将文件的拥有者改为指定的用户或组。
一般来说chown 命令由root 使用,因为普通用户没有权限改变他人文件的拥有者,也没有权限把自己的文件拥有者改设为他人。
chown 命令的语法格式如下:
chown [-R] user[:group] file_list
-R 参数表示,是否操作当前目录下的所有文件与子目录。
其它参数含义:
| 参数 | 含义 |
|---|---|
user |
新的文件拥有者 |
group |
新的文件拥有者组 |
file_list |
要修改的文件,可以是一个文件,也可以是一个文件列表 |
例子:
chown runoob:runoobgroup file `将文件file 的拥有者设为runoob,群组设为runoobgroup`
chown -R root:root dir/* `将dir/ 目录下的所有文件与子目录的拥有者设为runoob,群组设为runoobgroup`
9,scp
scp 命令用于远程复制目录或文件,它基于ssh,scp是 secure copy 的缩写。scp 命令是rcp 命令的加强版,scp 是加密传输,rcp 是非加密传输。
scp 的语法格式如下:
scp [可选参数] file_source file_target
有如下常用可选参数:
| 参数 | 协议 |
|---|---|
-1 |
使用协议ssh1 传输 |
-2 |
使用协议ssh2 传输 |
-4 |
使用IPv4协议寻址 |
-6 |
使用IPv6协议寻址 |
-C |
使用压缩 |
-r |
递归复制整个目录 |
-P |
指定传输端口 |
例子:
scp local_file remote_username@remote_ip:remote_folder `指定了用户名,命令执行后需要再输入密码`
scp local_file remote_ip:remote_folder `没有指定用户名,命令执行后需要输入用户名和密码`
scp -r local_folder remote_username@remote_ip:remote_folder `复制目录`
scp -r local_folder remote_ip:remote_folder `复制目录`
scp remote_username@remote_ip:remote_file local_folder `从远程复制到本地`
scp -r remote_username@remote_ip:remote_folder local_folder `从远程复制到本地`
二,文档处理
10,wc
wc 命令用于计算行数,字数和文件大小(以字节为单位),其语法格式如下:
wc [-lcw] filename
其参数含义如下:
| 参数 | 含义 |
|---|---|
-l |
计算文件行数 |
-c |
计算文件大小 |
-w |
计算文件字数 |
不带参数 |
以上三者都会计算 |
11,grep
grep 命令用于查找文件中符合特定条件的字符串,其语法格式如下:
grep `[参数]` `匹配条件` `文件`
常用参数如下:
| 参数 | 含义 |
|---|---|
-c |
计算符合条件的行数 |
-e |
使用正则表达式,一个-e 后只能跟一个pattern,可以写多个-e |
-E |
使用正则表达式,可以使用| 来分割多个pattern ,从而写多个pattern |
-i |
忽略大小写 |
-l |
只列出符合条件 的文件名 |
-L |
只列出不符合条件 的文件名 |
-n |
显示行号 |
-o |
只显示匹配pattern 的部分,这个参数很有用 |
-v |
显示不符合条件的所有行 |
-r |
递归目录查找 |
--color |
使匹配到的字符串高亮显示 |
-A<行数N> |
除了显示符合条件的那一行之外,还显示该行之后N行的内容 |
-B<行数N> |
除了显示符合条件的那一行之外,还显示该行之前N行的内容 |
-C<行数N> |
除了显示符合条件的那一行之外,还显示该行之前和之后N行的内容 |
例子:
grep test *file `在当前目录下,从所有的以"file" 为后缀的文件中,匹配字符串"test"`
grep -r hello ./ `在当前目录下,递归所有的文件和目录,匹配字符串"hello"`
grep -v hello *txt `在当前目录下,从所有的以"txt" 为后缀的文件中,显示所有不匹配字符串"hello" 的行`
下面三个命令sort,uniq,awk 相对来说较复杂,限于篇幅,所以不在本文中详细介绍,具体可点开相应链接查看。
12,sort
sort 命令用于将文本内容进行排序,其以文本内容的行为单位,以ASCII 码的次序进行排列。
详见这里。
13,uniq
uniq 命令用于检查及删除文本文件中重复出现的行列。
详见这里。
14,awk
awk 命令是一个强大的文本分析工具,它有着复杂的功能。
详见这里。
(完。)
实用的linux 命令(上)的更多相关文章
- 20个实用的Linux命令
20个实用的Linux命令 2016-04-16 程序员之家 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时 ...
- 最实用的 Linux 命令行使用技巧
我们可能每天都会要使用到很多的 Linux 命令行. 我们也会网络上知晓一些使用它们的小技巧,但是如果我们没有时常来进行练习,就有可能会忘掉怎么去使用它们. 所以我就决定把那些你可能会忘记的小提示和小 ...
- 10个最实用的Linux命令
收集了一些对于Linux新手最基本但最有用的Linux命令.你完全可以键入这些命令来管理你的服务器.这些命令对于学习vps或服务器管理的新手最为简便.1.List命令 ls -a //列出所有文件 l ...
- 〖Linux〗不知谁写的,很实用的Linux命令
第一部分 . sudo 运行上一条命令 sudo !! . HTTP方式共享当前目录 python -m SimpleHTTPServer . vim保存一个root用户文件 :w !sudo tee ...
- 实用收藏Linux命令备忘
系统操作 #使用shutdown命令马上重启系统[root@H32 ~]# shutdown –r now #使用shutdown命令马上关闭系统[root@H32 ~]# shutdown –h n ...
- 这几个很实用的Linux命令,千万别忘记了!
- 常用加实用的Linux命令
命令是计算机执行任务的指令.可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息等. 下面是各种基本的命令可供参考. 1.Ls - List ls会列举出当前工 ...
- 一些实用的linux命令
一直在用linux,可linux下的命令还是用得不是很熟悉,记录一下比较有用命令: ``和$()是一样的,都是用指令的执行结果来替换. linux下 echo hello world => ...
- 一些常用&实用的Linux命令
这些指令还是很常用的,最起码有些我每天都要用.当然,很多东西还是写成shell脚本用起来更方便. man 命令(查看一个命令的详细帮助信息) 命令 --help(显示一个命令的简单帮助信息) 命令 | ...
随机推荐
- python基础知识 目录 简介
1.1编程语言介绍与分类 什么是编程语言? 本质:与人类语言一样.沟通 电流+一堆硬件 高电压1 低电压0 高电压1 低电压0 高电压1 低电压0 8 晶体管 010101010101 play so ...
- D. Fight with Monsters
D. Fight with Monsters time limit per test 1 second memory limit per test 256 megabytes input standa ...
- 为什么我建议每个开发人员都需要学Python?
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/10-reasons-why-every-d ...
- 认识STM32芯片
STM32中的ST指的是意法半导体,M是Microelectronics的缩写,32表示32位,即意法半导体公司开发的32位微控制器 ST官网:https://www.st.com/content/s ...
- 微信小程序 使用include导入wxml文件注意的问题
(1)使用inlucde的时,要注意将最后的终止符 / 添加上去,否则不能正常的导入界面内容 <include src="header.wxml"/> (2)引入文件注 ...
- Linq 学习——将List集合作为筛选条件查询数据
例: A表是一个List集合,B表也是一个List集合 .A与B有一个共同的字段 RecognitionCarCode B表通过RecognitionCarCode去重后拿到两个值{'1','2'}记 ...
- Visual C++ 6.0踩坑记录---在Win10下安装Visual C++ 6.0安装成功后点击“打开”按钮闪退问题
前言: 为了更好的学习C及C++,前段时间下载了Microsoft Visual C++ 6.0(以下简称VC6),原因是VC6具有查看反汇编代码.监视内存.寄存器等功能,并且因为本人正在学习滴水逆向 ...
- 让图片适合在静态文本控件窗口大小 MFC
1.加入 IDC_STATIC1 静态文本控件. 2.为文本控件添加 STATIC 型变量 3.在OnInitDialog函数中添加以下代码 //设置该静态控件为显示位图的 m_bitmap.Modi ...
- AJ学IOS(19)UI之QQ好友列表
AJ分享,必须精品 先看效果图 哈哈,这次猫猫给来个动态的图片,这个看起来带劲 实现思路 首先建立模型 这里用到的是一个双层的模型. cell的实现 这里一看其实就知道是一个tableView,我们自 ...
- 软件包管理rpm和yum
rpm的使用: 安装的包相关包信息会保存在/var/lib/rpm目录下的文件中 安装参数: -i install安装 -v 显示详细信息 -h 打印####号 -V 校验软件包,会到/var/lib ...