我的常用linux小命令

这里并不是系统详细介绍每一个Linux命令,仅仅是记录本人在平时工作中经常用到的一些比较基础的命令及相关的参数,同时用了一些简单的例子来说明这些命令的用途,以及如何用多种命令来实现同一种功能。

1、ls命令

要显示当前目录下的文件列表时,我经常就使用ls命令的以下三个参数。

-l 使用长列表格式
-h 文件大小以人可读的方式打印
-t 以最后修改时间排序,最新的放在最前

使用例子,如何显示当前文件夹下的目录?

方法1: ls -l | grep ‘^d‘

方法2: ls -l | awk ‘/^d/‘

2、grep命令

当需要找出匹配指定模式的文件时,经常会用到grep命令的以下几个参数。

-w 完全匹配整个单词,而不是字符串的一部分,若要匹配abc,则不会匹配abcd
-i 忽略大小写
-n 显示指定模式在匹配文件中的行号
-v 反向匹配,即匹配不符合的行
-f 从文件中获取待匹配的模式

使用例子:

grep ^$ file 匹配文件file中的所有空行

grep -v ‘^$‘ file 匹配文件file中的所有非空行

grep ‘[^^$]‘ file 匹配文件file中的所有非空行

grep -vf t2 t1 获取t1中跟t2数据不匹配的数据,即获取在t1,但不在t2的数据

正则表达式[^$]表示匹配空行,前面加上^即表示不匹配空行

3、排序去重命令 sort vs uniq

sort 命令用来对数据进行排序。

-t 用于指定域的分隔符
-n 以数字方式进行比较,而不是字符比较
-r 反向排序
-u 去除重复的行
-k 以指定的域开始进行排序,域从1开始
+表示以第几域排序,-表示不以第几域排序,如 sort +0 -2 +3则表示以第0域开始排序,略过第2域,然后再使用第3域排序

uniq 用于删除文本文件中的连续重复的行,一般使用sort之后再调用uniq。

-d 仅显示重复一次的行
-c 打印每一重复行出现的次数

sort -u 和uniq的区别在于,uniq仅去除连续重复的行,而sort -u会去除整个文本中所有重复的行,例如,

#源文件file1中的内容
hello world
Good morning
Good morning
hello world
#使用sort -u < file1的结果如下:
hello world
Good morning
使用uniq < file1的结果如下:
hello world
Good morning
hello world

4、tr命令

当需要进行一些简单的字符串替换和删除时,tr命令就会显得非常有用。

例如,下面的tr操作都是没有直接修改源文件,修改则需要文件重定向

tr ‘A-Z‘ ‘a-z‘ < file 将字符串的大写字母都转为小写字母:
tr -s ‘ ‘ ‘ ‘ < file 把多个连续空格替换成单个空格,-s选项可将多个连续字符替换为一个指定字符
tr -s ‘\n‘ < file 删除空行
tr -d ‘[0-9]‘ < file 删除所有数字,-d选项可以删除指定的字符

5、tail命令

tail命令用于显示文件末尾指定区域的内容,如tail -10 file, 表示显示文件file最后10行内容,tail命令有很多参数,其中有一个经常使用而且非常好用的参数 "-f":

tail -f 动态显示文件新增的内容

该参数作用是不返回文件结束符,并动态显示文件新增的内容,需要结束时,需要用户手动进行中断。这个命令在显示日志的时候作用就非常明显,对于一个运行中的服务器,可能会不断将服务器当前运行状态和错误状态写入日志文件,使用tail -f,将会以一定的时间实时追踪该文件的所有更新。

6、find命令

在查找文件文件的时候,首先会想到是使用find命令。

-name 按照文件名查找文件

例如,查找当前目录下名字以cpp结尾的文件

find . -name "*cpp" | xargs grep "abc"

有些系统对参数的长度有限制,xargs命令的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。上面的find中,当前目录下可能包含很多名字以cpp结尾的文件,因此为了避免“参数列太长”或“参数列溢出“的错误,使用xargs来接收find命令的输出。

7、alias命令

