admin管理员组

文章数量:1603247

转载1:

模拟命令行:
[root@zhaozhujiming Desktop]#

[当前登录的用户@主机名 当前所处的位置]$ -- 当前登录用户为普通用户
[当前登录的用户@主机名 当前所处的位置]# -- 当前登录用户为管理员

四个名字:
zhaoxunijiming ---- 虚拟机的名字,vmware中显示
zhaozhujiming ----- 主机的名字,命令行中显示
root -------------- 超级系统管理员
commonuser -------- 普通用户的名字

凡是图形化界面可以操作的事情,命令行基本都能做。

init 0 ------- 关机
init 3 ------- 切换到命令行模式
init 5 ------- 切换到图形化界面模式
init 6 ------- 重启

su ---- switch user:切换用户

常见的两个错误提示信息:
    command not found --------------- 命令敲错了
    no such file or directory ------- 目录或文件的名字敲错了

-------------------------------------------------------------------------------------------------------------------

Linux下没有盘符的概念,取而代之的是根目录。
Linux下没有文件夹的概念,取而代之的是目录。

-------------------------------------------------------------------------------------------------------------------

ls:用于显示指定目录(文件夹)下的内容
语法:ls [-option] 目录名
参数:-a ---- 用于显示所有的文件,包括隐藏文件
      -A ---- 用于显示所有的文件,包括隐藏文件,但是不显示.和..,其中.表示当前目录,..表示上一级目录
      -t ---- 按照文件最后修改的时间排序,倒序
      -l ---- 用于显示文件的所有属性信息

分为七个部分:

    第一部分,分为四个小部分:
    
        第一个小部分:第一位,取值范围是d - l,其中d表示目录,-表示普通文本文件,l表示链接文件(第二天下午讲)

        第二个小部分:第二~四位,取值范围是r w x -,其中r表示读的权限,w表示写的权限,x表示执行的权限,-表示没有权限,表示文件的所有者对应的权限信息

        第三个小部分:第五~七位,取值范围是r w x -,其中r表示读的权限,w表示写的权限,x表示执行的权限,-表示没有权限,表示文件的所有者所在群组中其他用户对应的权限信息

        第四个小部分:第八~十位,取值范围是r w x -,其中r表示读的权限,w表示写的权限,x表示执行的权限,-表示没有权限,表示剩下的所有人对应的权限信息

    第二部分:节点数,创建一个硬链接,节点数+1;删除一个硬链接,节点数-1;(第二天下午讲)

    第三部分:文件的所有者

    第四部分:文件所有者所在的群组

    第五部分:文件的大小,单位是B(字节,第三天证明)

    第六部分:文件最后修改的时间

    第七部分:文件的名字

备注:
    ls -a -t -l == ls -atl
    ls -l == ll

-------------------------------------------------------------------------------------------------------------------

vi:Linux下功能非常强大的文本编辑的命令

    一般模式:查看文本文件的内容,vi 文件名

    编辑模式:在一般模式下按i键进入编辑模式
          按ESC键退出编辑模式,进入一般模式

    命令模式:按:键进入命令模式,保存并关闭需要按wq;不保存退出q!;另存为需要按w 文件名

练习:将Linux默认启动方式修改为命令行模式,重启验证后,再改回来。

vi /etc/inittab

-------------------------------------------------------------------------------------------------------------------

Linux下不同的颜色代表不同的含义:

    蓝色:目录文件
    灰色:普通文本文件
    绿色:可执行文件
    黄色:与设备相关的文件
    浅蓝色:软链接文件
    红色:损坏的软链接、压缩文件

查看IP地址:

    windows查看使用命令:ipconfig

    Linux查看使用命令:ifconfig

        三个部分:eth0 ---- 网卡的名称,对应显示IP地址
              lo ------ 回环地址/环回地址,指向本机的IP地址,127.0.0.1
              virbr0 -- 虚拟网卡的IP地址

        ifdown eth0 --- 关闭网卡
        ifup eth0 ----- 开启网卡

------------------------------------------------------------------------------------------------------------------

cd:change directory,用于改变当前所处的路径
语法:cd 绝对路径/相对路径

绝对路径:从根目录开始的路径
相对路径:从当前位置开始的路径

cd / ---- 切换到根目录
cd .. --- 返回上一级目录
cd ~ ---- 切换到当前用户的属主目录

------------------------------------------------------------------------------------------------------------------

pwd:print working directory:打印当前所处的位置

------------------------------------------------------------------------------------------------------------------

创建目录:mkdir --- make directories
语法:mkdir [-option] 目录名称
参数:-p ---- 当父目录不存在的情况下,同时创建父目录

练习:使用一个命令,同时在根目录下的home下的a下的b下的c下的d下的e下的f中创建x和y两个目录。

mkdir -p a/b/c/d/e/f/x /home/a/b/c/d/e/f/y

----------------------------------------------------------------------------------------------------------------

touch命令:

linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,
或者新建一个不存在的文件。

1.命令格式:

touch [选项]... 文件...

2.命令参数:

-a   或--time=atime或--time=access或--time=use  只更改存取时间。

-c   或--no-create  不建立任何文档。

-d  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   或--time=mtime或--time=modify  只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。

3.命令功能:

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。 

4.使用范例:

实例一:创建不存在的文件

命令:

touch log2012.log log2013.log

输出:

[root@localhost test]# touch log2012.log log2013.log

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 16:01 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

