ONE. shell及Linux命令

ONE. shell及Linux命令

一、Linux Shell

简介Shell的意思是“外壳”,在Linux中它是一个程序,比如/bin/sh、/bin/bash等。

它负责接收用户的输入,根据用户的输入找到其他程序并运行。比如我们输入“ls”并回车时,shell程序找到“ls”程序并运行,把结果打印出来。Shell有很多种实现,我们常用bash。

1.shell是什么

shell就是一个应用程序,我们可以通过键盘、串口给它发送命令,回车后它就会去执行这些命令。以"ls-"命令为例,

①接收键盘数据并回显比如:我们使用键盘给shell程序发送字母I,它收到后会在屏幕上显示出来

②解析输入的字符串,寻找程序,执行程序:当我们使用键盘给shell程序发送回车时,它就知道字符输入结束了

a.shell会解析字符串,这些字符串用空格分为好几部分第1部分就是程序名、命令名,其他部分是参数

b.shell会去寻找该程序,去哪里找?去PATH环境变量所指示的位置找。你当然也可以指定绝对、相对路径,shell就会直接去这些路径找到程序

c.找到程序后,会启动该程序,并传入参数

二、Linux命令的格式

三、环境变量PATH

查看环境变量:

echo $PATH

怎么设置PATH?

以在PATH中添加/home/book目录为例:

①永久设置之方法1:

修改/etc/environment,比如:sudo gedit/etc/environment,然后添加下行红包部分:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/book"

②永久设置之方法2:

修改~/.bashrc,在行尾添加或修改:

export PATH=$PATH:/home/book

然后重启系统或重新登录。

③临时设置:在终端执行以下命令,这只对当前终端有效:

export PATH=SPATH:/home/book

四、Linux相关命令权限

一、命令

1.文件操作命令:

目录:绝对路径、相对路径、

当前目录(pwd,.

上级目录(..

家目录(/home/book,)

上一个目录(-

删除目录的用法是:rm - rf <目录路径>

2.d pwd mkdir rh -rf

3.权限root用户chown chmod

4.find grep

5.ar gzip bzip2 (-k 压缩)(-dk 解压)(只能压文件)

tar czf test.tar.gz test(c 创建文件,z 压缩,f 跟文件名)(xjf解压) (j压缩效率更高)

6.ifconfig

7.vi

8.ls cp rm mv cat touch

1. pwd命令:print working directory

功能:打印当前所在路径

命令格式:

2.cd命令:change directory

功能:改变路径、切换路径

3.mkdir + 文件夹名称

功能:创建文件夹

4.echo

功能:创建文件

echo abc > 1.txt

5.rmdir:删除文件夹

文件夹有内容,强制删除

rm 123 -r //递归的删除文件之后再删除文件夹

6.ls

ls -l //列出详细信息 ls -a //列出隐藏文件 ls -ld /bin //看文件夹详细信息

7. find : 查找文件

在Windows中搜索文件,一般查找文件需要传入两个条件:在哪些目录中查找;查找的内容;

在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用find命令查找文件。

find命令格式为:

find 目录名 选项 查找条件

举例1:

$ find /home/book/dira/ -name “*test1.txt*” # '*'表示通配符可以不加

说明:/home/book/dira/指明了查找的路径。“-name”表明以名字来查找文件“test1.txt”,就指明查找名为“test1.txt”的文件。

8.grep :作用是查找文件中符合条件的字符串

grep [选项] [查找模式] [文件名]

假设dira目录的test1.txt和dirb目录的test1.txt都含有如下内容:

aaaAAAAAA abc abcabcabc cbacbacba match_pattern nand->erase。

通过查找字符串,希望显示如下内容:

①所在的文件名---grep查找时默认已经显示目标文件名

②所在的行号--使用-n选项。

grep “字符串” * -rn #还有 -n -nw(全字匹配) -nwr(递归查找)

r(recursive):递归查找 n(number):显示目标位置的行号 字符串:要查找的字符串

二、改变文件的权限和属性

①chgrp:改变文件所属用户组
chgrp 【-R】 dirname/filename ...

-R:进行递归的持续更改,也连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在更改某一目录内所有文件的情况。

chgrp hy install.log

将install.log文件的用户组改为hy用户组

②chown:改变文件所有者

chown [-R] 账号名 文件或目录

chown [-R] 账号名:组名 文件或目录

chown bin install.log chown book:book install.log

改变文件所有者和用户组的这两个命令的应用场景:复制文件,由于复制行为会复制执行者的属性和权限,因此复制后需要改变文件所属用户、用户组等。

③chmod:改变文件的权限

文件权限有两种设置方法:数字类型改变权限和符号改变权限。

加 -R 表示以递归的形式进行修改

首先说明各个权限对应的数字:

r(可读):4或0 W(可写):2或0 X(执行):1或0

这3种权限的取值相加后,就是权限的数字表示。

例如:文件a的权限为-rwxrwx---”,它的数值表示为:
owner = rwx = 4+2+1 = 7

group = rwx =4+2+1=7

others = --- =0+0+0=0
所以在设置权限时,该文件的权限数字就是770。

默认不能使用root用户登录

在开发过程中很少用root用户,要使用root权限时可以在命令前加上“sudo”,比如“sudops-a如果你就是喜欢用root用户,可以按下图操作,先给root用户设置密码,以后就可以用root用户登录了:

tips:操作磁盘:sudo fdisk /dev/sda