Linux 常用命令(整理中)

一、系统文件结构和内部命令、外部命令和

1、系统文件结构

2、内部命令、外部命令

命令分为内部命令和外部命令 

命令结构

根据空格切割字符串,第一个位置为命令,其他位置为命令参数

命令 描述
type 查看命令是 内部命令 还是 外部命令 (shell自带的命令为内部命令) 
help 查看帮助文档命令(主要查内部命令)
man

查看帮助文档命令manual的简写(主要查外部命令)

注意:man命令如果不识别可以通过 yum install man 来安装man

whereis 查看命令的可执行文件路径
file 查看文件类型
cat 查看可执行文件的内容
echo 打印输出(相当于system.out.println)
clear 清屏
shutdown

关机指令

shutdown -h now :立即关机

shutdown -h +10(或10) :十分钟后关机

shutdown -h 20:02 :系统将在20:02关机

shutdown -r now :立即重启系统

shutdown -r +10 :十分钟后重启

reboot 重启指令

二、文件系统命令

1、如何识别文件类型

首先,通过 ls -l 命令打印出详细信息如下

第1位是:类型标识

  • 【-】:普通文件(file)
  • 【d】:目录文件(文件夹),代表directory
  • 【b】:块设备文件(block)
  • 【c】:字符设备文件(character)
  • 【l】:符号链接文件(symbolic link file)
  • 【p】:命令管道文件(pipe)
  • 【s】:套接字文件(socket)

第2~10位是:文件权限;每三位一组,共三组(共9位)
分别代表:属主权限(owner) > 组权限(group) > 其他人的权限(other)

  • 【r】=read;
  • 【w】=write;
  • 【x】=execute

例如:drwxr-xr-x表示(d  rwx  r-x  r-x)

d:这是一个文件夹

rwx:第一组;属主权限(创建者)为读、写、执行

r-x:第二组;组权限为读、执行

r-x:第三组;其他人权限为读、执行

2、各种查看命令

命令 描述
cd 切换文件路径
df

显示磁盘使用情况(查看分区信息)

dfKB的形式显示

df -hGB的形式显示(推荐)

du

显示文件系统使用情况(查看文件、文件夹信息)

du不显示单位

du -h显示单位(推荐)

pwd 打印出当前(工作目录)的路径
ls

LS命令展示路径下所有的文件和文件夹

ls -l:每行一个的列出目录清单(详细信息)

ls -a:可显示隐藏文件

ll 是上面 ls -l 的简写
stat

