今天介绍几个我常用的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 命令会将文件内容快速的输出到控制台,它并不能控制浏览文件的进度。如果想控制浏览文件的进度,可以使用moreless 命令。

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,其它都是固定写法,不用改变,commandLinux 命令,比如lsrm

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 命令用于远程复制目录或文件,它基于sshscpsecure 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" 的行`

下面三个命令sortuniqawk 相对来说较复杂,限于篇幅,所以不在本文中详细介绍,具体可点开相应链接查看。

12,sort

sort 命令用于将文本内容进行排序,其以文本内容的为单位,以ASCII 码的次序进行排列。

详见这里

13,uniq

uniq 命令用于检查及删除文本文件中重复出现的行列。

详见这里

14,awk

awk 命令是一个强大的文本分析工具,它有着复杂的功能。

详见这里

(完。)

实用的linux 命令(上)的更多相关文章

  1. 20个实用的Linux命令

    20个实用的Linux命令 2016-04-16 程序员之家 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时 ...

  2. 最实用的 Linux 命令行使用技巧

    我们可能每天都会要使用到很多的 Linux 命令行. 我们也会网络上知晓一些使用它们的小技巧,但是如果我们没有时常来进行练习,就有可能会忘掉怎么去使用它们. 所以我就决定把那些你可能会忘记的小提示和小 ...

  3. 10个最实用的Linux命令

    收集了一些对于Linux新手最基本但最有用的Linux命令.你完全可以键入这些命令来管理你的服务器.这些命令对于学习vps或服务器管理的新手最为简便.1.List命令 ls -a //列出所有文件 l ...

  4. 〖Linux〗不知谁写的,很实用的Linux命令

    第一部分 . sudo 运行上一条命令 sudo !! . HTTP方式共享当前目录 python -m SimpleHTTPServer . vim保存一个root用户文件 :w !sudo tee ...

  5. 实用收藏Linux命令备忘

    系统操作 #使用shutdown命令马上重启系统[root@H32 ~]# shutdown –r now #使用shutdown命令马上关闭系统[root@H32 ~]# shutdown –h n ...

  6. 这几个很实用的Linux命令,千万别忘记了!

  7. 常用加实用的Linux命令

    命令是计算机执行任务的指令.可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息等. 下面是各种基本的命令可供参考. 1.Ls - List ls会列举出当前工 ...

  8. 一些实用的linux命令

    一直在用linux,可linux下的命令还是用得不是很熟悉,记录一下比较有用命令: ``和$()是一样的,都是用指令的执行结果来替换. linux下 echo hello    world => ...

  9. 一些常用&实用的Linux命令

    这些指令还是很常用的,最起码有些我每天都要用.当然,很多东西还是写成shell脚本用起来更方便. man 命令(查看一个命令的详细帮助信息) 命令 --help(显示一个命令的简单帮助信息) 命令 | ...

随机推荐

  1. Java Web项目bug经验202002112049

    运行程序后,如果配置有问题,可能不会进代码,而直接报错.

  2. A - A FZU - 2205

    A - A FZU - 2205 一个国家有 N 个城市,国王不希望国家中存在三个城市之间能够互相直接到达,但道路要求尽可能的多,道路是双向边,且无重边无自环. 国王希望你最好能解决这个问题.求最多存 ...

  3. jmeter术语

    1.负载:模拟业务请求操作对服务器造成压力的过程 2.性能测试(performance testing):模拟用户负载来测试系统在负载情况下,系统的响应时间.吞吐量等指标是否满足性能要求 3.负载测试 ...

  4. 1057 Stack (30分)(树状数组+二分)

    Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...

  5. VMwareWorkstation如何设置共享文件夹

    首先需要安装VMware Tools 这个嘛,应该是需要安装的,之前没有安装好像就没有设置成功. 没有安装的参考如何安装VMware Tools 然后在虚拟机设置里面设置共享路径 右键虚拟机名称,打开 ...

  6. 微信号网页版api

    Django Wechat Api djangowechatapi是基于wxpy和django制作的web应用 安装 使用pip pip install djangowechatapi 源码安装 gi ...

  7. MySQL数据库三

    MySQL数据库三 多表查询: 有条件的内连接 将两张表根据相同的id连接起来 select * from info join details on info.id = details.id sele ...

  8. .NET MVC中登录过滤器拦截的两种方法

    今天给大家介绍两种ASP中过滤器拦截的两种方法. 一种是EF 的HtppModule,另一种则是灵活很多针对MVC的特性类 Attribute 具体什么是特性类可以参考着篇文章:https://www ...

  9. MySQL学习之路1-Mac下启动连接MySQL服务

    MySQL简介 (MySQL是目前最流行的关系型数据库管理系统,现属于Oracle公司.) MySQL主要特点: 支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64 ...

  10. windows上jmeter目录结构功能

    1.bin :存储了jmeter的可执行程序,如启动 2.lib:存储了jmeter的整合的功能(如.jar文件程序) 3.启动jmeter:双击bin\apachejmeter.jar jmeter ...