linux基本命令

简介: 一:linux命令1.ls命令-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)-d :仅列出目录本身,而不是列出目录的文件数据-h :将文件容量以较易读的方式(GB,k...

一:linux命令

1.ls命令

-l :列出长数据串,包含文件的属性与权限数据等

-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)

-d :仅列出目录本身,而不是列出目录的文件数据

-h :将文件容量以较易读的方式(GB,kB等)列出来

-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

2.MV命令([选项] 源文件或目录 目录或多个源文件 | 移动或重命名文件)

-b  覆盖前做备份

-f  如存在不询问而强制覆盖

-i  如存在则询问是否覆盖-u  较新才覆盖

-t  将多个源文件移动到统一目录下,目录参数在前,文件参数在后eg:    

mv a /tmp/ 将文件a移动到 /tmp目录下    

mv a b 将a命名为b    mv /home/zenghao test1.txt test2.txt test3.txt

3.rmdir 删除空目录

-v  显示执行过程

-p  若自父母删除后父目录为空则一并删除

4.tac | 反向显示

5.more | 按页查看文章内容,从前向后读取文件,因此在启动时就加载整个文件

+n  从第n行开始显示

-n  每次查看n行数据

+/String    搜寻String字符串位置,从其前两行开始查看

-c  清屏再显示

-p  换页时清屏

6.nl [选项]… [文件]… | 将输出内容自动加上行号

-b

-b a 不论是否有空行,都列出行号(类似 cat -n)

-b t 空行则不列行号(默认)

-n 有ln rn rz三个参数,分别为再最左方显示,最右方显示不加0,最右方显示加0

7.vi 编辑文件

:w filename 将文章以指定的文件名保存起来

:wq保存并退出

:q!不保存而强制退出命令行模式功能键1)

1)插入模式   

 按「i」切换进入插入模式「insert mode」,按"i"进入插入模式后是从光标当前位置开始输入文件;    

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;    

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2)从插入模式切换为命令行模式  按「ESC」键。

3)移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「j」、「k」、「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往"后"移动一页。

按「ctrl」+「f」:屏幕往"前"移动一页。

按「ctrl」+「u」:屏幕往"后"移动半页。

按「ctrl」+「d」:屏幕往"前"移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的"行尾"。

按「^」:移动到光标所在行的"行首"按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

4)删除文字

「x」:每按一次,删除光标所在位置的"后面"一个字符。

「#x」:例如,「6x」表示删除光标所在位置的"后面"6个字符。

「X」:大写的X,每按一次,删除光标所在位置的"前面"一个字符。

「#X」:例如,「20X」表示删除光标所在位置的"前面"20个字符。

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

5)复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与"y"有关的复制命令都必须与"p"配合才能完成复制与粘贴功能。

6)替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7)回复上一次操作

「u」:如果您误执行一个命令,可以马上按下

「u」,回到上一个操作。按多次"u"可以执行多次回复。

8)更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

9)跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

8.which 

可执行文件名称 | 查看可执行文件的位置,在PATH变量指定的路径中查看系统命令是否存在及其位置

9.whereis [-bmsu] [BMS 目录名 -f ] 文件名| 定位可执行文件、源代码文件、帮助文件在文件系统中的位置

-b  定位可执行文件。

-m  定位帮助文件。

-s  定位源代码文件。

-u  搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。

-B  指定搜索可执行文件的路径。

-M  指定搜索帮助文件的路径。

-S  指定搜索源代码文件的路径。

