原文地址:http://www.cnblogs.com/fnng/archive/2012/03/19/2407162.html

本文只是转载供自己学习之用

本文算是学linux的学习笔记吧!其实linux与window差别还是有挺大的,在学linux时进量清空自己的windows思维,不然容易钻牛角尖。记是学过C之后,去学JAVA,老是用C的思维去看JAVA,所以,就是难入门。因为一个是面向过程的,一个是面向对象的。如果你抛开windows的思想,从零来学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  所有者有读、写权限,组有读权限,其他人有执行权限
 
 
软链接与硬链接                                                                                          
 
软连接:
软连接类似于我们windows系统的“快捷方式”
    那么在windows下之所以要设置快捷方式,就是因为有些文件放置的位置不容易找到,我们就会在桌面创建一个快捷方式。
    那么在linux下的软链接,我想主要是文件名过长,不便于输入。因为linux下对文件对文件操作一般要输入文件名,不像windows下面无所谓文件名的长短,鼠标点击即可完成各中操作。
创建一个软链接
[root@localhost test]# ln -s ruanlianjie.abc /hzh/test/rlj.soft   
   对当前目录下的ruanlianjie.abc文件,在/hzh/test/目录下创建一个软链接,名为rlj.soft
[root@localhost test]# ll
总用量 36
lrwxrwxrwx  1 root root    15  3月 19 20:57 rlj.soft -> ruanlianjie.abc
-rw-r--r--  1 root root    28  3月 19 20:57 ruanlianjie.abc
 
现在就可以对软件链接,进行操作了,
[root@localhost test]# vi rlj.soft          编辑rlj.soft文件,其实也就是编辑ruanlianjie.abc文件
 
硬连接:
       硬连接相当于把原文件拷贝了一份,唯一特殊的地方就是,两个文件是同步的。当你对其中一个文件进行修改时,另一个文件也就会同步更新你的修改。有什么好处,你懂的!
下面创建一个硬链接:
[root@localhost test]# ln yinglianjie.abc /hzh/test/ylj.hard       
   对yinglianjie.abc文件在/hzh/test/目录下创建一个硬链接文件ylj.hard 
[root@localhost test]# ll
-rw-r--r--  2 root root     0  3月 19 21:08 yinglianjie.abc
-rw-r--r--  2 root root     0  3月 19 21:08 ylj.hard
 
[root@localhost test]# vi ylj.hard   对硬链接ylj.hard文件时行修改并保存
[root@localhost test]# ll                       
-rw-r--r--  2 root root    14  3月 19 21:09 yinglianjie.abc      我们会发现yinglianjie.abc也被同步修改了
-rw-r--r--  2 root root    14  3月 19 21:09 ylj.hard
 
文件压缩与解压                                                                                       
 
    文件的压缩与解压,也是我们日常中经常用到的操作,如,我们会经常从网上下载各种文件进行进行安装,而大部分文件都是经过压缩的。
下面来学习四个常用的压缩命令。
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
 

