Linux(shell)入门必备命令

 

一 简介

 

shell是一个命令解释器,是运维和系统管理员操作Linux系统的首选;

同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

命令行相关:行首 “$” 或 “#”  - 命令行提示符

                        行首 “##”  - 视为注释开始

                        注:命令行严格区分大小写!

使用命令行补全(Tab)和通配符可以提高输入效率

通配符一共三个:

*   -- 用于匹配文件名中任意长度的字符串,如 alphabet ,你只记得 alp , 那么就可以用 alp* 来匹配

?  -- 只匹配一个字符,如,一个单词 test ,你不记得 e 位置是什么,就可以用 ? 来代替,如 t?st

[ ] -- 用于匹配所有出现在方括号内的字符。可以使用 “-” 来指定字符集范围,如 ls test[1-3] ls test[a-z]

 

二 急速入门必备命令

 

2.1 寻求帮助 - man 命令

作用: Linux为所有用户和系统调用编写了帮助手册。使用 man 命令可以方便快捷地获取某个命令的帮助信息

用法: man[手册编号]  命令名

man 命令在显示手册页时调用 less 完成显示,J K 可以上下翻动,空格 用于向下翻页,Q 键退出

手册分9节,内容如下:

目录内容
/usr/share/man/man1普通命令和应用程序
/usr/share/man/man2系统调用
/usr/share/man/man3库调用,主要是libc()函数的使用文档
/usr/share/man/man4设备驱动和网络协议
/usr/share/man/man5文件的详细格式信息
/usr/share/man/man6游戏
/usr/share/man/man7文档使用说明
/usr/share/man/man8系统管理命令
/usr/share/man/man9内核源代码或模块的技术指标

2.2 用户间切换 su

作用:  切换到其他用户

用法:  su [用户名]

$ su sign   ##切换到sign这个用户
$ su      ##切换到特权用户 root

注意:部分Linux系统如 Ubuntu 等,在默认情况下,系统没有合法 root 权限,不能直接使用 su 命令提升到 root 权限,而必须使用 sudo 来获得 root 权限

2.3 特权命令 sudo

作用: 提升当前执行命令的权限,root 权限去执行命令

用法: sudo 命令

$sudo su                         ##切换到 root 用户

$sudo rm root.txt          ##使用 root 权限执行 rm 命令,删除文件 root.txt

三 文件操作常用命令

3.1 显示当前目录 pwd 和改变目录 cd

pwd 命令

作用: 显示当前目录,即工作目录

用法: pwd

 

cd 命令

作用: 改变目录位置