如果log2014.log不存在,则不创建文件

[root@localhost test]# touch -c log2014.log

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 16:01 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

实例二:更新log.log的时间和log2012.log时间戳相同

命令:

touch -r log.log log2012.log

输出:

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 16:01 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

[root@localhost test]# touch -r log.log log2012.log 

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

实例三:设定文件的时间戳

命令:

touch -t 201211142234.50 log.log

输出:

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

-rw-r--r-- 1 root root    0 10-28 14:48 log.log

[root@localhost test]# touch -t 201211142234.50 log.log

[root@localhost test]# ll

-rw-r--r-- 1 root root    0 10-28 14:48 log2012.log

-rw-r--r-- 1 root root    0 10-28 16:01 log2013.log

-rw-r--r-- 1 root root    0 2012-11-14 log.log

说明:

-t  time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.
此处的 time规定为如下形式的十进制数:      

  [[CC]YY]MMDDhhmm[.SS]     

  这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,
则touch   将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068
之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,
这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,
早于1970年1月1日的时间是错误的。

------------------------------------------------------------------------------------------------------------------

凡是和路径相关的命令,都可以用绝对路径和相对路径来实现。

------------------------------------------------------------------------------------------------------------------

删除目录:rmdir --- remove empty directory(鸡肋)
语法:rmdir 目录名

------------------------------------------------------------------------------------------------------------------

cp:复制并粘贴
语法:cp [-option] 源文件 目标文件
参数:-r ---- 用于复制目录,将目录中所有的文件一次性复制

------------------------------------------------------------------------------------------------------------------

mv:剪切并粘贴
语法:mv [-option] 源文件 目标文件

Linux下常用的重命名的命令。

------------------------------------------------------------------------------------------------------------------

rm:用于删除 ---- 明星级的命令
语法:rm [-option] 文件名
参数:-r ---- 用于删除目录
      -f ---- 强制删除

