欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

命令大全

程序员文章站 2022-04-10 22:07:34
"第一阶段 快捷键 1" "第二阶段 文件和目录操作命令 1" "1.1 date / useradd 1" "1.2 echo 调用变量 2" "1.3 whoami 查看用户名 2" "1.4 tab命令补全 2" "1.5 history 历史命令 2" "1.6 alias 别名 3" "1 ......

第一阶段 快捷键 1

第二阶段 文件和目录操作命令 1

1.1 date / useradd 1

1.2 echo 调用变量 2

1.3 whoami 查看用户名 2

1.4 tab命令补全 2

1.5 history 历史命令 2

1.6 alias 别名 3

1.7 ls获取命令帮助help 4

1.8 cd:切换目录change directory 5

1.9 mkdir:创建目录make directory 5

2.0 touch创建文件 6

2.1 tree 树状显示目录文件结构 7

2.2复制命令cp 7

2.3 移动命令mv 8

2.4 删除rm 9

2.5 cat查看文件内容 10

2.6 查看命令more和less 10

2.7 查看文件前n行 head 11

2.8查看尾部tail 11

2.9 grep awk sed三剑客 11

第一部分 快捷键

ctrl+a 将光标跳转至行首
ctrl + e 将光标跳转至行末
ctrl + w 以空格为单位,将当前光标位置之前的内容删除
.ctrl +u 将当前光标位置之前的内容全部删除
ctrl + l 清屏
ctrl + c 终止当前命令
ctrl + d 退出,断开当前连接(exit,logout)
ctrl + z 挂起,放后台执行
ctrl + r 搜索历史命令
ctrl+s 锁屏
ctrl+q 解锁
ctrl+左右 按照单词跳转光标
esc + . 瞬间显示出上一条命令,最后的内容,以空格分隔
ctrl+y 将粘贴板上的内容粘贴出来,配合u,k,w使用

第二部分文件和目录操作命令

1.1 date / useradd

date 获取当前时间
useradd 创建用户

例如:

命令方式: [root@gong ~]# date #获取当前时间 

2019年 06月 14日 星期五 15:47 cst 

 

[root@gong ~]# useradd gjy 

\#增加用户名

1.2 echo 调用变量

echo 在bash shell中调用变量$
查看当前命令解释符 

[root@gong ~]# echo $ps1 

[\u@\h \w]\$ 

echo:在bash shell中调用变量 $

1.3 whoami 查看用户名

whoami 查看用户名
查看当前用户(whoamai:查看当前登录的用户) 

[root@centos7 ~]# whoamai 

root 

root:超级系统用户名,也是当前系统的用户

root之外的都是普通用户

1.4 tab命令补全

tab 命令补全,选项补全,参数补全
例如:、 [root@centos7 ~]# ifc 

\#按下tab键会自动补全,若按一下tab没反应,就需要按两下tab键,列出所有if开头的命令 

ifcfg ifcconfig 

[root@centos7 ~]# ifconfig 

