《4》 Linux中的一些简单命令

文件操作                                                                                                      
 
  掌握下面的命令是最基本的噢!那是我们使用一个系统最基本的操作。
  玩过dos么,其实,linux下的文件操作和dos差不多。没什么难的,多练习就记住了。 下面如果有条件的话请跟我一样操作吧!百看不如一做。不用刻意去记,每天做遍自然就记到了               

 

[root@localhost test]# ls     显示当前目录下的所有文件及文件夹

[root@localhost test]# ll      以详细方式显示所有文件与文件夹。(相当于 ls -l 命令)    

[root@localhost test]# cd  /user   打开user文件夹

     如果不知道要打开的文件夹全称或名过长,可以按tab键盘自动补齐,如:cd  /u + table键,系统自动帮我们补齐成 /user 

[root@localhost test]#cd ..    (后面空格加两点)返回上一级目录

[root@localhost test]#pwd     显示当前目录路径

  超简单,记好上面几个在文件夹之间到处跳已经没问题了。

 

文件的增、删、查、移

[root@localhost test]# mkdir  test           创建文件夹

[root@localhost test]# touch  test.txt      创建文件

[root@localhost test]# cp test.txt  test2.txt       test.txt文件当前文件夹下复制出个test2.txt

[root@localhost test]# cp test.txt  /hzh/test       test.txt 复制到/hzh/test  目录下 

[root@localhost test]# rm  aa.txt        删除aa.txt文件

[root@localhost test]# rm  -r  bb         删除bb目录(包括目录下的所有文件)

[root@localhost test]# rm  -rf bb         删除bb目录(不对目录下的每个文件提醒删除) 

[root@localhost test]# mv dd.txt ..       将dd.txt文件移动上一级目录(注意尾部的两个点)

[root@localhost test]# mv bb.txt  /hzh/test/      将bb.txt文件移动到hzh/test/目录下

[root@localhost test]# mv  dd.txt  dd2.txt       将dd.txt改名为dd2.txt

 

文件查找:
统配符 ?* 与windows下相同
[root@localhost bin]# find /etc -name ini?  查找/etc目录下,以ini打头且后面一位的文件,
[root@localhost bin]# find /etc -name ini*

[root@localhost test]#locate  aa.txt      

    查整个系统中的aa.txt文件,locate\slocate命令后面跟文件或文件夹。不过在执行这个命令之前要先更新数据库,所以选执行 

updatedb 命令。


用户权限                                                                                                    

  其实,这个地方对于新手来说感觉有点复杂,但是并不难,只要记好了规则就可以了。
  我们现有随便进入一个文件夹下,这个文件下要至少有一个文件或文件夹,然后敲 ll 命令。
[root@localhost test]# ll
总用量 24
rwx------  2 root root 16384  2月 22 04:31 lost+found
rwxr-xr-x  2 root root  4096  3月 18 14:43 test
 
那么文件前面的“drwxr-xr-x”就表示的权限!
linux下分三类用户:
u  所有者
g  所属组
o  其他人
 
我们把“rwxr-xr-x”分为三部分,三位一组。如下
rwx       r-x        r-x
所有者   所属组   其它人
权限类型:
所要注意的是,权限对文件和目录的含义是有差别的。


修改权限符号:
+  加权限
-   减权限
=  等于什么权限
 
当我们想修改一个文件(或目录)的权限时:
[root@localhost hzh]# chmod  u+w  a       给a文件的所有者加上写权限(chmod 为修改权限的命令)
 
其实,我们一般修改用户权限时不这样写,那怎么写呢,用数字表示。
r - 4     w - 2     x - 1
rwx--r-wx
r+w+x=7
r=1
w+x=3
相信下面的两个你也明白:
rw-r-x-w-     652
754      rwxr-xr--
例如:
[root@localhost hzh]# chmod 641  a
641  rw-r----x  所有者有读、写权限,组有读权限,其他人有执行权限


软链接与硬链接                                                                                          
 

【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止误删的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

硬连接的2个限制:

l  不允许给目录创建硬链接

  l   只有在同一文件系统中的文件之间才能创建链接。 即不同硬盘分区上的两个文件之间不能够建立硬链接。这是因为硬链接是通过结点指向原始文件的,而文件的i-结点在不同的文件系统中可能会不同。