(转载)linux那点事儿(上)的更多相关文章

  1. 把Linux安装到移动硬盘上

    把Linux安装到移动硬盘上 转载于:http://mrkh.me/install-linux-on-a-portable-hard-drive.html 这一篇文章讲一下,怎么把linux安装到移动 ...

  2. [转载]Linux LVM硬盘管理及LVM扩容

    最近项目中一直在用Linux,其中涉及到了Linux的LVM,本来想自己写一篇关于LVM的文章,搜了一下,发现了一篇更好的,转载过来,也感谢作者gaojun 原文Linux LVM硬盘管理及LVM扩容 ...

  3. 在SUSE Linux Enterprise 11 SP1上用UDEV SCSI配置ASM

    1. 编辑/etc/scsi_id.config文件,如果该文件不存在,则创建该文件,添加如下行: options=–whitelisted –replace-whitespace 2. 获取需要绑定 ...

  4. [转载]Linux进程调度原理

    [转载]Linux进程调度原理 Linux进程调度原理 Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务.调度程序会被频繁的执行,所以调度程序要尽可能的高效: 2.加强交 ...

  5. [转载]Linux下非root用户如何安装软件

    [转载]Linux下非root用户如何安装软件 来源:https://tlanyan.me/work-with-linux-without-root-permission/ 这是本人遇到的实际问题,之 ...

  6. [转载]Linux 命令详解:./configure、make、make install 命令

    [转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...

  7. [转载]Linux缓存机制

    [转载]Linux缓存机制 来源:https://blog.csdn.net/weixin_38278334/article/details/96478405 linux下的缓存机制及清理buffer ...

  8. [转载]如何通过ssh进行上传/下载

    [转载]如何通过ssh进行上传/下载 学校给配了服务器的用户账号,但是怎么向服务器中上传以及下载文件呢?Windows下可以使用Xftp和Xshell,但是Linux下能不能用命令行解决呢? 什么是S ...

  9. [转载]Linux 线程实现机制分析

    本文转自http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/ 支持原创.尊重原创,分享知识! 自从多线程编程的概念出现在 Linux ...

  10. form表单那点事儿(上) 基础篇

    form表单那点事儿(上) 基础篇 做为html中最为常见,应用最广泛的标签之一,form常伴随前端左右.了解更深,用的更顺. 目录: 表单属性 表单元素 常识 模拟外观 表单属性 这个表单展示了fo ...

随机推荐

  1. 计算机视觉的matlab工具箱及MVG等

    MATLAB Functions for Multiple View Geometry Peter Kovesi's Matlab functions for Computer Vision Jean ...

  2. 百度编辑器ueditor 使用

    ueditor 百度开源的一个 编辑器 ,支持api.扩展,demo丰富.推荐下 以前写 编辑 词典的使用 jquery-te  轻量级编辑器..当时看中了 它代码轻巧.容易改. 把他的功能改了好多. ...

  3. web sql Database

    http://www.ibm.com/developerworks/cn/web/1108_zhaifeng_websqldb/ http://baishanheishui.iteye.com/blo ...

  4. FTP配置和用户设置权限

    http://www.cnblogs.com/xcxc/archive/2013/01/25/2876749.html ---------------------------------------- ...

  5. Keil C51调试程序时, 对ROM的查看以及RAM 查看或修改

    在Keil 里使用 DeBug 模式时,如要 查看外部 RAM 的数据 或查看 ACC 的内容可以进行以下操作; sysGetTxMode: LCALL Com0185(C:2B95) ,sysGet ...

  6. YII model模型和登陆详解

    模型是 CModel 或其子类的实例.模型用于保持数据以及与其相关的业务逻辑. 模型是单独的数据对象.它可以是数据表中的一行,或者一个用户输入的表单. 数据对象的每个字段对应模型中的一个属性.每个属性 ...

  7. oracle查询语句2【转载】

    本文使用的实例表结构与表的数据如下: scott.emp员工表结构如下:   SQL> DESC SCOTT.EMP; Name     Type         Nullable Defaul ...

  8. unity3d 制造自己的水体water effect(一)

    first,I wish you a happy new year, and study in spring festival’s eve means you are hardworking,haha ...

  9. c++学习笔记(2)类的声名与实现的分离及内联函数

    一.类的声名与实现的分离: 和c函数声明与实现分离类似 有.h : 类的声明 .cpp : 类的实现 在在一个类的cpp中应该包含本类的.h文件 在cpp中类的使用:例: //Circle类 //Ci ...

  10. git bash【初级入门篇】

    最近公司打算使用git代替之前的svn版本控制工具,趁此机会打算好好学学git,这个号称当今世界最牛的分布式版本控制工具. 一.[git和svn的主要区别] 1.去中心化 svn以及微软的TFS均采用 ...