alias命令用于设置命令的别名。利用alias可以把很长的命令变成任意简短的命令。

若要添加自己的alias,格式如下

alias ll="ls -lht"

上述添加alias的操作,在用户退出后就变为无效了,若要永久生效,可以修改配置文件~/.bashrc文件(仅修改用户自己),在文件最后面加上你自己定义的alias,如:

alias la="ls -al --color=auto"

本次修改,要在下次登录的时候才能生效。若要马上生效,可以输入:

source ~/.bashrc

8、进程相关命令

ps命令用于查看当前运行的进程。

ps -ef 显示系统运行的进程

top 用于查看当前进程运行情况,包括内存使用、cpu使用量、交换区使用量等。

shift + m 可以按内存占用量来排序进程,查找进程内存使用量就最有用了
q 退出

9、常用快捷键

Ctrl + z 将当前程序放到后台并挂起
Ctrl + d 输入文件结束符,在命令行中直接输入Ctrl + D,即退出shell
Ctrl + a 跳到命令行的头部位置
Ctrl + e 跳到命令行的尾部位置
Ctrl + w 删除一个单字(word)
Ctrl + u 删除光标到行首的字符
Ctrl + k 删除光标到行末的字符
Ctrl + c 中断当前程序

10、任务命令

命令执行顺序

&& 第一个命令成功才执行第二个命令
|| 第一个命令失败才执行第二个命令
jobs 查看挂起的当前的任务列表
fg + N  将第N个任务放到前端,唤醒Ctrl + z挂起的任务

11、vim命令

!%xxd 以十六进制的方式查看文件内容
! 后面加上shell命令就而已执行相应的shell命令
* 将光标移至下一个匹配的单词
# 将光标移至上一个匹配的单词
[[ 光标跳到函数的开头
]] 光标调到函数的结尾说
[{ 光标跳到上一个作用域的开头
]} 光标跳到下一个作用域的开头
ggvG或者ggVG 全选并高亮
gg=G 对整个文件内容进行格式化缩进
u 撤销上一个动作
Ctrl + r 取消上一个撤销动作
set scb 同步两个屏幕的文件,其中一个文件移动,则令一个文件跟着移动,对比两个文件时常常用到,解开分屏set scb!

两个很好用的插件ctag和Tlist:

ctags

功能是扫描指定的源文件,找出其中所包含的语法元素,并将找到的相关内容记录下来。记录的内容包括:宏定义、枚举型、变量的值、函数的定义、原型和声明、namespace、typedefs变量 、类、结构、枚举类型和联合 类、结构和联合中成员变量或函数等。通过ctags我们可以很容易的找到某个变量或者函数等在哪个文件定义。

Tlist

在当前vim中,新开一个区域,显示了当前文件的函数、类、全局变量等定义,输入回车即可跳转到相应内容的起始位置。平时在查找某个函数时,就可以用到了。

12、shell中注释一块代码

行注释

shell中默认提供的注释方法是#,作用是注释一行,例如

#这里是一行注释
if [ "1" = "2" ]; then
    DoSomething
fi

块注释

shell中并没有提供块注释的方法,但是我们可以使用另一种方法来实现块注释,这种叫做here document。here document表示包含的这段内容是一个整体数据。下面代码中,两个document之间的内容是一个整体数据。

<<document
        ....
document

here document,<<符号表示这是一个文本内容,由其后的字符串包含的范围就是文本的正文,:符号表示空命令,什么都不干,下面的意思就是将一个文本传给空命令,即对文本不做任何处理,间接就等于注释了

:<<block
    code
block

避免反引号不能被注释的做法是加上单引号

:<<block‘
    code
‘block

一些小问题

    问题1: 如何删除文件中的所有空行?

1、sed ‘/^$/d‘ file 对匹配的空行执行删除操作
2、awk ‘/./ {print $0;}‘ file 匹配除空白换行字符外的所有字符,即匹配非空行
3、awk ‘/[^^$]/{ print $0; } file

    问题2: 如何删除文件名带空格的文件,如"a b.html"s?