rm -rf /* ---- 禁止使用
rm -rf ------- 谨慎使用

------------------------------------------------------------------------------------------------------------------

管道符:|

ifconfig|less

语法:command1 | command2

将命令1的输出作为命令2的输入

------------------------------------------------------------------------------------------------------------------

查看文件内容的命令:

cat:用于将文件的内容连续的输出到屏幕上

语法:cat [-option] 文件名

参数:-n ---- 用于显示行号
      -b ---- 用于显示行号,但是不现实空行

缺点:当文件内容超过一个屏幕显示的范围的时候,会一闪而过,停不下来

------------------------------------------------------------------------------------------------------------------

more:用于将文件的内容连续的输出到屏幕上,当超过屏幕显示范围的时候,会停下来等待翻页

语法:more [-option] 文件名

参数:+n ---- n为数字,表示从第n行开始
      -n ---- n为数字,表示一页显示几行

翻页方式:
    
    回车 ---- 按行翻页
    空格 ---- 按页翻页

缺点:
    1、只能向下翻页
    2、不能显示行号

------------------------------------------------------------------------------------------------------------------

less:用于将文件的内容连续的输出到屏幕上,可以上下翻页

语法:less [-option] 文件名
参数:-N ---- 连行号显示

退出:q

翻页方式:

    上下键:按行翻页
    pageup/pagedown:按页翻页

------------------------------------------------------------------------------------------------------------------

head:用于查看文件的头几行,默认头十行

语法:head [-option] 文件名

参数:-n ---- n为数字,表示默认头n行

------------------------------------------------------------------------------------------------------------------

tail:用于查看文件的尾几行,默认尾十行

语法:tail [-option] 文件名

参数:-n ---- n为数字,表示默认尾n行
      -f ---- 动态显示文件的内容,多用于查看日志

------------------------------------------------------------------------------------------------------------------

补充:

date:用于显示/设置当前日期
语法:date [-s] 时间的信息
不加参数表示查询,时分秒用:隔开,年月日用-隔开,同时设置需要加引号

cal:用于显示日历
不加信息表示查询当前日期所在的日历信息
cal 1995 ------- 查询1995年的年历
cal 02 1995 ---- 查询1995年2月的月历

tac:倒序显示文件的内容,上下倒序

rev:倒序显示文件的内容,左右倒序

思考:如何同时上下左右倒序显示文件的内容?

tac 1405|rev

rev 1405|tac

------------------------------------------------------------------------------------------------------------------

三个快捷方式:

    TAB键:自动匹配文件或目录的名字
    上下键:自动关联之前输入的命令
    ctrl+l:清屏

------------------------------------------------------------------------------------------------------------------

链接:链接就是对文件的引用,目的是为了文件在系统中有多处被看到。

语法:ln [-option] 源文件 链接文件
参数:-d ---- 表示创建的链接文件为硬链接,缺省参数(默认参数)
      -s ---- 表示创建的链接文件为软连接

硬链接:
    1、创建硬链接后,节点数+1
    2、编辑硬链接,源文件和软连接同步更新
    3、删除硬链接,源文件的节点数-1

软链接:

    1、文件的属性显示为l,表示是链接文件
    2、所有用户拥有的是所有权限(眼见不一定为实)
    3、大小变小了
    4、颜色为浅蓝色
    5、显示箭头指向源文件
    6、编辑软连接,源文件和硬链接同步更新
    7、删除软连接,源文件和硬链接不受影响

源文件:
    
    1、编辑源文件,硬链接和软连接同步更新
    2、删除源文件,硬链接的节点数-1,软链接变为损坏的软链接,再次编辑损坏的软链接会生成新的源文件(此源文件非彼源文件)

硬链接:对源文件进行复制+同步更新
软链接:对源文件创建了一个快捷方式

硬链接和软链接的区别:

    1、目录不允许创建硬链接,但是可以创建软链接

    2、如果要在其他目录下创建软链接,需要在源文件前加绝对路径

    3、创建硬链接必须是相同的文件系统类型

    ……

------------------------------------------------------------------------------------------------------------------

权限修改的命令:

chmod:用于修改文件的读写执行权限

语法:chmod [-option] [parameter] 文件名
参数:-R ---- 将目录中所有文件的权限信息一次性修改

parameter:(三种方式)

第一个方法:权限掩码UMASK法:

    1、将需要修改的权限信息用二进制表示出来,有此权限用1表示,无此权限用0表示 rw-r--r-- ----- 110100100

    2、将转换后的二进制数字每三位每三位进行分隔     110100100 ------ 110 100 100

    3、将分隔后的数字用八进制或十进制表示出来    110 100 100 ---- 644

    4、将计算后的数字放在parameter位置即可        chmod 644 1405


1> 表格对照
二进制(B)    八进制(O)    十进制(D) ---- 几进制没几
0        0        0
1        1        1
10        2        2
11        3        3
100        4        4
101        5        5
110        6        6
111        7        7
1000        10        8


练习:将1405的权限修改为:所有者拥有读和执行的权限,群组中其他用户拥有写和执行的权限,剩下的其他人拥有写的权限

r-x-wx-w-      101011010    101 011 010     532      chmod 532 1405

练习:将文件的权限修改为:所有者拥有读写执行的权限,群组中其他用户拥有执行的权限,剩下的其他人拥有读的权限

rwx--xr--      111001100    111 001 100     714       chmod 714 1405


2> 位权展开求和

110(B) = 0*2^0 + 1*2^1 +1*2^2 = 0+2+4 = 6

3> 死记硬背法

r ---- 4
w ---- 2
x ---- 1


第二个方法:ugo赋值法

u ---- user,所有者
g ---- group,群组中的其他人
o ---- other,剩下的其他人
a ---- all,全部的人

chmod u=rx,g=wx,o=w 1405

chmod u=rwx,g=x,o=r 1405


第三个方法:ugo加减法,加表示增加某个权限,减表示去掉某个权限

u ---- user,所有者
g ---- group,群组中的其他人
o ---- other,剩下的其他人
a ---- all,全部的人

权限修改的命令:

chown:用于修改文件的所有者和所在群组
语法:chown [-option] user:group 文件名
参数:-R ---- 将目录下所有文件的所有者和所在群组一次性修改

备注:
    硬链接的权限信息和源文件保持一致
    软链接的权限信息,读写执行永远显示rwxrwxrwx,所有者和所在群组永远显示root,但是事实上权限信息已经被修改

-----------------------------------------------------------------------------------

用户和群组:

三个配置文件:

第一个:用来存放用户信息的配置文件 /etc/passwd

    每一行表示系统中的一个用户,总共分为七个部分:

    第一部分:用户名

    第二部分:用于存放密码的,当前用x占位

    第三部分:UID,用户识别码,0~499是系统管理使用的ID号码,普通用户的ID号码从500~65535

    第四部分:GID,群组识别吗,0~499是系统管理使用的ID号码,普通用户的ID号码从500~65535

    第五部分:用户的全称

    第六部分:用户的属主目录

    第七部分:shell

第二个配置文件:用来存放用户的密码的配置文件 /etc/shadow

第三个配置文件:用来存放群组的配置文件 /etc/group

    每一行代表一个群组,总共分为四个部分

    第一部分:群组名

    第二部分:x,用于占位

    第三部分:GID,群组识别码

-----------------------------------------------------------------------------------

创建群组:groupadd

语法:groupadd [-option] 群组名
参数:-g GID ---- 创建群组的时候指定ID号码,ID号码必须是500以后的未被使用的ID号码

-----------------------------------------------------------------------------------
    
删除群组:groupdel

语法:groupdel 群组名

备注:群组不为空无法删除

-----------------------------------------------------------------------------------

创建用户:useradd

语法:useradd [-option] 用户名

参数:-u UID ---- 创建用户的时候指定用户ID号码,ID号码必须是500以后的未被使用的ID号码
      -g GID ---- 创建用户的时候指定群组ID号码,ID号码必须是已经使用过的ID号码(在已有群组中增加用户)
      -M ---- 创建用户但是不创建属主目录,此用户权限受限,部分命令无法使用(相当于一个正常的用户删除属主目录)

-----------------------------------------------------------------------------------

删除用户:userdel

语法:userdel [-option] 用户名
参数:-r ---- 删除用户的同时删除用户的所有信息

备注:删除用户的同时会关联删除用这个用户名创建的群组

-----------------------------------------------------------------------------------

修改用户:usermod

语法:usermod [-option] 用户名
参数:-u UID ---- 修改用户的UID号码,ID号码必须是500以后的未被使用的ID号码
      -g GID ---- 修改用户的主群组ID号码,ID号码必须是已经使用过的ID号码(修改用户的群组信息)
      -G GID ---- 修改用户的附加群组ID号码,ID号码必须是已经使用过的ID号码

-----------------------------------------------------------------------------------

补充:
id:用于显示用户的ID信息
语法:id 用户名

groups:用于显示用户的群组信息
语法:groups 用户名

su:切换用户
su 用户名 ---- 切换用户,目录信息不变
su - 用户名 ---- 切换用户,同时切换到属主目录

passwd:设置密码
语法:passwd 用户名

-----------------------------------------------------------------------------------

查找相关的命令:

文件内部查找:grep -- global regular expression print

语法:grep [-option] 需要查找的关键字 文件名
参数:-n ---- 连行号显示
      -c ---- 显示总共有几行可以匹配

场景一:普通查找,如果找不到,考虑加单引号、双引号、反斜杠\等
场景二:*的使用,在指定目录下所有文件中查找
场景三:正则表达式的应用,如果匹配的关键字左右都有空格,也是可以匹配出来
    以**开头 ---- ‘\<aaa’
    以**结尾 ---- ‘aaa\>’

-n和-c同时使用,只显示-c的结果
        
-----------------------------------------------------------------------------------
    
find:在计算机里查找文件,可以对指定的目录或子目录进行文件搜索

语法:find [path] [-option] 文件名
参数:-name ---- 按文件名进行查找

缺点:慢

原理:遍历磁盘

-----------------------------------------------------------------------------------

locate:在计算机里查找文件

语法:locate 文件名

缺点:有可能找不到你想要的文件/有可能找到的是不想要的文件

手动更新数据库:updatedb ---- 更新过程中耐心等待

/var/lib/mlocate/mlocate.db

-----------------------------------------------------------------------------------

打包和压缩:Linux在解压或解包的时候必须知道压缩或打包的工具是什么才能进行解压缩和解包。

    压缩:目的是为了节省空间
    打包:目的是为了方便管理

bzip2:    
    bzip2既是压缩的工具也是压缩的命令。不能压缩目录

语法:bzip2 [-option] 文件名
参数:-z ---- 压缩,缺省参数(默认参数)
      -d ---- 解压缩
      -k ---- 保留源文件    

自动生成后缀名:.bz2

-----------------------------------------------------------------------------------

gzip:
    gzip既是压缩的工具也是压缩的命令。不能压缩目录
    增加了压缩率的概念。

语法:gzip [-option] 文件名
参数:-n ---- n为数字,压缩率的概念,取值范围是1~9,默认是6,取值越高表示压缩率越高,剩下的文件越小,耗时越久
      -d ---- 解压缩

自动生成后缀名:.gz

-----------------------------------------------------------------------------------

zip:
    zip既是压缩的工具也是压缩的命令。能压缩目录

语法:zip 压缩名 文件列表

解压缩:unzip 压缩名

deflated:压缩了

自动生成后缀名:.zip

-----------------------------------------------------------------------------------

打包:tar

    tar既是打包的工具也是打包的命令。

语法:tar [-option] 打包名 文件列表
参数:-c ---- 建立一个包
      -t ---- 查看包中的文件
      -v ---- 打包的过程中显示打包的文件
      -f ---- 需要打包的内容为文件
      -x ---- 解开一个包
      -z ---- 打包的同时使用gzip工具来进行压缩

打包:-cvf ---- 打包
解包:-xvf ---- 解包

建议手动添加.tar的后缀名

打包并压缩:-zcvf ---- 打包并压缩
解包并解压:-zxvf ---- 解包并解压缩

建议手动添加.tar.gz的后缀名

-----------------------------------------------------------------------------------

关机相关的命令:

halt:最简单的关机命令

语法:halt [-option]
参数:-p ---- 将系统挂起后自动关机,缺省参数

shutdown:

语法:shutdown [-option]
参数:-h ---- 关机,需要指定时间,可以指定到具体时间
      -r ---- 重启,需要指定时间,可以指定到具体时间

windows下自动关机的命令:shutdown -s -t 1800 ---- 秒

-----------------------------------------------------------------------------------

进程相关的命令:

    进程:执行起来的程序

ctrl+z:暂停某一工作
ctrl+c:终止某一工作

jobs:用于查看后台所有暂停的进程
语法:jobs

任务号、状态、进程的名字,+表示的是刚刚被暂停的进程,即将被fg推出到前台的进程;-表示的是上一个被暂停的进程,即下一个被fg推出来的进程。

fg:用于将暂停的进程推到前台来
语法:fg %number

备注:number就是用jobs查看的任务编号

-----------------------------------------------------------------------------------

ps:用于查看当前系统中的所有进程

语法:ps [-option]
参数:-a ---- 显示所有的进程,所有用户的所有进程
      -u ---- 显示用户
      -x ---- 显示所有的进程
      -e ---- 显示所有的进程,当前用户的所有进程
      -f ---- 显示进程的完整信息

aux ---- 查看所有用户的所有进程
-ef ---- 查看当前用户的所有进程


kill:终止进程

语法:kill [-option] 进程号/%任务号
参数:-9 ---- 强制终止

-----------------------------------------------------------------------------------

面试真题:Linux下如何查看系统进程?如何查看某一个文件的进程?

ps aux
ps aux|grep 文件名

-----------------------------------------------------------------------------------

查看帮助的命令:

man:用于查看外部命令
语法:man 命令

help:用于查看内部命令
语法:命令 --help

查看磁盘大小相关的命令:

    df:显示系统磁盘使用情况

    语法:df [-option]
    参数:-k ---- 以kb的方式显示,默认参数
          -m ---- 以mb的方式显示
          -h ---- 方便人类阅读的方式显示

    du:显示指定目录所占用的空间

    语法:du [-option] 目录名称
    参数:-k ---- 以kb的方式显示,默认参数
          -m ---- 以mb的方式显示
          -h ---- 方便人类阅读的方式显示

-------------------------------------------------------------------------------------

查看内存的命令:

    free

    语法:free [-option]
    参数:-k ---- 以kb的方式显示,默认参数
          -m ---- 以mb的方式显示
          -t ---- 显示总计

-------------------------------------------------------------------------------------

显示分区信息:

    fdisk

    语法:fdisk [-option]
    参数:-l

    255 heads ---- 磁面
    63 ----------- 扇区
    2289 --------- 磁柱(存储里最小单位)
    8225280 ------ 单个磁柱的容量

-------------------------------------------------------------------------------------

网络相关的几个命令:

    ifconfig:用于查看/设置IP地址

    语法:ifconfig ---- 查看

          ifconfig 网卡名称 ip 地址 ---- 一次性的设置IP地址(永久设置IP地址)

    netstat:用于显示网络状况

    语法:netstat [-option]
    参数:-an ---- 显示端口和用户名
          -at ---- 显示tcp端口
          -au ---- 显示udp端口
          -lnp --- 显示网络连接状况

    ping:用于测试主机和目标机之间网络连接的状况
    语法:ping IP [-option]
    参数:-c ---- 指定测试的次数

-------------------------------------------------------------------------------------

系统管理相关的命令

    w:用于查看当前系统的负载

    语法:w

    vmstat:用于监控当前系统的状态

    语法:vmstat

    top:用于动态监控系统所占资源,每隔3s改变一次

    语法:top

-------------------------------------------------------------------------------------

挂载:

    概念比较抽象。

    mount

    语法:mount [-t 文件系统类型] 设备名称 挂载点

    文件系统类型:
        windows下:ntfs fat32 exfat

        Linux下:vfat ext ext2 ext3 ext4 iso9660 ntfs

    设备名称:光驱的管理文件 /dev/cdrom

    挂载点:/mnt/mycd

    挂载之前必须先加载。

    取消挂载:umount 

    语法:umount 设备名称/挂载点

练习:将mypic.iso镜像文件挂载,把里面的四个图片复制到/home下,然后再将centos挂载回来。

    备注:挂载和取消挂载都不能在挂载点中操作

    不识庐山真面目,只缘身在此山中

-------------------------------------------------------------------------------------

安装:

-------------------------------------------------------------------------------------

RPM安装:redhat package manager,目前使用非常广泛的应用程序管理软件。

    致命弱点:对包的依赖性比较大。

    语法:rpm [-option] 包名
    参数:-e ---- 卸载

    RPM既是安装的方式,也是安装时使用的命令,还是对包的统称。

-------------------------------------------------------------------------------------

yum 安装:傻瓜式的安装方式

    语法:yum [-option] [command]
    参数:-h --- 显示帮助信息
          -v --- 显示安装细节
          -y --- 对所有提示问题回答yes

    命令:install ---- 安装
          reinstall -- 重装
          update ----- 升级
          remove ----- 移除

练习:使用yum安装方式安装tree命令

    1、挂载OK
    2、破坏之前的配置文件 /etc/yum.repos.d/*
    3、在配置文件存放的目录下新建配置文件 /etc/yum.repos.d/cdrom.repo
    [dvd]
    name = install cdrom
    baseurl = file:///mnt/mycd
    enable = 1
    gpgcheck = 0
    4、清除缓存:yum makecache
    5、安装tree命令:yum -y install tree

linux中yum与rpm区别
一、源代码形式

1.      绝大多数开源软件都是直接以原码形式发布的

2.      源代码一般会被打成.tar.gz的归档压缩文件

3.      源代码需要编译成为二进制形式之后才能够运行使用

4.      源代码基本编译流程:

1).configure 检查编译环境;

2)make对源代码进行编译;

3)make insall 将生成的可执行文件安装到当前计算机中

 

二、RPM

RMP 是 LINUX 下的一种软件的可执行程序,你只要安装它就可以了。这种软件安装包通常是一个RPM包(Redhat Linux Packet Manager,就是Redhat的包管理器),后缀是.rpm。

RPM是Red Hat公司随Redhat Linux推出了一个软件包管理器,通过它能够更加轻松容易地实现软件的安装。

  1.安装软件:执行rpm -ivh rpm包名,如:
  #rpm -ivh apache-1.3.6.i386.rpm 
  2.升级软件:执行rpm -Uvh rpm包名。
  3.反安装:执行rpm -e rpm包名。
  4.查询软件包的详细信息:执行rpm -qpi rpm包名
  5.查询某个文件是属于那个rpm包的:执行rpm -qf rpm包名
  6.查该软件包会向系统里面写入哪些文件:执行 rpm -qpl rpm包名

 

1.源代码形式的特点:操作复杂、编译时间长、极易出现问题、依赖关系复杂

2.为了方便,RPM(redhat package manager)

3.RPM通过将代码基于特定平台系统编译为可执行文件,并保存依赖关系,来简化开源软件的安装管理。针对不同的系统设定不同的包

4.常用命令规范:linuxcast-1.2.0-30.el6.1686.rpm 包名-版本号-适用平台-32/64-rpm

5.使用rpm –i software.rpm(安装);

rpm -e software.rpm(卸载);

rpm –U software.rpm(升级形式安装);

rpm –ivh http://www.linuxcast/software.rpm(支持通过http\ftp协议形式安装)

-v 显示详细信息;-h显示进度条

查询功能:rpm –qa 列出全部已经安装的.rpm软件  rpm –qa |grep ***

 

三:YUM

1.      rpm软件包形式的管理虽然方便,但是需要手工解决软件包的依赖关系。很多时候安装一个软件安装一个软件需要安装1个或者多个其他软件,手动解决时,很复杂,yum解决这些问题。Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系,其特点:

1) 自动解决依赖关系

2) 可以对rpm进行分组,基于组进行安装操作

3) 引入仓库概念,支持多个仓库

4) 配置简单

2.  yum仓库用来存放所有的现有的.rpm包,当使用yum安装一个rpm包时,需要依赖关系,会自动在仓库中查找依赖软件并安装。仓库可以是本地的,也可以是HTTP、FTP、nfs形式使用的集中地、统一的网络仓库。

3. 仓库的配置文件/etc/yum.repos.d目录下

4. 使用:

1) yum install 安装;

2) yum remove卸载;

3) yum update 升级制定软件

5. 安装的时候,会下载软件包.Rpm在安装,所以用国内仓库

改变镜像源

1) 访问地址http://mirrors.163/

2)  点centos使用帮助

3) 按步骤来

6.  查询软件:可以使用yumsearch **

详细关于win与linux之间的上传下载文件见博客:https://blog.csdn/weixin_45433031/article/details/120497126

-----------------------------------------
Linux—Linux传输文件:
scp file username@hostIP:文件地址 例: scp abc.txt endall@IP:/home/endall/abc.txt

-----------------------------------------
Windows—Linux上传文件:(pscp需要安装)
开始→运行→cmd进入到dos模式,输入以下命令: pscp E:\javaWP\new.txt hollyfee@130.75.7.156:/home/hollyfee

回车后,提示输入密码,在我们输入Linux服务器上该用户的登录密码后,E:\javaWP\new.txt这个文件会上传到 Linux 服务器的/home/hollyfee目录下。130.75.7.156是远程Linux服务器的IP。

-----------------------------------------
Linux—Windows下载文件:
开始→运行→cmd进入到dos模式,输入以下命令: pscp hollyfee@130.75.7.156:/home/hollyfee/new.txt E:\javaWP\new_copy.txt

回车后,提示输入密码,输入密码后文件将上传到目标机器的/home/hollyfee目录下。

其中:hollyfee为linux的用户名,130.75.7.156为远程Linux主机ip地址,/home/hollyfee/new.txt为linux下的文件,E:\javaWP\new_copy.txt为保存在本地的文件。

转载2:

Linux常用命令大全(非常全!!!)

最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考:

系统信息 
arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本 
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
hdparm -i /dev/hda 罗列一个磁盘的架构特性 
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
cat /proc/cpuinfo 显示CPU info的信息 
cat /proc/interrupts 显示中断 
cat /proc/meminfo 校验内存使用 
cat /proc/swaps 显示哪些swap被使用 
cat /proc/version 显示内核的版本 
cat /proc/net/dev 显示网络适配器及统计 
cat /proc/mounts 显示已加载的文件系统 
lspci -tv 罗列 PCI 设备 
lsusb -tv 显示 USB 设备 
date 显示系统日期 
cal 2007 显示2007年的日历表 
date 041217002007.00 设置日期和时间 - 月日时分年.秒 
clock -w 将时间修改保存到 BIOS 



关机 (系统的关机、重启以及登出 ) 
shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统 
shutdown -c 取消按预定时间关闭系统 
shutdown -r now 重启
reboot 重启
logout 注销 



文件和目录 
cd /home 进入 '/ home' 目录' 
cd .. 返回上一级目录 
cd ../.. 返回上两级目录 
cd 进入个人的主目录 
cd ~user1 进入个人的主目录 
cd - 返回上次所在的目录 
pwd 显示工作路径 
ls 查看目录中的文件 
ls -F 查看目录中的文件 
ls -l 显示文件和目录的详细资料 
ls -a 显示隐藏文件 
ls *[0-9]* 显示包含数字的文件名和目录名 
tree 显示文件和目录由根目录开始的树形结构
lstree 显示文件和目录由根目录开始的树形结构
mkdir dir1 创建一个叫做 'dir1' 的目录' 
mkdir dir1 dir2 同时创建两个目录 
mkdir -p /tmp/dir1/dir2 创建一个目录树 
rm -f file1 删除一个叫做 'file1' 的文件' 
rmdir dir1 删除一个叫做 'dir1' 的目录' 
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容 
rm -rf dir1 dir2 同时删除两个目录及它们的内容 
mv dir1 new_dir 重命名/移动 一个目录 
cp file1 file2 复制一个文件 
cp dir/* . 复制一个目录下的所有文件到当前工作目录 
cp -a /tmp/dir1 . 复制一个目录到当前工作目录 
cp -a dir1 dir2 复制一个目录 
ln -s file1 lnk1 创建一个指向文件或目录的软链接 
ln file1 lnk1 创建一个指向文件或目录的物理链接 
touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm) 
file file1 outputs the mime type of the file as text 
iconv -l 列出已知的编码 
iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding. 
find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick) 



文件搜索 
find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录 
find / -user user1 搜索属于用户 'user1' 的文件和目录 
find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.bin' 结尾的文件 
find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件 
find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件 
find / -name \*.rpm -exec chmod 755 '{}' \; 搜索以 '.rpm' 结尾的文件并定义其权限 
find / -xdev -name \*.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备 
locate \*.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令 
whereis halt 显示一个二进制文件、源码或man的位置 
which halt 显示一个二进制文件或可执行文件的完整路径 



挂载一个文件系统 
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在 
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出 
fuser -km /mnt/hda2 当设备繁忙时强制卸载 
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 
mount /dev/fd0 /mnt/floppy 挂载一个软盘 
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom 
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom 
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom 
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件 
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统 
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享 



磁盘空间 
df -h 显示已经挂载的分区列表 
ls -lSr |more 以尺寸大小排列文件和目录 
du -sh dir1 估算目录 'dir1' 已经使用的磁盘空间' 
du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小 
rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统) 
dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统) 



用户和群组 
groupadd group_name 创建一个新用户组 
groupdel group_name 删除一个用户组 
groupmod -n new_group_name old_group_name 重命名一个用户组 
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户 
useradd user1 创建一个新用户 
userdel -r user1 删除一个用户 ( '-r' 排除主目录) 
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性 
passwd 修改口令 
passwd user1 修改一个用户的口令 (只允许root执行) 
chage -E 2005-12-31 user1 设置用户口令的失效期限 
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户 
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组 
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 



文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消 
ls -lh 显示权限 
ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示 
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 
chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限 
chown user1 file1 改变一个文件的所有人属性 
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 
chgrp group1 file1 改变文件的群组 
chown user1:group1 file1 改变一个文件的所有人和群组属性 
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件 
chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 
chmod u-s /bin/file1 禁用一个二进制文件的 SUID位 
chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 
chmod g-s /home/public 禁用一个目录的 SGID 位 
chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 
chmod o-t /home/public 禁用一个目录的 STIKY 位 



文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消 
chattr +a file1 只允许以追加方式读写文件 
chattr +c file1 允许这个文件能被内核自动压缩/解压 
chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 
chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 
chattr +s file1 允许一个文件被安全地删除 
chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 
chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件 
lsattr 显示特殊的属性 



打包和压缩文件 
bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件 
bzip2 file1 压缩一个叫做 'file1' 的文件 
gunzip file1.gz 解压一个叫做 'file1.gz'的文件 
gzip file1 压缩一个叫做 'file1'的文件 
gzip -9 file1 最大程度压缩 
rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包 
rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1' 
unrar x file1.rar 解压rar包 
tar -cvf archive.tar file1 创建一个非压缩的 tarball 
tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件 
tar -tf archive.tar 显示一个包中的内容 
tar -xvf archive.tar 释放一个包 
tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下 
tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包 
tar -jxvf archive.tar.bz2 解压一个bzip2格式的压缩包 
tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包 
tar -zxvf archive.tar.gz 解压一个gzip格式的压缩包 
zip file1.zip file1 创建一个zip格式的压缩包 
zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包 
unzip file1.zip 解压一个zip格式压缩包 



RPM 包 - (Fedora, Redhat及类似系统) 
rpm -ivh package.rpm 安装一个rpm包 
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 
rpm -U package.rpm 更新一个rpm包但不改变其配置文件 
rpm -F package.rpm 更新一个确定已经安装的rpm包 
rpm -e package_name.rpm 删除一个rpm包 
rpm -qa 显示系统中所有已经安装的rpm包 
rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包 
rpm -qi package_name 获取一个已安装包的特殊信息 
rpm -qg "System Environment/Daemons" 显示一个组件的rpm包 
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表 
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表 
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表 
rpm -q package_name --whatprovides 显示一个rpm包所占的体积 
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l 
rpm -q package_name --changelog 显示一个rpm包的修改历史 
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供 
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表 
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书 
rpm --checksig package.rpm 确认一个rpm包的完整性 
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性 
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间 
rpm -Va 检查系统中所有已安装的rpm包- 小心使用 
rpm -Vp package.rpm 确认一个rpm包还未安装 
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件 
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包 
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包 



YUM 软件包升级器 - (Fedora, RedHat及类似系统) 
yum install package_name 下载并安装一个rpm包 
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系 
yum update package_name.rpm 更新当前系统中所有安装的rpm包 
yum update package_name 更新一个rpm包 
yum remove package_name 删除一个rpm包 
yum list 列出当前系统中安装的所有包 
yum search package_name 在rpm仓库中搜寻软件包 
yum clean packages 清理rpm缓存删除下载的包 
yum clean headers 删除所有头文件 
yum clean all 删除所有缓存的包和头文件 



DEB 包 (Debian, Ubuntu 以及类似系统) 
dpkg -i package.deb 安装/更新一个 deb 包 
dpkg -r package_name 从系统删除一个 deb 包 
dpkg -l 显示系统中所有已经安装的 deb 包 
dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包 
dpkg -s package_name 获得已经安装在系统中一个特殊包的信息 
dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表 
dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表 
dpkg -S /bin/ping 确认所给的文件由哪个deb包提供 



APT 软件工具 (Debian, Ubuntu 以及类似系统) 
apt-get install package_name 安装/更新一个 deb 包 
apt-cdrom install package_name 从光盘安装/更新一个 deb 包 
apt-get update 升级列表中的软件包 
apt-get upgrade 升级所有已安装的软件 
apt-get remove package_name 从系统删除一个deb包 
apt-get check 确认依赖的软件仓库正确 
apt-get clean 从下载的软件包中清理缓存 
apt-cache search searched-package 返回包含所要搜索字符串的软件包名称 



查看文件内容 
cat file1 从第一个字节开始正向查看文件的内容 
tac file1 从最后一行开始反向查看一个文件的内容 
more file1 查看一个长文件的内容 
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作 
head -2 file1 查看一个文件的前两行 
tail -2 file1 查看一个文件的最后两行 
tail -f /var/log/messages 实时查看被添加到一个文件中的内容 



文本处理 
cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT 
cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中 
cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中 
grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug" 
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇 
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行 
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug" 
sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2" 
sed '/^$/d' example.txt 从example.txt文件中删除所有空白行 
sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行 
echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容 
sed -e '1d' result.txt 从文件example.txt 中排除第一行 
sed -n '/stringa1/p' 查看只包含词汇 "string1"的行 
sed -e 's/ *$//' example.txt 删除每一行最后的空白字符 
sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部 
sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容 
sed -n '5p;5q' example.txt 查看第5行 
sed -e 's/00*/0/g' example.txt 用单个零替换多个零 
cat -n file1 标示文件的行数 
cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行 
echo a b c | awk '{print $1}' 查看一行第一栏 
echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏 
paste file1 file2 合并两个文件或两栏的内容 
paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分 
sort file1 file2 排序两个文件的内容 
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份) 
sort file1 file2 | uniq -u 删除交集,留下其他的行 
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件) 
comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容 
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容 
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分 