10.useradd [-u UID] [-g 初始群组] [-G 次要群组] [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 | 新增用户

-M  不建立用户家目录!(系统账号默认值)

-m  建立用户家目录!(一般账号默认值)

-r  建立一个系统的账号,这个账号的 UID 会有限制

-e  账号失效日期,格式为『YYYY-MM-DD』

-D  查看useradd的各项默认值

11.env 

显示环境变量

12.export 

把普通变量变成环境变量

13.ps 

 列出当前进程的快照

a  显示所有的进程

-a  显示同一终端下的所有程序

e  显示环境变量

f  显示进程间的关系

-H  显示树状结构r  显示当前终端的程序

T  显示当前终端的所有程序

-au 显示更详细的信息

-aux    显示所有包含其他使用者的行程

-u  指定用户的所有进程

14.crontab 

 定时任务调度

file    载入crontab-e  编辑某个用户的crontab文件内容

-l  显示某个用户的crontab文件内容

-r  删除某个用户的crontab文件

15.AWK

说到了内建变量,我们可以来看看awk的一些内建变量:

$0         当前记录(这个变量中存放着整个行的内容)

$1~$n          当前记录的第n个字段,字段间由FS分隔

FS        输入字段分隔符 默认是空格或Tab

NF       当前记录中的字段个数,就是有多少列

NR      已经读出的记录数,就是行号,从1开始,如果有多个文件话,这个值也是不断累加中。

FNR          当前记录数,与NR不同的是,这个值会是各个文件自己的行号

RS        输入的记录分隔符, 默认为换行符

OFS     输出字段分隔符, 默认也是空格

ORS      输出的记录分隔符,默认为换行符

FILENAME         当前输入文件的名字

实例:

awk '$6 ~ /FIN/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

awk '$6 ~ /WAIT/ || NR==1 {print NR,$4,$5,$6}' OFS="\t" netstat.txt

上面的第一个示例匹配FIN状态, 第二个示例匹配WAIT字样的状态。其实 ~ 表示模式开始。/ /中是模式。这就是一个正则表达式的匹配。


$ awk 'NR!=1{if($6 ~/TIME|ESTABLISHED/) print >"1.txt";

else if($6 ~/LISTEN/) print >"2.txt";

else print >"3.txt"}' netstat.txt

#运行前

BEGIN {

math = 0

english = 0

computer = 0

printf"NAME    NO.   MATH  ENGLISH  COMPUTER   TOTAL\n"

printf"---------------------------------------------\n"

}

#运行中

{

math+=$3

english+=$4

computer+=$5

printf"%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5

}

#运行后

END {

printf"---------------------------------------------\n"

printf"  TOTAL:%10d %8d %8d \n", math, english, computer

printf"AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR

}

#从file文件中找出长度大于80的行

awk'length>80'file

#按连接数查看客户端IP

netstat-ntu |awk'{print $5}'|cut-d: -f1 |sort|uniq-c |sort-nr

#打印99乘法表

seq9 |sed'H;g'|awk-vRS='''{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'

二:linuxSHELL编程

1.基本例子:

#!/bin/sh

cd ~

mkdir shell_tut

cd shell_tut

for ((i=0; i<10; i++)); do

touch test_$i.txt

done


第1行:指定脚本解释器,这里是用/bin/sh做解释器的

第2行:切换到当前用户的home目录

第3行:创建一个目录shell_tut

第4行:切换到shell_tut目录

第5行:循环条件,一共循环10次

第6行:创建一个test_1…10.txt文件

第7行:循环体结束

cd, mkdir, touch都是系统自带的程序,一般在/bin或者/usr/bin目录下。for, do, done是sh脚本语言的关键字

2.字符串操作:

拼接字符串

your_name="qinjx"

greeting="hello, "$your_name" !"

greeting_1="hello, ${your_name} !"

echo $greeting $greeting_1

获取字符串长度:

string="abcd"

echo ${#string} #输出:4

提取子字符串

string="alibaba is a great company"

echo ${string:1:4} #输出:liba

查找子字符串

string="alibaba is a great company"

echo `expr index "$string" is`#输出:8,这个语句的意思是:找出单词is在这名话中的位置

3.ifelse

if condition1

then

command1

elif condition2

command2

else

commandN

fi

4.case:

case "${opt}" in

"Install-Puppet-Server" )

install_master $1

exit

;;

"Install-Puppet-Client" )

install_client $1

exit

;;

"Config-Puppet-Server" )

config_puppet_master

exit

;;

"Config-Puppet-Client" )

config_puppet_client

exit

;;

"Exit" )

exit

;;

* ) echo "Bad option, please choose again"

esac

三:待续~~

目录
相关文章
|
29天前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
75 8
|
29天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
216 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
77 3
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
70 2
|
12天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
39 14
Linux 10 个“who”命令示例
|
22小时前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
34 20
|
1天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
20 7
|
21天前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
31 9
|
19天前
|
监控 网络协议 Linux
Linux netstat 命令详解
Linux netstat 命令详解
|
25天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
89 3