用法: cd  目标路径        ##进入指定的目录中

             cd  ..                      ##返回父目录

             cd  /                       ##进入根目录

             cd   cd  ~         ##进入用户主目录

             cd  ./*                    ##进入当前目录的子目录 *

3.2 ls 命令

用法: ls [参数]

常用参数及意义:

             ls  不带任何参数     ##列出当前目录下的所有文件及子目录(文件夹)

             ls  -F                         ##分类显示,更直观,方便辨识

             ls  -a                         ##显示隐藏文件

             ls  -l                          ##列出文件,并显示各个文件的属性

更多用法可用 man ls 命令去查询。

列出目录下内容的命令还有:dir vdir (功能与 cmd dir 命令类似)

                              dir  =  ls     但功能比 ls 少        vdir = ls -l

3.3 创建目录(文件夹)命令: mkdir

用法: mkdir  [目录名1]  [目录名2]...

mkdir 命令可以一次性创建一个或多个目录

常用参数:

       mkdir  不带任何参数     ##创建相应目录,如果目录的父目录不存在,则创建失败

       mkdir  -p                         ##创建相应目录,如果目录的父目录不存在,则一起创建,多用于创建多级目录,如 mkdir -p x1/x11/x111

3.4 移动、复制和删除命令

移动命令 mv  

用法: mv  [参数]  源文件  目标文件(目录)

常用参数:

             不带参数             ##将源文件移动到目标文件,注意:如果目标已存在同名文件,则会替换掉原本的文件

             -i                           ##将源文件移动到目标文件,如果如果目标已存在同名文件,将询问是否替换原本的文件

             -b                          ##将源文件移动到目标文件,如果如果目标已存在同名文件,则不替换,而会在已有文件的文件名后面加一个 ~

复制命令 cp

用法: cp  [参数]  源文件  目标文件(目录)

常用参数:

            不带参数              ##将源文件复制到目标文件,注意:如果如果目标已存在同名文件,则会替换掉原本的文件

            -i                            ##将源文件复制到目标文件,如果如果目标已存在同名文件,将询问是否替换原本的文件

             -b                          ##将源文件复制到目标文件,如果如果目标已存在同名文件,则不替换,而会在已有文件的文件名后面加一个 ~

             -r                           ##将子目录及其中文件一起复制到另一个子目录下

删除命令 rm

用法: rm  [参数]  [目标文件1]  [目标文件2]...

删除命令可以一次删除一个或者多个文件

常用参数:

            不带参数               ##删除目标文件或者目录,不带任何提示

            -i                             ##删除目标文件或者目录,删除时进行提醒

            -f                             ##强制删除目标文件或者目录

            -r                             ##将子目录及其文件一并删除(慎用,特别是在 root 权限下)

链接命令 ln

用法: ln  [参数]  源文件  目标文件

常用参数: 

            不带参数                ##创建硬链接,使用 ls -i 查看可以看到两个文件的 inode (索引节点)值一致,也就是文件信息一致

            -s                             ##创建软链接,即别名,如果源文件被删除,则软链接(别名)也无法访问

3.5 文件权限命令

3.5.1 改变文件所有权 chown 和 chgrp

chown 用于改变文件的所有权

用法: chown  [用户][:][属组]  [文件名]...

常用参数:

           不带参数               ##改变单个或者多个文件的属主和属组

           -R                           ##改变一个目录及其下的所有文件以及子目录的属主和属组

chgrp 用于单独改变目标文件的属组

用法: chgrp  [用户组]  [文件名]

3.5.2 改变文件权限 chmod

chmod 可以改变文件的读写权限,他可以以“用户组 +/- 权限”的表达方式来增加/删除相应的权限,用户组包括了文件属主(u)、属组(g)、其他人(o)和所有人(a),用户权限包括(r、w、x);同时他也可以通过一个二进制数来修改文件的权限如 755 代表 111 101 101 转换成 权限则为 rwx r-x r-x; 

用法:

1.   chmod  [用户组]  [+/-]  [文件名]

2.   chmod  755  [文件名]

例子:

$chmod u+x test.txt            ##属主增加 x (可执行)权限
$chmod ug-r test.txt      ##属主与属组 移除 r (读)权限
$chmod ug=rw、o=r test.txt   ##属主与属组可读写,其他用户可读
$chmod 755 test.txt          ##文件权限改为 rwxr-xr-x

3.6 文件阅读命令

3.6.1 head 和 tail

head 命令由于阅读文件的头部

tail 命令用于阅读文件的尾部

用法: head/tail  [参数]  [文件名]

常用参数:

             不带参数           ##显示头部/尾部十行

             -n                        ##按指定的行数显示文件的头部/尾部

3.6.2 cat、more and less

cat 命令用来一次性查看全部文件内容,后跟文件名作为参数,也可以带上 -n 来显示行号,当文件内容过多时,不建议使用

例子:

more 命令用分页来查看文本文件,空格翻页,回车向下滚动一行,q键退出

less 更人性化的文本阅读工具

3.6.3 文本编辑器 vim

vim 是Unix 和 linux 系统上面标配的编辑器

用法: vim [文件名]  或者 vim

1.编辑保存文件

         分插入和命令两种模式
插入模式

操作:输入字符,并可以按光标键移动输入字符位置

命令操作
a在光标后插入
i在光标所在位置插入
o在光标所在位置的下一行插入
Esc进入命令模式
:进入行命令模式

命令模式

     执行初输入字符外的所有操作,包括保存,搜索,移动光标等

     vim 启动默认是在命令模式,如果在编辑模式,需要按 Esc 键切换回命令模式

     可以使用光标键上下左右移动,或者 h、j、k、l 移动。

     保存和退出

     保存文件、退出等需要切换到行命令模式,在插入模式下按 Esc 键再输入 :w、:q 或 :wq

     前提:需切换到命令模式,组合命令按先后顺序执行,如:w->q->!

命令操作
:w保存文件
:w filename另存为filename
:q退出
:q!强行退出,放弃保存

     搜索字符串

     /string         ##向下搜索一个字符串

     ?string        ##向上搜索一个字符串

     启动/关闭大小写敏感,执行:

     :set ignorecase

     :set noignorecase

     替换字符串

     用法: :[range]s/pattern/string/[c、e、g、i]

     将 pattern 所代表的字符串替换成 string range 用于指定替换作用的范围,如 “1,10” 表示从 110 行,“1,$” 代表 1 到最后一行,也就是全文,可以用 “%” 替代。

     最后的方括号是可选选项,内容如下

标志含义
c每次替换前询问
e不显示错误信息
g替换一行中的所有匹配项(常用)
a不区分大小写

     如Windows环境下的源码经常会有 “^M” 的字符,可以使用一下命令清除:

     %s/^M//g

     删除、复制、粘贴

    

命令操作
x

删除光标所在位置的字符

dd

删除光标所在的行,2 dd表示删除两行

D

删除光标所在位置到行尾之间的所有字符

d

普遍意义上的删除命令,和移动命令配合使用。如 dw 表示删除光标所在位置到下一单词词头之间的所有字符

yy

复制光标所在的行

y

普遍意义上的复制命令,和移动命令配合使用。如 yw 表示复制光标所在位置到下一单词词头之间的所有字符

p

在光标所在位置粘贴最近复制/删除的内容

     撤销和重做

     u  撤销一次操作

     Ctrl + R  重做被撤销的操作

     程序员特有配置

     :syntax on                   ##语法高亮显示

     :set autoindent           ##自动缩进

     :set shiftwidth=4         ##设置Tab键对应的空格数

四 查找和定位常用命令

4.1 find 命令

作用: 在指定范围内查找指定文件

用法: find  [目录]  [选项]  [参数]  -name  [文件名]

例子: find  ./home  -type  f  -name  test             ##在当前目录的home目录下查找文件类型为普通文件的 test 文件

常用参数:

         -type                            ##查找时指定文件类型,类型参数看下表

         -atime n                       ##查找最后一次使用在 n 天前的文件,n 使用负数表示

         -mtime n                      ##查找最后一次修改在 n 天前的文件

参数含义
b块设备文件
c字符设备文件
d目录文件
f普通文件
p命名管道
l符号链接

4.2 更快速的定位文件 locate 

作用: 更快速地定位文件

用法: locate  [文件名]

locate 并不进入子目录进行搜索,他通过检索数据库来确定文件的位置,当查找不到目标文件时可以使用 updatedb 来更新检索数据库后再进行查询。

4.3 查找文件内容 -grep 命令

作用: 在文件中查找某些信息

用法: -grep  [内容]  pattern  [文件名]               ##pattern 使用基础正则表达式

例子: $-grep open ./test.c                  ##在当前目录的 test.c 文件中查找 open

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值