【软连接】
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

       这就允许符号链接(经常简写为symlinks)指向位于其他分区、甚至是其他网络硬盘上的某个文件
通过实验加深理解:

[oracle@Linux]$ touch f1          #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2          #
创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3       #
创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li            # -i
参数显示文件的inode节点信息
total 0
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r--  2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx  1 oracle oinstall 2 Apr 21 08:11 f3 -> f1

从上面的结果中可以看出,硬连接文件f2与原文件f1inode节点相同,均为9797648,然而符号连接文件的inode节点不同。

[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory

通过上面的测试可以看出:当删除原始文件f1后,硬连接f2不受影响,但是符号连接f3文件无效

总结
依此您可以做一些相关的测试,可以得到以下全部结论:
1).
删除符号连接f3,f1,f2无影响;
2).
删除硬连接f2,对f1,f3也无影响;
3).
删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
4).
同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

 
文件压缩与解压                                                                                       
 
    文件的压缩与解压,也是我们日常中经常用到的操作,如,我们会经常从网上下载各种文件进行进行安装,而大部分文件都是经过压缩的。
下面来学习四个常用的压缩命令。
gzip
特点:
1.只能压缩文件,不能压缩目录
2.不保留源文件
 
[root@localhost test]# gzip aaa             将aaa文件进行压缩
[root@localhost test]# gunzip aaa.gz     将aaa.gz文件进行解压
[root@localhost test]# gzip -d aaa.gz    作用同上
  
tar
tar类型的的压缩文件应该是大家最常见的吧,在网上下的好多软件也是这种格式的。
参数:
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
[root@localhost test]# tar -zcvf  tatga.tar.gz  tatgz    压缩tatgz文件夹为tatga.tar.gz压缩文件
注意:
在linux下扩展名不是标识文件的属性
[root@localhost test]# file [文件名]                       查看任何一个文件的类型
[root@localhost test]# tar -cf tatga.tar  tatgz       对tatgz文件打包
[root@localhost test]# gzip tatga.tar                    对tatga.tar包文件压缩
[root@localhost test]# tar -zxvf tatga.tar.gz        对压缩文件进行解压
 
 
zip 
功能:可以压缩文件和目录,是windows 和linux 通用的压缩格式
 
[root@localhost test]# zip a.zip  a                     把a文件压缩成a.zip
[root@localhost test]# zip -r tatgz.zip tatgz      压缩tatgz目录为tatgz.zip
[root@localhost test]# unzip  tatgz.zip              解压文件
 
 
bzip2 
gzip功能基本相同
只能压缩文件
用 -k 命令可以保留原文件 
[root@localhost bzip2]# bzip2 -k fnngj  对fnngj文件进行压缩 
[root@localhost bzip2]# bunzip2  fnngj.bz2   对压缩文件fnngj.bz2进行解压
 

通信命令                                                                                                  
                  
 
    我们都知道linux有别于windows是的一个特性就是,多用户的操作系统。允许多个用户同进对系统进行操作。那么多个用户之间如何进行通信呢?下面来看两个有趣的通信命令。

write
发给某个用户信息
[root@localhost ~]# write [用户名]   


例如:
[root@localhost ~]#  write fnngj  给fnngj用户发送信息
hello fnngj !! I like you!!xixi       发送的内容
ctrl + D  结束
 
wall

发给所有使用系统的用户
[root@localhost ~]# wall [信息内容]
[root@localhost ~]#  wall hello china
 
ping

测试本机与某一地址时候连通的
[root@localhost ~]#  ping 192.168.203.128
[root@localhost ~]#  ping  www.baidu.com 
[root@localhost ~]#  ping -c  4 192.168.203.1    -c 相当于windows(dos) 下的默认情况(会发送4次数据时行测试)
      其实,我们可以设置发送数据包的次数
[root@localhost ~]# ping -s  5000  192.168.203.1   设置ping包的个数为5000; 最大为65507
 