查看文件、文件夹详细信息(类似于Windows右键属性里看到的信息

stat 文件名

3、文件文件夹的增、删、改、查、移动操作

命令 描述
mkdir

创建目录文件(文件夹)

mkdir :创建目录(创建目录路径父文件夹必须存在,否则报错)

mkdir -p:级联创建目录,创建父文件夹若不存在一起创建(例如:a/worke/b

mkdir 文件名   文件名  :一次创建多个文件夹(例如:mkdir a/1dir a/2dir a/3dir

mkdir 文件前缀{内容1,内容2}文件后缀:一次创建多个文件夹(例如:mkdir a/{1,2,3}dir

touch

1、创建文件

touch 文件名:如果文件不存在,则创建的是空文件,文件大小为0(例如:touch test.txt

2、更改文件时间戳

touch 文件名:如果文件存在更新该文件的时间戳,不改变文件(例如:touch test.txt

touch -a 文件名:与上面相同,该文件的时间戳,不改变文件(例如:touch -a test.txt

cat

查看可执行文件的内容

Ctrl + z 退出 cat 命令

cp

拷贝(copy)

1、拷贝文件

cp 需要拷贝的目标文件路径  ./ :将目标文件拷贝到当前目录下 ./ 表示当前目录例如:cp /root/anaconda-ks.cfg ./

2、拷贝文件夹(文件夹:-r)

cp -r 需要拷贝的目标文件夹 空格 拷贝到的目标路径/:(例如:cp -r 1dir demo/

cp -r 绝对路径/文件 拷贝到目的地路径:-r 递归子目录(cp -r 绝对路径/*.wav 目标路径

cp -r 文件夹名/* ./:copy 一个目录下的所有文件以及递归文件 到当前文件夹

mv

1、移动(move)

mv 当前文件名(或路径) 空格 移动到的目标路径/:(例如:mv anaconda-ks.cfg 1dir/

2、修改文件名

mv 当前文件名 空格 新文件名:(例如:mv anaconda-ks.cfg demo.bak

rm

删除(remove)

1、删除文件

rm 文件名:删除文件,有提示是否确认删除,需要yes(例如:rm hello

rm -f 文件名:删除文件不需要提示,直接删除(例如:rm -f hello

2、删除文件夹(文件夹:-r)

rm -r 文件名:删除文件夹,有提示是否确认删除,需要yes(例如:rm -r 1dir

rm -r -f 文件名:删除文件夹不需要提示,直接删除(例如:rm -r -f 1dir

   
ln  
chmod

改变文件模式位(修改文件权限)

chmod o+w 文件名:为文件 o(other)角色添加w(write)权限

   

三、echo定义变量

直接输出 

[root@centOS-1 /]# echo a
a

定义后输出定义对象值(读对象使用$)

[root@centOS-1 /]# a=haha
[root@centOS-1 /]# echo $a
haha

定义数组并读取值

[root@centOS-1 /]# arr=(marvin jerry sally)
[root@centOS-1 /]# echo ${arr[0]}
marvin
[root@centOS-1 /]# echo ${arr[1]}
jerry
[root@centOS-1 /]# echo ${arr[2]}
sally

四、文本相关命令

1、文件查看 

命令 描述
cat 查看可执行文件的所有内容,到内容结尾处
more 查看可执行文件的所有内容,从内容开头处开始,空格键往后翻
less

查看可执行文件的所有内容,从内容开头处开始,b键往前翻,空格键往后翻

注意:文件会完整加载到内存中,从而实现来回翻页,但需要考虑文件不能超出内存大小

head

查看可执行文件的内容,从内容开头处开始,选择行数打印

head 文件名默认打印文件前10行(例如:head /etc/profile

head -5 文件名打印文件前5行(例如:head -5 /et/profile 

tail

查看可执行文件的内容,从内容末尾处,选择行数打印

tail 文件名:默认打印文件最后10行(例如:tail /etc/profile

tail -5 文件名:打印文件最后5行(例如:tail -5 /etc/profile 

tail -f 文件名:如果有一个进程,在向文件中写数据 tail -f 监控这个文件,有增量数据就立即打印

 2、管道的使用

什么是管道:竖杠【|】就是管道

如下图:管道 左边 是 输出流 的形式将 内容给了右侧,管道 右侧 是以 输入流 的形式 接收 

 

案例1:我们只取zfg中的第5条记录怎么么做?

解答:如下图,我们先获取前5条记录,传入管道右侧,然后右侧再取接收的最后一条数据

五、文本编辑器(vi)

1、进入文件编辑模式

通过【vi 文件名】 命令进入该文件的vi编辑模式

命令 描述
vi 文件名 进入该文件的vi编辑模式,光标处于文件内容首行
vi +10 文件名 进入该文件的vi编辑模式,光标处于文件内容第10行
vi + 文件名 进入该文件的vi编辑模式,光标处于文件内容尾行

2、编辑内容操作

使用 vi 进入编辑模式后,按【i】 进入文本输入模式,下面会出现 insert 标识

(1)复制、粘贴

命令 描述
yw 复制 光标所在位置的单词(一个单词)
yy 复制 光标所在行(一行)
p 粘贴 复制的内容(小写p:从光标位置下方粘贴)
P 粘贴 复制的内容(大写p:从光标位置上方粘贴)

(2)删除

命令 描述
dd 删除当前行
ndd 删除n行数据
dG 删除当前后之后的全部行

(3)撤销、恢复 、重复上一步骤

命令 描述
u 撤销 上一步操作
ctrl + r 恢复 上一步操作
. 点【.重复 上一步操作

3、退出编辑模式

ESC键,表示退出文本输入模式进入编辑模式insert 标识消失)

命令 描述
:q 没修改内容,退出注意:如果修改了,不会直接退出,会告诉你文件被改变了
:q! 不保存文件,强制退出vi命令
:wq 保存文件,退出vi命令
:w 保存文件,不退出vi命令
:w! 强制保存

4、末行模式 

末行模式:就是处于编辑模式下最后一行的操作命令 

命令 描述
:set number 显示行号,文件内容的每一行设置编号(行号):set nu 是缩写格式
:set nonumber 隐藏行号 :set nonu 是缩写格式
:set readonly 设置文件为只读模式(注意:如果改变后,是不能保存的,会有提示)
:/  查找内容 向下查找内容(文字)(例如: :/after 会找到文件中的 after)小写 n 是从上往下找,大写 N 是从下往上找
:?  查找内容 向上查找内容(文字)
:s

查找替换命令

:s/查找的目标/替换的目标 :查找 光标所在的行第一个目标  替换(例如 ::s/after/befor

:s/查找的目标/替换的目标/g :查找 光标所在的行所有目标  替换(例如 ::s/after/befor/g

:s/查找的目标/替换的目标/gi :不区分大小写 查找 光标所在的行所有目标  替换(例如 ::s/after/befor/gi

:!  命令 末行模式下,执行一些命令
:起始行,结束行d 按行号范围删除行(例如: :3,5d  表示删除3至5行)
:起始行,结束行y 按行号范围复制行(例如: :3,5y  表示复制3至5行)

下图的范围命令是重点 

 

六、bash shell进程简单管理

命令 描述
echo $$ 打印当前bash shell的进程号
ps -ef 打印linux系统下所启用进程信息进程号
kill -9 进程号 关闭此进程(如:kill -9 1115)
[root@centOS-1 /]# echo $$
1115
[root@centOS-1 /]# kill -9 1115

七、正则表达式grep

Linux的正则表达式和平常用法几乎是一样的

使用 grep 命令来执行正则表达式(可以搭配许多命令进行查询,如:结合管道查文件名

[root@centOS-1 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  profile  test
[root@centOS-1 ~]# ls | grep "l"
install.log
install.log.syslog
profile

1、匹配操作符

2、重复操作符

3、其他操作

4、正则练习

在下列内容中按规匹配

hello msb 
hello angelababy 
hello dilireba 
iiii250 wyf 
hello zhangxinyi
11 hel mhellosbjy lo 
h2341123i bj
ili521 fanbingbing
111 hello 222
wo ai bj tam

(1)查找包含hello的行

grep "hello" file2.txt 

[root@centOS-1 1]# grep "hello" file2.txt
hello msb 
hello angelababy 
hello dilireba 
hello zhangxinyi
11 hel mhellosbjy lo 
111 hello 222

(2)查找包含数字的行

grep "[1-9]" file2.txt

[root@centOS-1 1]# grep "[1-9]" file2.txt
iiii250 wyf 
11 hel mhellosbjy lo 
h2341123i bj
ili521 fanbingbing
111 hello 222

 (3)查找包含了 2 或者 5 的行

grep "[25]" file2.txt 

[root@centOS-1 1]# grep "[25]" file2.txt
iiii250 wyf 
h2341123i bj
ili521 fanbingbing
111 hello 222

(4)查找至少包含3位数的行( {} 是扩展正则表达式的字符,需要加 \ 或者使用 grep -E) 

grep -E "[0-9]{3}" file2.txt

grep "[0-9]\{3\}" file2.txt

[root@centOS-1 1]# grep -E "[0-9]{3}" file2.txt
iiii250 wyf 
h2341123i bj
ili521 fanbingbing
111 hello 222

[root@centOS-1 1]# grep "[0-9]\{3\}" file2.txt
iiii250 wyf 
h2341123i bj
ili521 fanbingbing
111 hello 222

 (5)包含hello这个单词的行找出来

grep "\<hello\>" file2.txt

[root@centOS-1 1]# grep "\<hello\>" file2.txt
hello msb 
hello angelababy 
hello dilireba 
hello zhangxinyi
111 hello 222

(6)包含小写L,出现2到3次的行

grep "l\{2,3\}" file2.txt

[root@centOS-1 1]# grep "l\{2,3\}" file2.txt
hello msb 
hello angelababy 
hello dilireba 
hello zhangxinyi
11 hel mhellosbjy lo 
111 hello 222

(7)在下面内容中筛选

hello msb?
hello angelababy?
hello dilireba?
iiii250 wyf?
hello zhangxinyi
11 hel mhellosbjy lo?
h2341123i bj
ili521 fanbingbing
111 hello 222
wo ai bj tam
hiahelloahiahello
helloahiahelloahi

[root@centOS-1 1]# grep "hi.*hello.*hi.*hello.*" file2.txt
hiahelloahiahello

[root@centOS-1 1]# grep "\(hi.*\)\(hello.*\).*\1.*\2" file2.txt
hiahelloahiahello

八、行编辑器(sed)

发布了71 篇原创文章 · 获赞 46 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/fox_bert/article/details/104302063