字符设置和文件格式转换 
dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX 
unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS 
recode ..HTML < page.txt > page.html 将一个文本文件转换成html 
recode -l | more 显示所有允许的转换格式 



文件系统分析 
badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块 
fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性 
fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 
e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性 
e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 
fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性 
fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性 
fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 
dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性 



初始化一个文件系统 
mkfs /dev/hda1 在hda1分区创建一个文件系统 
mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统 
mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统 
mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统 
fdformat -n /dev/fd0 格式化一个软盘 
mkswap /dev/hda3 创建一个swap文件系统 



SWAP文件系统 
mkswap /dev/hda3 创建一个swap文件系统 
swapon /dev/hda3 启用一个新的swap文件系统 
swapon /dev/hda2 /dev/hdb3 启用两个swap分区 



备份 
dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份 
dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份 
restore -if /tmp/home0.bak 还原一个交互式备份 
rsync -rogpav --delete /home /tmp 同步两边的目录 
rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync 
rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录 
rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录 
dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作 
dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件 
tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作 
( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容 
( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录 
tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接 
find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录 
find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包 
dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作 
dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容 



光盘 
cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容 
mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件 
mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件 
mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件 
cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件 
gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件 
mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件 
cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中 
cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3) 
cdrecord --scanbus 扫描总线以识别scsi通道 
dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD 



网络 - (以太网和WIFI无线) 
ifconfig eth0 显示一个以太网卡的配置 
ifup eth0 启用一个 'eth0' 网络设备 
ifdown eth0 禁用一个 'eth0' 网络设备 
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址 
ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing) 
dhclient eth0 以dhcp模式启用 'eth0' 
route -n show routing table 
route add -net 0/0 gw IP_Gateway configura default gateway 
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' 
route del 0/0 gw IP_gateway remove static route 
echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing 
hostname show hostname of system 
host www.example lookup hostname to resolve name to ip address and viceversa
nslookup www.example lookup hostname to resolve name to ip address and viceversa
ip link show show link status of all interfaces 
mii-tool eth0 show link status of 'eth0' 
ethtool eth0 show statistics of network card 'eth0' 
netstat -tup show all active network connections and their PID 
netstat -tupl show all network services listening on the system and their PID 
tcpdump tcp port 80 show all HTTP traffic 
iwlist scan show wireless networks 
iwconfig eth1 show configuration of a wireless network card 
hostname show hostname 
host www.example lookup hostname to resolve name to ip address and viceversa 
nslookup www.example lookup hostname to resolve name to ip address and viceversa 
whois www.example lookup on Whois database 

JPS工具

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

    我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。

     使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。

jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path.

$> jps
23991 Jps
23789 BossMain
23651 Resin


比较常用的参数:

-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数
$>  jps -q
28680
23789
23651

-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null

$> jps -m
28715 Jps -m
23789 BossMain
23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdout.log -stderr /data/aoxj/resin/log/stderr.log

-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

$> jps -l
28729 sun.tools.jps.Jps
23789 com.asiainfo.aimc.bossbi.BossMain
23651 com.caucho.server.resin.Resin

-v 输出传递给JVM的参数

$> jps -v
23789 BossMain
28802 Jps -Denv.class.path=/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jd

k15/lib/tools.jar -Dapplication.home=/data/aoxj/jdk15 -Xms8m
23651 Resin -Xss1m -Dresin.home=/data/aoxj/resin -Dserver.root=/data/aoxj/resin -Djava.util.logging.manager=com.caucho.log.LogManagerImpl -

Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl

sudo jps看到的进程数量最全

jps 192.168.0.77

列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099

(前提是远程服务器提供jstatd服务)

注:jps命令有个地方很不好,似乎只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令。

本文标签: 不懂就看全集常用命令Linux