1、对空格进行转义,即空格前加上反斜杠,可以用反斜杠\来屏蔽特殊字符
2、使用双引号括住文件名
3、使用单引号括住文件名 

    问题3:

一个傻x错误,在执行一段代码后,然后判断$?是否为0,以决定前面的功能代码是否执行成功,但是发现什么情况下都是返回成功,查了好久,原来是在判断$?之前,使用了echo输出 $?,所以永远都是为真了

我的常用linux小命令

时间: 2024-10-13 01:40:24

我的常用linux小命令的相关文章

Linux小命令(1)yum

Linux命令(1)yum 使用最简易安装CentOS后.开启了网卡基本就可以使用yum在Linux中下载安装软件了.Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE.CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装. 命令格式如下: #yum [options] [command] [package ...] 常用命令: #yum grouplikst 查询可能批量安

37条常用Linux Shell命令组合

序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \; find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3 按cpu利用率从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -nr 4 打印说cache里的URL grep -r -a jpg /data/cache/*

Linux小命令(4)ls

Linux命令(4)ls ls是列出文件或者目录的命令,ls是Linux下最常用的命令.ls就是list的缩写,缺省下ls用来打印当前的目录清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单了.通过ls命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限,ls命令在日常的Linux操作中用的很多. 下面举了几个常用的ls的命令.详细的可以通过#man ls去查O(∩_∩)O~ ? 命令格式: #ls [-la1Rh] [路径] ? 常用参数: #ls 列出目录和文件

常用Linux Shell命令组合

序号 任务 命令组合 1 删除0字节文件 find . -type f -size 0 -exec rm -rf {} \;find . type f -size 0 -delete 2 查看进程,按内存从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -k5 -nr 3 按cpu利用率从大到小排列 ps -e -o “%C : %p : %z : %a”|sort -nr 4 打印说cache里的URL grep -r -a jpg /data/cache/*

Linux小命令(3)cat

Linux命令(3)cat Cat是查看文件内容 ? 命令格式:cat file 常用参数说明: -n或-nimber由1开始对所有输出的行数编号. 例子: Cat /etc/passwd ? -b或-number-nonblank和-n相似,只不过对于空白行不编号. 例子: Cat /etc/passwd ? ? -s或-spueeze-blank当遇到有连续两行以上的空白行,就代换为一行的空白行 ? 首先进入home目录,创建几个文件用来测试,并且输入信息 #cd ~????????????

常用Linux基础命令

1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行.2. ls 查看目录或者文件的属*,列举出任一目录下面的文件 eg: ls /usr/man ls -l a.d表示目录(directory),如果是一个”-”表示是文件,如果是l则表示是一个连接文件(link) b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x). 3. cp 拷贝文件 eg:

13类100个常用Linux基础命令

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了.然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个管理Linux系统的人有所不同.因为不想在使用是总是东查西找,所以在此总结一下,方便一下以后的查看. 不多说,下面就说说最常用的Linux命令. 一.命令的基本格式 二

测试常用——linux 基础命令

测试常用 的 linux 基础命令 1,查看服务器日志vi 查看文件(查找关键字:exception/exception  :  从上往下找,按n查找下一个关键字,按shift+n查找上一个关键字?exception  :  从下往上找) 2,查看进程ps -ef :查看所有进程,PID是进程号kill - 9 30633(进程号):  强制杀死一个进程ps -ef|grep 进程关键字:  查找进程关键字相匹配的进程信息grep:把前面命令的输出结果,当做后面命令的输入数据, 过滤命令举例:p

Linux小命令date详解

Linux date命令的用法 1.命令功能 : date可以用来显示和设定系统的日期和时间. 2.命令参数 : -d<string>:显示字符串所指的日期和时间.字符串前后加双引号 -s<string>:根据字符串来设置日期和时间.字符串前后加双引号 -u:显示GMT --help:在线帮助 --version:显示版本信息 3.日期格式字符串列表 %n : 下一行 %t : 跳格 %H : 小时(00-23) %I : 小时(01-12) %k : 小时(0-23) %l :