shell常用命令

1、获取权限sudo

sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”);在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。

2、解压命令tar

tar -zxvf

-x : 从 tar 包中把文件提取出来
-z : 表示 tar 包是被 gzip 压缩过的,所以解压时需要用 gunzip 解压
-v : 显示详细信息
-f xxx.tar.gz :  指定被处理的文件是 xxx.tar.gz

将.tar.gz解压到指定目录

sudo tar -zxvf *.tar.gz -C 指定目录名

一般常用 -zxf就可以了

3、删除 复制 移动命令:rm cp mv 

权限不足时在前面加上sudo

cp命令 
功能:将给出的文件或目录拷贝到另一文件或目录中,就如同DOS下的copy命令一样,功能非常强大。 
语法:cp [选项] 源文件或目录 目标文件或目录 
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
参数:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。
- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
- l 不作拷贝,只是链接文件。 
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名是一个已存在的文件名,用cp命令拷贝文件后,这个文件就会被新拷贝的源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。
$ cp - i exam1.c /usr/wang/shiyan1.c
该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:
$ cp exam1.c /usr/ wang/
$ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中。

mv命令
功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。
语法:mv [选项] 源文件或目录 目标文件或目录 
说明: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时,mv命令完成 文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名称时,源文件 或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将 丢失。
参数:
- I 交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答y或n,这样可以避免误覆盖文件。
- f 禁止交互操作。在mv操作要覆盖某已有的目标文件时不给任何指示,指定此选项后,i选项将不再起作用。
如果所给目标文件(不是目录)已存在,此时该文件的内容将被新文件覆盖。为防止用户在不经意的情况下用mv命令破坏另一个文件,建议用户在使用mv命令移动文件时,最好使用i选项。 
需要注意的是,mv与cp的结果不同。mv好象文件“搬家”,文件个数并末增加,而cp对文件进行复制,文件个数增加了。 
例1:将/usr/xu中的所有文件移到当前目录(用“.”表示)中:
$ mv /usr/xu/ * .
例2:将文件wch.txt重命名为wjz.doc
$ mv wch.txt wjz.doc

rm命令
功能:在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
语法: rm [选项] 文件… 
如果没有使用- r选项,则rm不会删除目录。 
参数:
- f 忽略不存在的文件,从不给出提示。 
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。 
使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按了回 车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留test文件。
$ rm - ii test example Remove test ?n 
Remove example ?y

4、更改文件的所有者或所属群组:chown
系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。 
必要参数:
    -c 显示更改的部分的信息
    -f 忽略错误信息
    -h 修复符号链接
    -R 表示递归,处理指定目录以及其子目录下的所有文件
    -v 显示详细的处理信息
    -deference 作用于符号链接的指向,而不是链接文件本身
例:chown -R hadoop:hadoop ./hadoop
要分成4段来看
chown是命令用来修改目录的权限
-R代表递归,就是从当前目录到他最下面的子目录
hadoop:hadoop代表将目录和文件的owner和group都设成hadoop

./hadoop代表从当前目录hadoop开始修改

5、修改某个目录或文件的访问权限:chmod
语法:chmod [who] [+ | - | =] [mode] 文件名
 命令中各选项的含义为: 
操作对象who可是下述字母中的任一个或者它们的组合:
   u 表示“用户(user)”,即文件或目录的所有者。
   g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
   o 表示“其他(others)用户”。
   a 表示“所有(all)用户”。它是系统默认值。
 操作符号可以是:
   + 添加某个权限。
   - 取消某个权限。
   = 赋予给定权限并取消其他所有权限(如果有的话)。
 设置 mode 所表示的权限可用下述字母的任意组合:
   r 可读。
   w 可写。
    x 可执行。
   X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
   s 在文件执行时把进程的属主或组ID置为该文件的文件属主。
       方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
   t 保存程序的文本到交换设备上。
   u 与文件属主拥有一样的权限。
   g 与和文件属主同组的用户拥有一样的权限。
   o 与其他用户拥有一样的权限。

 文件名:以空格分开的要改变权限的文件列表,支持通配符。

区别chown和chmod

chmod就是修改 第一列内容的 ,chown是修改 第3,4列内容的


Linux 系统下主目录和根目录的区别
根目录是/,是树状形式目录的根,只有一个。
主目录是用户的HOME目录,添加用户的时候指定的。对于不同用户,主目录不同。

对于用户名为user的用户,缺省的HOME目录是/home/user,root用户例外,它的缺省HOME目录是/root。

linux中ll和ls的区别
linux下命令“ll”是“ls -l"的别名。别名相当于windows里的快捷方式。
所以"ll"和“ls -l”的功能是相同的。
所以"ll"和"ls"的区别其实是“ls”和"ls -l"的区别。

"ls"是显示当前目录下文件,”ls -l“是显示当前目录下文件详细信息。


6、查看默认工作目录的完整路径:pwd

7、Source命令及脚本的执行方式解析

source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。
2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。




举例说明:
1.新建一个test.sh脚本,内容为:A=1
2.然后使其可执行chmod +x test.sh
3.运行sh test.sh后,echo $A,显示为空,因为A=1并未传回给当前shell
4.运行./test.sh后,也是一样的效果
5.运行source test.sh 或者 . test.sh,然后echo $A,则会显示1,说明A=1的变量在当前shell中



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值