[root@centos7 ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0       #网络配置名称

1.5 history 历史命令

history 列出历史命令。
-w 把历史文件写入文件
-c 清空命令历史记录,不会清空文件
-d 指定一条记录删除
-w 保存历史命令
!! 执行上一条命令
!n 执行历史命令中的第n条命令
例如:

查看历史记录: 

[root@gong ~]# history 

清空历史记录 

[root@gong ~]# history -c 


\#指定一条历史记录删除 

[root@gong ~]# history -d 23 


\#保存历史命令 

[root@gong ~]# history -w 


\#执行上一条命令

[root@gong ~]# !! 


\#执行上一条ls相关命令 

[root@gong ~]# !ls

 \#执行历史命令中的第23条命令 

[root@gong ~]# !23

1.6 alias 别名

alias 创建命令别名 alias 别名=“命令”
unalias 取消文件别名 unlias 别名
例如:定义临时别名,查看网络是否可以通,ping 百度,只对当前shell 生效

[root@gong ~]# alias tong="ping baidu.com"         #需用双引号,单引号输出的结果是引号内的字符串

ping baidu.com (123.125.114.144) 56(84) bytes of data.

64 bytes from 123.125.114.144: icmp_seq=1 ttl=128 time=44.2 ms

64 bytes from 123.125.114.144: icmp_seq=2 ttl=128 time=47.5 ms

64 bytes from 123.125.114.144: icmp_seq=3 ttl=128 time=46.3 ms

......
查看所有定义的别名

[root@gong ~]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias tong='ping baidu.com'

......

 

取消别名

[root@gong ~]# unalias oldboy

[root@gong ~]# oldboy

-bash: tong: command not found


永久生效

[root@gong ~]# vim /etc/bashrc

alias oldboy="ping baidu.com"

1.7 ls获取命令帮助help

ls常见选项 全拼list,功能是列出目录的内容及其内容属性信息。
-l 以长格式方式显示文件或目录的详细内容
-a 查看目录下的所有文件,包括隐藏文件
-d 只显示目录名,而不显示目录里面的内容
-f 给不同类型的文件加上不同的标记
-r 倒叙
-t 按照文件或目录的修改时间进行排序
-i 显示文件的inode 号码
-h 以人类可读的方式
获取ls命令的帮助 

[root@gong ~]# ls --help 

用法:ls[选项]...[文件]...

 

[root@gong ~]# man ls

1.8 cd:切换目录change directory

cd 切换至当前用户家目录
cd - 切换上次所在目录
cd ~ 切换至当前用户家目录
cd . 代表当前目录,一般在拷贝、移动情况下使用
cd .. 切换至当前目录的上级目录

1.9 mkdir:创建目录make directory

-m 创建目录时,指定权限(很少用,几乎不用)
-p 如果目录已存在则不会报错,递归创建
-v 打印出创建过程信息
\#创建目录

[root@gong ~]# mkdir dir1

\#创建目录并给权限

[root@gong ~]# mkdir -m777 dir2

\#递归创建目录

[root@gong ~]# mkdir -p dir3/dir4/dir5

\#创建目录并显示信息

[root@gong ~]# mkdir -pv dir4/dir5/dir6

备注:rwx为7,read 读,write写,exec执行

最高权限为777,目录一般权限为755,文件一般权限为644

 

例如:

条命令建出以下的目录:

/home/zls

/home/abc

/home/abc/1

/home/abc/2

/home/abc/3

/home/abc/1/zls

/home/abc/2/zls

/home/abc/3/zls

/usr/local/abc

/data

/backup

/backup/abc

/abc

/abc/test

/abc/test/1

...

/abc/test/10

解答:

[root@gong ~]# mkdir /{home/{zls,abc/{1..3}/zls},usr/local/abc,data,backup/abc,abc/test/{1..10}} -pv

2.0 touch创建文件

touch

语法:touch[选项]... 文件名...

创建文件,如果文件存在,不会覆盖内容,但是会修改创建时间

linux中,一切皆文件

示例1:

[root@gong ~]# touch file

[root@gong ~]# touch file1 file2

[root@gong ~]# touch /home/zls/file3 file4

[root@gong ~]# touch file{5,6,7}

[root@gong ~]# touch file{10..100}

 

示例2:

[root@gong ~]# touch abc

[root@gong ~]# touch  /oldboy/abc

touch:cannot touch ‘/oldboy/abc’:no such file or directory

 

**注意:**
1.创建文件,必须要创建在一个存在的目录中
2.和创建目录不同的是,创建相同的文件不会报错
3.创建相同的文件,源文件内容不会被覆盖
4.在linux当中一切皆文件

 

2.1 tree 树状显示目录文件结构

-l 指定层级(level)
-d 只查看目录
如果没有安装,则需要先安装:yum -y install tree

起始目录为 . 

[root@gong ~]# tree  当前目录的tree结构

[root@gong ~]# tree /   /目录下的所有文件,目录

[root@gong ~]# tree /home    /home下的文件,目录

[root@gong ~]# tree -l 1 /      /目录下的一级目录,开头不是 . ,是指定的层级

[root@gong ~]# tree -l -d 2 /usr/local    只查看/usr/local的二级目录,不看文件

2.2复制命令cp

cp 复制
-r 递归拷贝,拷贝目录,连里面的东西一并拷贝
-p 保持源文件的属性
-a 拷贝目录并保持属性,和-rp一样 (用的最多
-rp 递归拷贝并保持源文件的属性
-v 显示复制的过程
-t 交换目标和源文件的位置(意义不大)
语法:

cp [option]... 源文件 目标

cp [option]... source... directory

cp [option]... -t directory source...

 

 

[root@oldboyedu ~]# cp oldboy /usr/

cp: omitting directory ‘oldboy’

 

复制文件的过程:

[root@oldboyedu ~]# cp -v 123 456 789 /opt/

‘123’ -> ‘/opt/123’

‘456’ -> ‘/opt/456’

‘789’ -> ‘/opt/789’

 

cp可以修改名字,指定的目录不存在,也可以拷贝,但拷贝即改名

 

[root@gong ~]# cp /etc/sysconfig/network-scripts/{ifcfg-eth0,eth00}

把网卡配置还是配置到这个路径下,改名 eth00

[root@gong ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.bak}

把网卡配置还是配置到这个路径下,改名ifcfg-eth0.bak(加后缀)

备注:{,.bak}=ifcfg-eth0,ifcfg-eth0.bak

 

2.3 移动命令mv

mv:移动 move (系统默认操作,alias可以查看,mv=mv-i)

语法:

mv [option]... 源文件 目标

注意:

\#系统默认操作,alias可以查看,mv=mv-i,执行命令时系统会自动询问要不要移动

\mv 就不会询问         

绝对路径执行命令:就是执行命令本身,不经过alias

命令前面加上转义符   \,也是执行命令本身,不经过alias

和cp一样
示例:

[root@gong ~]# mv file1 test1     #如果test1目录存在,file1直接放进

[root@gong ~]# touch file1       #创建文件file1

[root@gong ~]# echo 123>file 1    #输入123到file1文件中

[root@gong ~]# cat file1         #查看file1文件内容

 

总结:

1.如果目标是一个目录,就会把文件放入目录

2.文件,就会被覆盖

 

2.4 删除rm

rm 删除remove

语法:

-i 交互,再删除前需要确认
-r 递归删除
-f 强制删除(force)
-v 显示删除的过程
rm +文件 直接可以删除
rm+目录 不能直接删除,需加参数 rm -r
删文件就最好不加-f,    linux中没有回收站,都是永久删除

禁止使用alias=rm - fr/

要想删除 加\   

[root@gong ~]# \rm -fr   #前面加\即可直接删除,不会询问

 

备注:

echo 'alias rm="echo '禁止使用rm'"' >> /etc/bashrc 

source /etc/bashrc 

再执行rm -fr /...

就会出现禁止使用

2.5 cat查看文件内容

cat:查看

用法: cat[选项]...[文件]

-n 查看内容并显示行号
-a 显示文件的结束符和tab键,,一行结束和空行都加$, $代表某一行的结束,包含-t -e-v
-e 显示文件的结束符
-t 显示文件的tab键(^t)
-b 查看内容并显示行号,空行不显
示例:

[root@gong ~]# cat 123

file1

[root@gong ~]# cat 456

file2

[root@gong ~]# cat 123 456

file1

file2

 

[root@gong ~]# cat  >> zls.txt  << eof          #eof=end of 

eof                                            #eof也可以换成jieshu或者其他,但必须首尾一致

[root@gong ~]# cat zls.txt                     #能获取到zls.txt的内容

 

了解:tac zls.txt

把内容反过来了

2.6 查看命令more和less

more

[root@oldboyedu ~]# more /etc/services

不可以操作,回车是下行,空格是翻页

按q退出
    

less

[root@oldboyedu ~]# less /etc/services

/ +关键字  回车

n: 向下搜索

n:向上搜索(shift + n)

2.7 查看文件前n行 head

用法:

head + 文件名

-n: 显示前n行,n为数字,n后面加数字

默认为前10行

[root@oldboyedu ~]# head /etc/services                    #默认为前10行  

[root@oldboyedu ~]# head -n 20 /etc/services            # head -n 20       #查看前20行

[root@oldboyedu ~]# head -20 /etc/services        #head -20         #查看前20行

2.8查看尾部tail

用法:

tail+文件名

默认显示后10行

-f: 追踪文件末尾,相当于tailf

tailf=tail -f 是一个单独的命令,追踪日志

-n :显示前n行,n为数字,n后面加数字

(n也可以不写,作用一样)

2.9 grep awk sed三剑客

grep 过滤关键字
-n 显示行号
-o 只显示关键字,不显示行号
-b 显示前n行,n为数字(before)
-a 显示关键字的后n行,n为数字(affer)
-c 显示关键字的前后n行,n为数字(center)相当于 -b-a ( -b 1 -a1=-c1显示关键字的前后1行)
-v 取反
-e 支持多关键字,中间用|分隔 grep -e=egrep
-i 不区分大小写,忽略大小写
^ 以什么开头 ‘^root’
$ 以什么结尾 ‘root$’
^$ 空行
^[a-z] 以a到z开头的
. 代表字符
* 代表所有
| 管道符,将前面命令输出的结果交给后个 ,grep a passwd | grep -v ‘^tss’
获取ip地址

[root@oldboyedu ~]# ifconfig               #相当于输入ip a 查询 ip地址

[root@gong ~]# ifconfig |awk -f '[ :]+' 'nr==2 {print $3}' 

 

[root@oldboyedu ~]# grep '^root' /etc/passwd     #以root为开头

[root@oldboyedu ~]# grep 'bash$' /etc/passwd     #以bash为结尾


\#以数字的范围开头

[root@oldboyedu ~]# grep -n '^[0-9]' passwd