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

三:待续~~

目录
相关文章
|
16天前
|
运维 安全 Linux
Linux中传输文件文件夹的10个scp命令
【10月更文挑战第18天】本文详细介绍了10种利用scp命令在Linux系统中进行文件传输的方法,涵盖基础文件传输、使用密钥认证、复制整个目录、从远程主机复制文件、同时传输多个文件和目录、保持文件权限、跨多台远程主机传输、指定端口及显示传输进度等场景,旨在帮助用户在不同情况下高效安全地完成文件传输任务。
112 5
|
15天前
|
Linux
Linux系统之expr命令的基本使用
【10月更文挑战第18天】Linux系统之expr命令的基本使用
51 4
|
2天前
|
缓存 监控 Linux
|
6天前
|
Linux Shell 数据安全/隐私保护
|
7天前
|
域名解析 网络协议 安全
|
14天前
|
监控 Linux Shell
|
13天前
|
运维 监控 网络协议
|
16天前
|
Unix Linux
Linux | Rsync 命令:16 个实际示例(下)
Linux | Rsync 命令:16 个实际示例(下)
28 3
Linux | Rsync 命令:16 个实际示例(下)
|
19天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
75 2
Linux系统之lsof命令的基本使用
|
3天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
11 2