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.txt5.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 = 7group = 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