ifconfig  
这个命令类似于dos下面的ipconfig   
[root@localhost ~]#  ifconfig           查看本机IP地址详细信息
 
 
命令链接符                                                                                              
 
    有时候,我们为输入方便为把多个命令放在一起输入执行。有点类似于dos下的批处理。就是一组命令的集合。那么我们看看都有哪些符号用于命令之间的连接。
------------------------------------------------------------------------------- 
管道
  将一个命令的输出传送给另一个命令,作为另一个命令的输入。
使用方法:
  命令1 | 命令2 | 命令3... | 命令n
例如:
[root@localhost test]# ls -l /etc | more   显示/etc目录下的所有文件,以分页形式more
[root@localhost test]# ls -l /etc | grep init | wc -l     显示/etc目录下的所有文件,查找init文件,显示查找结果的数量。
-------------------------------------------------------------------------------
;(逗号)
用;间隔的各命令按顺序依次执行
[root@localhost ~]# pwd ; ll ; data
------------------------------------------------------------------------------- 
&&
command1 && command2
  成功                执行
  失败                不执行
[root@localhost ~]# lskk && pwd     如果第一个命令执行失败,第二个命令就执行。
前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,他后面的命令才能被执行
-------------------------------------------------------------------------------- 
||
[root@localhost ~]# lskk || pwd     如果第一个命令执行失败,第二个命令就执行。
command1 || command2
  成功                不执行
  失败                 执行
前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,他后面的命令才被执行。
 
输入/输出重定向                                                                                    

    其实,对于我们的计算机来讲,我们的标准输入设备是键盘,标准输入设备是显示器。
假如,我告诉,如果我们的输入不用键盘了,输出不在显示上了。你会说这怎么稿?即便是使用计算机多年的人,一下子也会迷糊。呵呵!看了我下面几个操作,你就明白了。
同标准I/O一样,Shell 对于每一个进程预先定义了个文件描述
(0、1、2)。分别对应于:
0 (stdin)标准输入
1 (stdout)标准输出;
2 (stderr)标准错误输出。
 
输出重定向
    我们可将某个输入的信息保存到一个文件中。
[root@localhost ~]# ls -l /tmp > /tmp.msg      将查看tmp目录的信息保存到/tmp.msg 文件中。屏幕中不显示任何结果。
[root@localhost test]# vi /tmp.msg                 查看/tmp.msg 文件信息
总用量 8
srwxr-xr-x  1 root  root  0  2月 22 19:36 mapping-root
srwxrwxrwx  1 mysql mysql 0  2月 27 22:35 mysql.sock
 
[root@localhost ~]# data >>/tmp.msg   “ >>”表示追加,在/tmp.msg 再追加一些新的信息。
 
 
输入重定向
      我们也可以将某个输入保存到一个文件中。
     上面我们学到一个wall命令,后面跟的信息可以广播表其它在线用户,当然,我们可以将要广播的信息保存到一个文件中,当然,如果有兴趣,我们还可以设定时间进行发送。
[root@localhost ~]# wall < /etc/motd    将motd文件中的信息进行广播。
 
错误输出重定向
    假如,我要对一个目录进行备份(/usr),备份到/backup/usr.bak目录下,可以备份时间要很久,我不想一直盯着屏幕看,这时我就可以设置,如果备份时发生错误,将错误信息保存到/bak.error文件中。这样我就可以找朋友喝喝茶,聊聊天,回来看错误信息就可以了。
[root@localhost ~]# cp -R /usr  /backup/usr.bak 2> /bak.error

管道的概念:                                                                                                                                          

    连接前面的输出与后面的输入

   比如,我要先脱衣服再睡觉。我可以分两个命令执行,1。脱衣服 2。睡觉。但是通过管道,我可以把两步写在一起:脱衣服 | 睡觉。当然我也可以把三四个步骤(命令)写在一起,但前一个命令必须是后一个命令的前提条件。像我举的那个例子我不可能先睡觉再脱衣服

例:
ls -l | more   -l把显示所以结果,“|” 连接, more进行分屏显示

    linux命令何其多啊,学不完,如果像了解某个命令的用法可以在某个命令后面跟 --help 查看参数。我的观点是用到哪个谷歌哪个,然后记录到笔记本方便以后查用。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值