最新-Linux常用命令大全-随时更新

图片 13
  •    1 LINUX COMMAND
  •        1.1 cat
  •        1.2 ls
  •        1.3 echo
  •        1.4 sort
  •        1.5 awk
  •        1.6 df
  •        1.7 du
  •        1.8 fsck
  •        1.9 dumpe2fs
  •        1.10 rpm
  •            1.10.1 RPM校验
  •            1.10.2 RPM包中文件提取
  •            1.10.3 源码包与RPM包的区别
  •        1.11 yum
  •        1.12 head
  •        1.13 tail
  •        1.14 chmod
  •        1.15 chown
  •        1.16 systemctl
  •        1.17 chkconfig
  •        1.18 mount
  •            1.18.1 挂载命令格式
  •            1.18.2 挂载光盘
  •            1.18.3 卸载光盘
  •            1.18.4 挂载U盘
  •            1.18.5 NTFS u盘支持
  •        1.19 swap
  •        1.20 free
  •        1.21 Compression 压缩 command
  •            1.21.1 gzip
  •            1.21.2 bz2
  •            1.21.3 xz
  •            1.21.4 zip
  •        1.22 tar
  •            1.22.1 *.tar.gz
  •            1.22.2 *.tar.bz2
  •        1.23 locate
  •        1.24 find
  •            1.24.1 根据文件名查找:
  •            1.24.2 根据文件从属关系查找:
  •            1.24.3 根据文件的类型查找:
  •            1.24.4 根据文件的大小查找:
  •            1.24.5 根据时间戳查找
  •            1.24.6 根据权限来查找:
  •            1.24.7 处理动作:
  •        1.25 history
  •        1.26 vim
  •        1.27 useradd
  •        1.28 userdel
  •        1.29 id
  •        1.30 usermod
  •        1.31 groupadd
  •        1.32 su
  •        1.33 chage
  •        1.34 passwd
  •        1.35 gpasswd
  •        1.36 groups
  •        1.37 date
  •        1.38 hwclock
  •        1.39 ln
  •        1.40 SElinux
  •        1.41 crontab
  •        1.42 fdisk
  •    2 LINUX THE DOCUMENT
  •        2.1 用户和用户组管理
  •            2.1.1 /etc/passwd:用户信息文件
  •            2.1.2 影子文件:/etc/shadow
  •            2.1.3 组信息文件/etc/group
  •            2.1.4 组密码文件/etc/gshadow
  •            2.1.5 用户的家目录
  •        2.2 linux的特殊权限
  •            2.2.1 SUID
  •            2.2.2 SGID
  •            2.2.3 STICKY
  •        2.3 facl
  •        2.4 文件系统属性chattr权限
  •        2.5 sudo权限
  •        2.6 linux下查看帮助命令
  •        2.7 linux根目录结构和文件系统
  •    3 SHELL
  •        3.1 shell更改

 

一 linux命令的格式

Description:”【中文中括号】”表示单一的解释,不在所属的问题之中,勿需与所在命令比较。 
Red coloured
words 表示重点,linux不同文件类型以不同颜色区分。本文档中出现的color与linux系统相对应。 
Blue coloured
words 为给出的例子。 :表示换行。 
linux the document出现的黑色背景矩形方框为区别给出的例子
color= #FF1493 区分RED标记.
    背景color=#778899叙述或解释。
Typeface color=#FF6347区分标题

一、系统管理与设置

        1、命令  [选项]  [参数]

本文档部分内容参考于网友个人博客以及各大搜索网站
禁止分享

 

        ls  list    显示目录下内容

1 LINUX COMMAND

[root@pan
~]# root:登录的用户 @分隔符  pan主机名 ~当前路径

:newline

1、信息显示命令

        ①  命令名称:ls

1.1 cat

cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
-A:查询所有的内容包括隐藏字符

 

            命令英文原意:list

1.2 ls

-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

# man & info  //帮助手册

            命令所在路径:/bin/ls

1.3 echo

#echo [选项][输出内容]
-e:支持反斜线控制的字符转换

控制字符 作用
\ 输出本身
a 输出警告音
b 退格键,也就是向左删除键
c 取消输出行末的换行符,和“-n”选项一致
e ESCAPE键
f 换页符
n 换行符
r 回车键
t 制表符,也就是Tab键
v 垂直制表符
nm 按照八进制ASCII码输出字符,其中0为数字零,nnn是三位八进制数
xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数。

echo -e “e[1;31m abcd
e[0m” 输出颜色
=30m 黑色,=31m 红色,=32m 绿色,
=33m 黄色,=34m 蓝色,=35m 洋红,
=36m 青色,=37m 白色。
#echo -e
abbc

 

            执行权限:所有用户

1.4 sort

sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,不加参数时依次按ASCII码值进行比较,最后将他们按升序输出
-n :依照数值的从小到大排序;
-r :以相反的顺序来排序; 
-u :忽略相同行使用-u选项或者uniq
文件名
-t
<分隔符>:指定排序时所用的栏位分隔字符;
-k 是指定需要排序的栏位(字母按ASCII排序,数字按从小到大。先数字后字母)
[root@mail
text]# sort -nrk 3 -t:
sort.txt  将CC列数字从大到小顺序排列:
eee:40:5.4
eee:60:5.1
ddd:20:4.2
ccc:50:3.3
bbb:10:2.5
aaa:30:1.6
AAA:BB:CC
图片 1

# man 命令 //显示相应命令的帮助内容

            功能描述:显示目录文件

1.5 awk

  1. awk ‘{print $1}’ 文件名 
    $1第一列,$2第二列,$NF最后一列.$(NF-1)倒数第二列)。
    现在是以文件的空格为分隔符这样打印
  2. awk -F “:” ‘{print $1}’
    /etc/passwd  -F指定分隔符,并打印文件第一列
    多列打印 [root@pan ~]# awk -F
    “:” ‘{print $2 $3}’ /etc/passwd 这样打印$2
    $3之间是没有分隔符 要加分隔符就是 awk -F “:” ‘{print
    $2″分隔符符号”$3}’ /etc/passwd $0表示整个文件

 

        ②  ls  名直接回车,显示目录下内容

1.6 df

文件系统查看命令
-a:显示所有的文件系统信息信息,包括特殊文件系统,如,/proc,/sysfs
-h:使用习惯单位显示容量,如KB,MB或GB等。
-T:显示文件系统类型
-m: 以MB为单位显示容量。
-k:以KB为单位显示容量,默认就是以KB为单位显示容量。

du命令和df命令的区别
df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间) 
du命令是面向文件的,只会计算计算机文件或目录占用的空间。

 

# arch  //显示当前系统体系结构

        ls  -l          长格式显示       (缩略选项用一个减号,完整选项用两个减号)

1.7 du

是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在
的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和 
-h :
以K,M,G为单位,提高信息的可读性。
-s :
统计总占用量,而不列出子目录和子文件的占用量。
ls -h是目录下文件名占用大小   du -h 是目录下所有文件的大小
-k : 以KB(1024bytes)为单位输出。
-m : 以MB为单位输出。
-a显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量。

 

        -rw——-    1   root    root    1190    08-10
23:37     anaconda-ks.cfg

1.8 fsck

文件系统修复命令
fsck [选项] 分区设备文件名
-a:不显示用户提示,自动修复文件系统
-y:自动修复。和-a作用一致,不过有些文件系统只支持-y

# cal  //显示当前月份

        第一项:        权限位   

1.9 dumpe2fs

显示磁盘状态命令
#dumpe2fs 分区设备名

 

        第二项:  1      引用计数

1.10 rpm

rpm是Linux标准基础(LSB)兼容发行版所使用的一种软件包管理器,用来对软件包进行低级处理rpm可以查询、安装、检验、升级和卸载软件包,它多数用于基于Fedora的系统,比如RHEL和CentOS
只有安装和升级要加包全名。-ivh: -i:安装,-v:显示详细信息,-h:显示进度,–nodeps:不检测依赖性。
-Uvh包全名:RPM包升级. 
-q :接软件包名字 #查询软件是否已经安装
-q(查询query)
-qa :#查询所有已经安装的RPM包。-a(所有all)
-qi :包名字#查询软件包详细信息 -i
:显示软件包的相关信息
-ql 包名:查询软件包安装位置 -l
:显示套件的文件列表。
-qf +系统文件名。查看一个文件是由哪个包安装的
-qip
包全名:查询未安装软件包信息,必须在软件包目录进行查询。
-qR :查询软件包的依赖性。
-qRp :查询未安装软件包的依赖性必须在Packages目录查询。
-e 包名:卸载软件。

rpm -qf `which 程序名`  #返回软件包的全名    已安装的软件包
rpm -qif `which 程序名`  #返回软件包的有关信息
rpm -qlf `which 程序名`  #返回软件包的文件列表

 

# cal 2012  //显示2012年的月历

        第三项:  root   所有者

1.10.1 RPM校验

#rpm -V 已安装的包名
选项:-V 校验指定RPM包中的文件。(verify)
[root@Tiger ~]#rpm -V httpd
S.5….T. c /etc/httpd/conf/httpd.conf
验证内容中的8个信息的具体内容如下:
S:文件大小是否改变;
M:文件的类型或文件的权限(r w
x)是否被改变;
5:文件MD5校验和是否改变(可以看成文件的内容是否改变);
D:设备的主,从设备号是否改变;
L:文件路径是否改变;
U:文件的属主(所有者)是否改变;
G:文件的属组是否改变;
T:文件的修改时间是否改变;
文件类型:
c :配置文件(config file)
d :普通文档(documentation)
g :”鬼”文件(ghost
file),很少见,就是该文件不应该被这个RPM包包含
l :授权文件(license file)
r :描述文件(read me)

 

        第四项:  root   属组

1.10.2 RPM包中文件提取

#rpm2cpio
包全名 | cpio -idv .文件绝对路径
 反斜杠:换行的作用。
rpm2cpio:将rpm包转换为cpio格式的命令。
cpio:是一个标准工具,他用于创建软件档案文件和从档案文件中提取文件。
#cpio 选项 < [文件|设备]
选项: -i:copy-in模式,还原
   -d:还原时自动新建目录
   -v:显示还原过程
#rpm -qf
/bin/ls 查询ls命令属于哪个软件包 
#mv /bin/ls /tmp
造成ls命令误删除的假象
#rpm2cpio
/mnt/Packages/coreutils-8.4-37.el6.x86_64.rpm | cpio -idv ./bin/ls
提取RPM包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin 把ls命令复制到/bin目录,修复文件丢失。

# cal 10 2012  //显示2012年10月的月历

        第五项:         大小

1.10.3 源码包与RPM包的区别

安装在指定位置当中,一般是/usr/local/软件名/。
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装apache的启动方法是:
/etc/rc.d/init.d/httpd start:
绝对路径启动服务。 
service httpd start
源代码保存位置:/usr/local/src/
软件安装位置:/usr/local/
如何确定安装过程报错:安装过程停止;并出现error、warning或no的提示。
源码包安装过程:
下载源码包;解压缩下载的源码包;进入解压缩目录。

CRT中sftp里面要设置远程的路径和本地的路径: 
cd 1 进入远程连接到的Linux的1目录
lcd text 本地的c盘text目录
get abc.c 从远程目录得到文件abc.c放入本地目录text
put a11.txt 从Windows上将文件a11.txt传入linux

源码包配置:
./configure软件配置与检查

  1. 定义需要的功能选择。
  2. 检测系统环境是否符合安装需求。
    3.
    把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
    ./configure –prefix=/usr/local/apache2安装路径
    详情参考INSTALL
    源码包的卸载:
    不需要卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件。
    脚本安装包:
    脚本安装包并不是独立的软件包类型,常见安装的是源码包。
    是人们把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
    非常类似于Windows下软件的安装方式。

 

 

        第六项          最后一次修改时间

1.11 yum

能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
remove :删除指定的rpm软件包; yum -y
remove 软件包名
yum update +包名 :升级。 禁用
yum grouplist:列出所有可用的软件组列表;
yum groupinstall
软件组名:安装指定的软件组,组名可以由goruplist查询出来;
yum groupremove:卸载指定软件组;

配置yum仓库:     
  [base]  
  name=centos  
  baseurl=file:///mnt/  
  enabled=1  
  gpgcheck=0 

 

# cal -y  //显示整年日历

        第七项          文件名

1.12 head

head
用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行 
-n:显示文件的前n行 head -n 5 a.txt 显示文件的前5行
-c显示文件前n个字节 head -c 20 a.txt
head -c -32 log2014.log文件的除了最后n个字节以外的内容
head -n -6 log2014.log
输出文件除了最后n行的全部内容

 

        ls  -a       显示所有文件(包含隐藏文件)

1.13 tail

主要用来从指定点开始将文件写到标准输出。很多人喜欢使用tail -f
来监控日志文件。
-f该参数用于监视文件的增长 tail -f filename
监视filename文件的尾部内容(默认10行,相当于增加参数 -n
10),刷新显示在屏幕上。退出,按下CTRL+C。
-n从指定行位置读取指定文件。tail -n 20 filename 显示filename最后20行。
-c显示文件最后n个字节 tail -c 20 a.txt

# cat /etc/issue  //看当前系统发行版本

        ls  -al

1.14 chmod

chmod命令用来变更文件或目录的权限,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件
-f :若该文件权限无法被更改也不要显示错误讯息
-R :对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
r=读取属性 值=4  w=写入属性 值=2  x=执行属性 值=1

 

        ls  -hl    文件大小显示为常见大小单位    B   KB  MB

1.15 chown

改变某个文件或目录的所有者和所属的组
Grammar:chown USER:GROUP 对象
chown USER 对象  chown :group 对象

# cat /etc/redhat-release //看操作系统版本(redhat和centos)

        ls  -d      显示目录本身,而不是里面的子文件

1.16 systemctl

systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig
这两个命令组合到一起
图片 2

 

        ls  -l       文件名    
 

1.17 chkconfig

1.服务概述: 在linux操作系统下,经常需要创建一些服务,这些服务被做成shell脚本,这些服务需要在系统启动的时候自动启动,关闭的时候自动关闭。 将需要自动启动的脚本/etc/rc.d/init.d目录下,然后用命令chkconfig –add filename将自动注册开机启动和关机关闭。实质就是在rc0.d-rc6.d目录下生成一些文件连接,这些链接连接到/etc/rc.d /init.d目录下指定文件的shell脚本。

–list :列出所有系统服务
–add httpd:增加httpd服务。
–del httpd:删除httpd服务。
–list mysqld:列出mysqld服务设置情况
–level 35 mysqld on:设定mysqld在等级3和5为开机运行服务,–level
35表示操作只在等级3和5执行,on表示启动,off表示关闭。
chkconfig mysqld
on:设定mysqld在各等级为on,“各等级”包括2、3、4、5等级。

chkconfig 设置是当前不生效,linux重启后才生效. service 设置是即时生效,linux关机重启后设置失效

# cat /etc/shells  //查看shell版本

    提示符:(特殊字符)

1.18 mount

查询与自动挂载(Auto
Mount)图片 3
#mount [-l]
查询系统中已经挂载的设备,-l会显示卷标名称
#mount -a
依据配置文件/etc/fstab的内容,自动挂载

 

        [root@localhost src]#

1.18.1 挂载命令格式

#mount [-t 文件系统] [-L卷标名]
[-o特殊选项] 设备文件名 挂载点
-t
文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
-L
卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项。
图片 4
#mount -o
remount,noexec /home这里的/home是df可以查看到的分区重新挂载/home分区,并使用noexec权限
#cd /home 
#vi hello.sh

#!/bin/bash
echo "i love you"

#chmod 755 
#./hello.sh 会显示没有权限执行 
#mount -o remount,exec /home
记得改回来,要不然会影响系统启动的。

 

# cat /etc/services | more  //查看各种服务的port

        [当前登录用户@主机名 当前所在目录]#

1.18.2 挂载光盘

#mkdir /mnt/cdrom 建立挂载点
#mount -t iso9660 /dev/cdrom
/mnt/cdrom 挂载光盘
#mount /dev/sr0 /mnt/cdrom

 

                #       超级用户

1.18.3 卸载光盘

#umount设备文件名或挂载点
#umount /mnt/cdrom

# cat /proc/cpuinfo  //显示CPU信息

                $       普通用户

1.18.4 挂载U盘

fat32格式:

#fdisk -l 查看U盘设备文件名
#mount -t vfat /dev/sdb1 /mnt/usb/
注意:fat16分区识别为fat,fat32分区识别为vft。linux默认是不支持NTFS文件系统的

 

 

                当前所在目录:~          用户家目录  

1.18.5 NTFS u盘支持

下载NTFS-3G插件 
解压 tar -zxvf filename
安装 ./configure && make && make
install
fdisk -l查看linux的U盘分区:sdc1
#mount -t ntfs-3g /dev/sdc1
/mnt/usb/ #mkfs -t ext4 /dev/sdb1/
格式化分区,扩展分区不可格式
#mkdir
/disk1 建立挂载点
#mount /dev/sdb1 /disk1 挂载

# cat /proc/cpuinfo | grep flags | grep ‘ lm ‘ | wc -l  //结果大于0,
说明支持64位计算。lm指long mode, 支持lm则是64位

                            管理员      /root

1.19 swap

新增swap空间:free查看swap大小
新增一个分区,改分区号82,保存退出
格式化:mkswap /dev/sdb6 
加入swap分区:swapon /dev/sdb6
取消swap分区:swapoff
/dev/sdb6 但是每次开机都要手动挂载一遍,可以写入fatab开机自动挂载
vi /etc/fstab

/dev/sdb6 swap swap defaults 0 0

 

# getconf LONG_BIT  //查看CPU位数(32 or 64)

                            普通用户    /home/用户名

1.20 free

显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。 
-b :以Byte为单位显示内存使用情况;
-k :以KB为单位显示内存使用情况;
-m :以MB为单位显示内存使用情况;
图片 5
total:去掉为硬件和操作系统保留的内存后剩余的内存总量。许多人奇怪自己的电脑安装了一共8G的内存,但是显示总共只有七点几G的,现在应该没什么疑惑了把,不管Linux还是Windows都会有部分内存是保留给硬件和操作系统的!
userd:当前已使用的内存总量。
free:空闲的或可以使用的内存总量
shared:共享内存大小,主要用于进程间通信
buff(buffers):缓冲,主要用于块设备数据缓冲(磁盘缓存大小),例如记录文件系统的metadata(目录、权限等等信息)。是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入硬盘,减小了磁盘碎片和硬盘反复寻道,加速了数据的写入过程。
cache:缓存,主要用于文件内容缓冲,是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程。
available:可以使用的内存总量.

 

    二 目录操作命令

1.21 Compression 压缩 command

# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c  //查看CPU型号

            1)cd  切换所在目录

1.21.1 gzip

gzip filename压缩 *.gz :”后缀名” 
gzip -d filename.gz gunzip filename.gz 解压缩 
不解压查看:zcat filename.gz

 

                ①  命令名称:cd

1.21.2 bz2

bzip2 filename压缩 *.bzip2:”后缀名”
bzip2 -k filename 保存源文件压缩
bzip2 -d filename.bz2 bunzip2 filename.bz2解压缩 
不解压查看:bcat filename.bz2

# cat /proc/cpuinfo | grep physical | uniq -c  //查看实际有几颗CPU

                    命令英文原意:change directory

1.21.3 xz

xz filename压缩 .xz:”后缀名” 
xz -d filename.xz 解压缩
unxz -k filename.xz 保存源文件解压

 

                    命令所在路径:shell内置命令

1.21.4 zip

zip默认保存源文件,可以压缩目录
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
-r :递归处理,将指定目录下的所有文件和子目录一并处理;

# getconf LONG_BIT  //显示当前CPU运行在什么模式下

                    执行权限:所有用户

1.22 tar

-c: 建立压缩档案 
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的

tar cf file.tar files
将一个或多个文件、目录打包到tar包。
tar rf file.tar file
将文件file添加到tar包中。
tar uf file.tar file
将文件file更新tar包中相应的文件。
tar tf file.tar 查看tar内容。
tar xf file.tar 解压tar包。 
-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩 
-v:显示处理过程 
-C:指定解压输出目录 tar zxvf test.tar.gz -C test
-f:
使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

-Z:有compress属性的
-O:将文件解开到标准输出 
格式:tar Zcf file.tar.Z files
将一个或多个文件、目录压缩到file.tar.Z中。需要安装了ncompress软件包才行。
解压.tar.Z文件。格式:tar Zxf file.tar.Z  
归档并压缩:使用时间格式打包数据:
tar zcf etc-$(date +%F).tar.gz /etc   tar zcf
etc-`date +%F`.tar.gz /etc

 

                ②cd  /usr/local/src

1.22.1 *.tar.gz

归档并调用gzip压缩 tar -zcf 新文件名.tar.gz /etc/passwd
/var/log/messagages
调用gzip解压缩并展开归档 tar -zxvf filename.tar.gz

# cat /proc/devices 
//列出字符和块设备的主设备号,以及分配到这些设备号的设备名称

               
相对路径:参照当前所在目录,进行查找。一定要先确定当前所在目录。    root]#cd  ../usr/local/src

1.22.2 *.tar.bz2

归档并调用bzip2压缩 tar -jcf 新文件名.tar.bz2 /etc/passwd
/var/log/messages
调用bzip解压缩并展开归档 tar -jxf filename.tar.bz2

 

                绝对路径:cd  /usr/local/src    从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定位置

1.23 locate

其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。 
所以你要知道:

  1. locate的速度比find快,因为它并不是真的查找文件,而是查数据库
    2.
    locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护
  2. 升级数据库命令:locate — u 
    CentOS系统找不到locate命令,原因是系统中没有安装 mlocate 这个包,然后更新数据库:updatedb 。 
    -c :只显示找到条目的号码
    -b :匹配唯一的路径名称的基本文件名
    -r :基于基本正则表达式进行匹配操作

# cat /proc/filesystems  //看文件系统

                cd  ~       进入当前用户的家目录    /root       /home/aa/

1.24 find

实时查找工具,通过遍历指定起始路径下文件系统层级结构完成文件查找:

 

                cd     

1.24.1 根据文件名查找:

-name “pattern”
-iname “pattern” 支持glob风格的通配符:
*,?,[],[^]  i忽略大小写
-regex
pattern :基于正则表达式查找文件,匹配整个路径而非其名;

# cat /proc/interrupts  //显示中断

                cd  –       进入上次目录

1.24.2 根据文件从属关系查找:

-user USERNAME:查找属主指定用户的所有文件;
-goup GROUPNAME:查找属组指定组的所有文件;
-uid UID:查找属主指定的UID的所有文件;
-gid GID:查找属组指定的GID的所有文件;
-nouser :查找没有属主的文件;
-nogroup :查找没有属组的文件;

 

                cd  ..      进入上一级目录

1.24.3 根据文件的类型查找:

-type TYPE :按name查找 
f:普通文件  d:目录   l:符号链接文件   b:块设备文件   c:字符设备文件
p:管道文件 s:套接字文件   【 ./可执行文件 】
组合测试:   与:-a,默认组合逻辑;  或:-o;  非:-not,! 
!A -a !B =!(A -o B)      !A -o !B =!(A -a
B)    例:查找tmp目录下不包含“fstab”的字符文件   find
/tmp -not -iname “*fstab*”  

# cat /proc/ioports  //看设备io端口

                cd  .       进入当前目录

1.24.4 根据文件的大小查找:

-size [+|-]#UNIT 常用单位:K,M,G 
例:size 10K filename,大小表示 (#-1,#]
  9K<filename<10K 
  size -10K filename,大小表示[0-UNIT-1] 
  size +10K filename,大小表示(#,∞)

 

            2)  pwd显示当前所在目录

1.24.5 根据时间戳查找

以“天”为单位: 
# [#,#-1]距现在为止过去几天访问过文件。
-#:(0,#) 几天访问过文件。
+#(oo, #-1] 几天前至-oo访问过的所有文件
-atime

显示的是文件中的数据最后被访问的时间,比如系统的进程直接使用或通过一些命令和脚本间接使用。

-mtime

显示的是文件内容被修改的最后时间,比如用vi编辑就会发生改变。

-ctime

显示的是文件的权限、拥有者、所属的组、链接数发生改变时的时间。当然当内容改变时也会随之改变。

以“分钟”为单位:
-amin  -mmin  -cmin 同上

 

# cat /proc/loadavg  // 看系统负载

                命令名称:pwd

1.24.6 根据权限来查找:

-perm [/|-]mode     例:find ./ -perm 644  
mode:精确权限匹配;
/mode :任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足
9位权限之间存在“或”关系;
-mode :每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足
9位权限之间存在”与”关系; 
例: 440属于/666有读的权限 find./ -perm /666
符合这一查找

 

                命令英文原意:print working
directory

1.24.7 处理动作:

-print :输出至标准输出:默认的动作; 
-ls :类似于对查找到的文件执行“ls
-l”命令,输出文件的详细信息
-delete :删除找到的文件
-fls :/PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中; 
-ok COMMAND {}
; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认; 
-exec COMMAND {} ;
:对查找到的每个文件执行由COMMAND表示的命令; 
例:find ./ -perm /002 -exec mv {} {}.txt ;
注意: find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递后面的命令;但是有些命令不能接受过长的参数,此时执行命令会失败;另一种方式可规避此问题:find
| xargs command
:
1、 查找/var目录下属主为root,且属组为mail的所有文件或目录;
find /var -user root -a -group mail -ls

2、 查找/usr目录下不属于root,bin或hadoop的所有文件或目录;用两种方法;

find /usr -not -user root -a -not -user bin -a -not -user hadoop
find /usr -not ( -user root -o -user bin -o -user hadoop ) -ls

 

3、 查找/etc目录下最近一周内其内容修改过,且属主不是root也不是hadoop用户的文件或目录;
find /etc -mtime -7 -a -not -user root -a -not -user hadoop
find /etc -mtime -7 -a -not (-user root -o -user hadoop)
-ls

4、查找当前系统上没有属主或属组,且最近一周内曾今被访问过的文件或目录; 
find ./ -nouser -o -nogroup -ls
如果有文件属于可查找项,但是加ls选项最后会无法输出显示 加了-o(或条件)和ls后只会对后一半生效。

需要→ find ./ ( -nouser -o -nogroup) -atime -7 -ls

 

5、 查找/etc目录下大于1M且类型为普通文件的所有文件;
find /etc -size +1M -ls
find /etc -size +1M -type f -exec ls -lh {} ;

6、 查找/etc目录下所有用户都没有写权限的文件;

find /etc -not -perm /222 -type f -ls 至少有一个用户 有

7、 查找/etc目录至少有一类用户没有执行权限的文件;
find /etc -not -perm -type f -111

8、 查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的所有文件;

find /etc -perm -111 -a -perm -002 -ls
find /etc -perm -113 -ls -type f

 

# cat /proc/meminfo  //看内存信息

                命令所在路径:/bin/pwd

1.25 history

#history
[选项][历史命令保存文件]
-c:清空历史命令
-w:把缓存中的历史命令写入历史命令保存文件
~/.bash_history

历史命令默认保存1000条,可以在环境变量配置文件/etc/profile中修改

历史命令的调用: 1. 使用上、下箭头调用以前的历史命令

  1. 使用”!n”重复执行第n条历史命令
  2. 使用”!!”重复执行上一条命令
  3. 使用”!字符串”重复执行最后一条以该字符串开头的命令。

 

                执行权限:所有用户

1.26 vim

:.,$y 复制当前行到末尾行
:! 调用系统命令,可临时执行
使vim设置永久生效:vim /etc/vimrc
把设置写到这个文件的最后,对所有账户生效
set nu 显示行号   set nonu 取消行号
set ic 不区分大小写 set noic 取消不区分大小写
set ts=4 设置tab键长度
set sw=4 设置自动缩进的tab键长度 
vim /root/.vimrc
也可以把设置写到此文件,只对root生效 
vim字符替换:

:%s/this/that 每一行的第一个this被替换成that 
:%s/this/that/g 将文本中所有的this替换成that %从每一行的开头到结尾 s表示替换 
:1,5 s/old/new/g #替换第一行到第5行中所有匹配的内容

字符操作:u撤销上一步 
i当前插入,I行首插入。
a当前字符插入(光标后一位插入),A行尾插入。 
o表示:本行回车到下一行插入,O上一行插入。
x删除光标所在字符,X向前删除一个字符。
dd删除光标所在的行,dG删除光标所在开始行到文件尾的所有字符。 
J合并两行。 
行操作:home
键或^键行首,$或end行尾
dd删除一行Ndd(删除本行与下一行)。
yy复制一行,Nyy复制n行,p将复制行粘贴,p向光标下一行粘。(N表示数字)
词操作:dw删除一个词,y+$复制至行尾。y+^复制至行首。yw复制一个词。:.,$y 复制当前行到末尾

v模式:编程的时候需要进行多行注释: (删除是要将光标移到这个词的行首,如果光标不在行首则删除光标之后的字母。) 块操作:D或d+$删除至行尾 d+^删除至行首
1、注释:ctrl+v进入列编辑模式 
2、向下或向上移动光标 (ctrl L 向下全部选中)
3、把需要注释的行开头的开头标记起来
4、然后按大写的I
5、再插入注释符,比如“#”
6、再按Esc,就会全部注释了
删除多行注释:按ctrl+v进入列编辑模式;向下或向上移动光标;选中注释部 分然后按d,就会删除注释符号。

vim编辑器: :wq 可以保存外 :w
+路径+文件名直接保存在某个位置和重命名:w
路径/文件名
ZZ 保存退出  :x 保存退出  :!命令:!ifconfig 
vi的行定位功能:
ctrl+f 向前卷动一个屏幕
ctrl+b 向后卷动一个屏幕
G 到文件最后一行行首
:$ 到文件最后一行行尾
mG 到指定行,m为目标行数 或者mgg 
set nu 显示行号 
/内容 查找指定内容 
n 查找下一个
N 回到前一个

寻找上一个

/^字符串 查找以字符串开始的行
/字符串$ 查找以字符串结尾的行 
/a.b 查找字符串a任意字符b vim替换 
r 替换当前光标字符 
:r 文件名 在光标当前位置载入另一个文件

 

# cat /proc/mounts  //显示当前系统所安装的文件系统信息

            3)linux常见目录

1.27 useradd

useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户.
-u :uid指定用户ID
-d:指定用户登入时的启始目录。
-g:指定用户所属的群组 
-G:指定用户所属的附加群组。 
-s:指定用户登入后所使用的shell。
tom 用户的登陆 shell 为非交互式 shell  #useradd –s /sbin/nologin tom 
-e :指定账号的有效期限,缺省表示永久有效
useradd user1——创建用户user1; 
useradd –e 12/30/2009 user2——创建user2,指定有效期2009-12-30到期
-c:用户说明,手工指定用户的说明,添加说明有Spacebar时要加” “

用户默认值文件:/etc/defalut/useradd
1. GROUP=100 :用户默认组ID (公有模式)
2. HOME=/home :用户家目录
3. INACTIVE=-1 :密码过期宽限天数(shadow文件7字段)
4. EXPIRE=no value :密码失效时间(8字段)
5. SHELL=/bin/bash :默认的shell
6. SKEL=/etc/skel :模板目录
7. CREATE_MAIL_SPOOL=yes :是否建立邮箱
/etc/login.defs
PASS_MAX_DAYS 999 :密码有效期(5字段)
PASS_MIN_DAYS 0 :密码修改间隔(4字段)
PASS_MIN_LEN 5 :密码最小5位(PAM)
PASS_WARN_AGE 7 :密码到期警告(6)
UID_MIN 500 :最小和最大UID范围
GID_MIX 60000
ENCRYPT_METHOD SHA512 :加密模式

 

 

                /       根目录

1.28 userdel

删除用户userdel [-r] 用户名
-r:删除用户的同时删除用户家目录

# free  //看内存信息

                /bin        命令保存目录(普通用户就可以读取的命令)

1.29 id

查看用户id:#id 用户名
查询用户的UID,初始组ID,附加群组ID

 

                /boot       启动目录,启动相关文件

1.30 usermod

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user
id,必须确认这名user没在电脑上执行任何程序.
-g <群组> 修改用户所属的原始群组。
#usermod -g
root username 
-G
<群组> 修改户所属的附加群
-a
-G 无限增加到附加组,可拥有多个附加组. 将a1添加附加组user3 #usermod -a -G user3 a1 
-c:修改用户的说明usermod -c “test user” username

当某一用户拥有多个附加组之后,使用usemod -G会修改附加组,则多个组消失掉变成唯一当前修改的附加组.

 

1、将 newuser2 添加到附加组 staff  #usermod -G staff newuser2 
-l
<帐号名称> 修改用户帐号名称。 
2、修改 newuser 的用户名为 newuser1 #usermod -l newuser1 newuser 
-L 锁定用户密码,使密码无效。
-U 解除密码锁定。
3、锁定账号 newuser1 #usermod -L newuser1 
4、解除对 newuser1 的锁定 #usermod -U newuser1 
-d 改变用户家目录,常与-m结合使用 
-m 将主目录的内容移动到新目录 
usermod -m -d /home/user2 -uid
username 若使用报错使用以下命令: 
cat /dev/null > /var/run/utmp

清空此文件。utmp是一个文件,除了utmp程序你不能编辑这个文件,删掉他的话,当前登陆信息都会丢失。它就好比系统开启后它会把系统成员的信息迅速的记录下来,过一段时间它就不再记录,确认系统的用户配置就是这样了,这个文件在每次机器reboot起来后都会重新创建。

 

# dmidecode  //查看内存型号

                /dev        设备文件保存目录

1.31 groupadd

-gGID: 修改组ID
-n新组名: 修改组名

 

                /etc        配置文件保存目录

1.32 su

su: [选项] 用户名
:选项只使用”-“代表连带用户的环境变量一起切换。

可使用env命令查看

-c:仅执行一次命令,而不切换用户身份
#su – root
-c “useradd
user3″不切换成root,但是执行useradd命令添加user1用户。

 

# /usr/platform/sun4u/sbin/prtdiag -v  //查看内存信息(unix)

                /home       普通用户的家目录

1.33 chage

修改用户密码状态chage 
#chage [选项] 用户名 
-l:列出用户的详细密码状态
-d
日期:修改密码最后一次更改日期(shadow3字段)

-m 天数:两次密码修改间隔(4字段)
-M 天数:密码有效期(5字段)
-W 天数:密码过期前警告天数(7字段)
-I 天数:密码过后宽限天数(7字段)
-E 日期:账号失效时间(8字段)
#chage -d 0
username这个命令其实是把密码修改日期归0了(shadow第3字段),这样用户只要一登录就要修改密码。第三字段是指密码最后一次修改时间的日期。1970年1月1号到现在修改密码的时间戳。如果第3字段改为0,系统会认为用户没有修改过操作密码,那么当此用户一旦登录系统就会提示要修改密码,才可正常使用。

 

                /lib        系统库保存目录

1.34 passwd

-S:查询用户密码的密码状态,仅root用户可用。
-l:暂时锁定用户。仅root用户可用。
-u:解锁用户。仅root用户可用。
–stdin:可以通过管道符输出的数据作为用户的密码。 # echo “123” |
passwd –stdin user

# cat /proc/modules  //看当前系统模块

                /mnt        系统挂载目录

1.35 gpasswd

-d :从组删除用户 gpasswd -d username groupadd 
-a :添加用户到组(附加组),同时保留以前的组

添加用户到某一个组可以使用 usermod -G groupB userA 这个命令可以添加一个用户到指定的组,但是以前添加的组就会清空掉. 所以想要添加一个用户到一个组,同时保留以前添加的组时,请使用gpasswd这个命令来添加操作用户

-A :指定组内管理员 gpasswd -A username groupname

 

                /media      挂载目录

1.36 groups

groups username 显示linux用户所属的组

# cat /proc/net/dev 显示网络适配器及统计

                /root       超级用户的家目录

1.37 date

date 根据给定格式显示日期或设置系统日期时间。print or set the system
date and time 指令所在路径:/bin/date  #date “+%Y-%m-%d
%H:%M:%S” 
-d:显示字符串所指的日期与时间。字符串前后必须加上双引号;#date -d now
#date -d ‘next monday’  #date -d yesterday +%Y-%m-%d
-r:显示文件最后修改时间 
-s:设置系统时间 #date -s “2018-11-11 00 00 00”

在使用date -s这个命令修改时间后,系统重启后就失效了,因此为了将这个时间永久生效,需要将修改的时间写入CMOS,查看CMOS的时间:#clock –r 。 将当前系统时间写入CMOS中去#clock –w

在生产环境中常使用时间格式打包数据:#tar zcvf etc-$(date +%F).tar.gz /etc
#tar zcvf etc-`date +%F`.tar.gz
/etc 
图片 6

 

                /tmp        临时目录

1.38 hwclock

查看硬件时间
设置硬件时间hwclock –set –date=”07/07/06 10:19″ (月/日/年
时:分:秒)
硬件时间和系统时间的同步:重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。
硬件时钟与系统时钟同步: #hwclock
–hctosys(hc代表硬件时间,sys代表系统时间)
系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)#hwclock –-systohc

# cat /proc/partitions  //看当前系统分区

                /sbin       命令保存目录(超级用户才能使用的目录)

1.39 ln

ln:链接命令
硬链接:复制并同步 ln /etc/passwd /tmp/password
软链接:类似windows下的快捷方式 ln -s
/etc/passwd /tmp password
软链接和硬链接的区别:
1.创建命令不同: ln -s /root/ruan.txt
/root/桌面/ ln /root/ying.txt /root/桌面/
2.软链接创建时必须使用绝对路径(链接和源文件在同一目录下,可以相对路径)硬链接创建时可以绝对路径也可相对路径
3.软链接的源文件不可以剪切,重命名,删除 硬链接的源文件可以剪切,重命名,删除
4.软链接的链接文件权限永远是777,即使将链接文件的权限进行了修改,也不会发生变化,变得是源文件的权限 硬链接的链接文件权限永远和源文件相同
5.软链接的链接文件的inode号和源文件不同 硬链接的链接文件的inode号和源文件相同
6.软链接可以对目录操作 硬链接不支持对目录操作,是针对于上层来说,底层是可以针对于目录做硬链接的,通过代码就可以实现
7.软链接可以跨文件系统 硬链接不可以跨文件系统,因为硬链接是存放在源文件的同一个block上面的

 

                /proc       直接写入内存的

1.40 SElinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux
内核模块,也是 Linux 的一个安全子系统。SELinux
主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
DAC:在没有使用
SELinux
的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。
只要访问这个资源的进程符合以上的条件就可以被访问。 而最致命问题是,root
用户不受任何管制,系统上任何资源都可以无限制地访问。这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。
MAC:在使用了
SELinux
的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。
这样一来,即使进程是以 root
身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。
即使是以 root
身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。
这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。
getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态
setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如:
setenforce 0用于关闭selinux防火墙,但重启后失效。图片 7
SELinux status:selinux防火墙的状态,enabled表示启用selinux防火墙 
关闭SElinux:
临时关闭 :[root@localhost
~]# setenforce 0 用于关闭selinux防火墙,但重启后失效 
永久关闭:修改selinux的配置文件:vim
/etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存后退出,此时获取当前selinux防火墙的安全策略仍为Enforcing,配置文件并未生效。重启后验证。
SELinux 有三种工作模式,分别是: 1. enforcing:强制模式。违反 SELinux
规则的行为将被阻止并记录到日志中。

  1. permissive:宽容模式。违反 SELinux
    规则的行为只会记录到日志中。一般为调试用。
  2. disabled:关闭 SELinux

# cat /proc/scsi/scsi  //查看scsi硬盘信息

                /sys       

1.41 crontab

1.Crontab是一个用于设置周期性执行任务的工具;
2.周期性执行的任务我们称为Cron Job;
3.周期性执行的任务列表我们称为Cron Table
crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:

* * * * * command minute hour day month week command 顺序:分 时 日 月 周

minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文
-u:编辑某个用户的cron,只用root可以使用此参数为别的用户设置cron服务。也可用于给用户指定crontab文件。
-l:列出当前用户的crontab。
-r:删除当前用户的crontab。
-e:编辑当前用户的crontab,默认使用vi,或者是由
VISUAL或EDITOR环境变量指定的编辑器。
-i与-r一起使用,用来询问用户是否直接删除crontab 
1、安装cron
– yum install vixie-cron 
– yum install crontabs1、检查cron服务:
– 检查crontab工具是否安装:crontab -l 
– 检查crond服务是否启动:service crond status
检查crontab服务状态:service crond status 
图片 81.每晚的21:30重启apache
30 21 * * * service httpd restart
2.每月1,10,22日的4:45重启apache

45 4 1,10,22 * * service httpd restart

 

3.每月1-10日的4:45重启apache
45 4 1-10 * * service httpd restart

4.每天18:00-23:00之间每隔30分钟重启apache

0,30 18-23 * * * service httpd restart
0-59/30 18-23 * * * service httpd restart

 

5.每晚11-早上7点之间,每隔一个小时重启apache
* 23-7/1 * * * service httpd restart

6.每隔两分钟重启apache

*/2 * * * * service httpd restart
1-59/2 * * * * service httpd restart(奇数分钟重启)
0-58/2 * * * * service httpd restart(偶数分钟重启)

小结: 
-*表示任何时候都匹配;
-可以用”A,B,C”表示A或者B或者C时执行命令
-可以用”A-B”表示A到B之间时执行命令
-可以用”*/A”表示每A分钟(小时等)执行一次命令

 

*/1 * * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP

图片 9

 

                /usr        系统软件资源目录

1.42 fdisk

fdisk命令操作磁盘详解–添加、删除、转换分区等
主分区和扩展分区(扩展分区不能直接使用)(1-4),扩展分区下面再分逻辑分区(5开始)。
[root@Tiger]#fdisk /dev/sda
图片 10
分区保存报错需要重启时,强制读取分区表信息
#partprobe
yum install -y parted

# cat /proc/swaps  //看所有swap分区

                    /usr/bin/       系统命令(普通用户)

2 LINUX THE DOCUMENT

 

                    /usr/sbin/      系统命令(超级用户)

2.1 用户和用户组管理

# cat /proc/version  //查看Linux内核版本

                /var        系统相关文档内容

2.1.1 /etc/passwd:用户信息文件

user1:x:500:500::/home/user1:/bin/bash
第一字段:用户名称;
第二字段:密码标志;
第三字段:UID(用户ID);
0:超级用户;
1-499:系统用户(伪用户);
500-65535:普通用户;
第4字段:GID(用户初始组ID)
第5字段:用户说明
第6字段:家目录
普通用户:/home/用户名/
超级用户:/root/
第7字段:登录之后的Shell

 

                    /var/log/       系统日志位置

2.1.2 影子文件:/etc/shadow

第1字段:用户名
第2字符:加密密码 加密算法升级为SHA512散列加密算法
如果密码位是“ !”或“ * ”代表没有密码,不能登录。
第3字段:密码最后一次修改日期:使用1970年1月1号作为标准时间,每过一天时间戳加1。
第4字段:两次密码的修改间隔时间(和第3字段相比)间隔多少时间后才可以修改密码。
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数(和第5字段相比)
第7字段:密码过期后的宽限天数(和第5字段相比)
0:代表密码过期后立即失效。
-1:则代表密码永远不会失效。
第8字段:账号失效时间,要用时间戳表示
第9字段:保留
把时间戳换算为日期:
date -d “1970-01-01 17740 days” 
把日期换算为时间戳:
echo $(($(date –date=”2018/07/28″
+%s)/86400+1))

# cat /etc/security/limits.conf  //查看打开最大文件数等设置

                    /var/spool/mail/        系统默认邮箱位置

2.1.3 组信息文件/etc/group

第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户

 

                    /var/lib/mysql/    默认安装的mysql的库文件目录    

2.1.4 组密码文件/etc/gshadow

第一字段:组名
第二字段:组密码
第三字段:组管理员用户名
第四字段:组中附加用户

# cd /proc/pid号;ls -l exe  //查看进程的完整路径

            4)建立目录

2.1.5 用户的家目录

  • 普通用户:/home/用户名/,所有者和所属者都是此用户,权限是700
  • 超级用户:/root/,所有者和所属者都是root用户,权限是550。
  • 用户的邮箱:/var/spool/mail/用户名/
  • 用户模板目录:/etc/skel:创建用户时,用户的家目录会自动创建一些隐藏文件,这些文件是从/etc/skel/ cp过去的。想要每个新添加用户时家目录自动出现共享文件可在此目录添加。

 

                mkdir  目录名

2.2 linux的特殊权限

特殊权限: SUID,SGID,STICKY 
1.进程以某用户的身份运行;进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作;
2.权限匹配模型: 
(1)判断进程的属主,是否为被访问的文件属 主 ;如果是,则应用属主的权限;否则进入第2步;
(2)判断进程的属主,是否属于被访问的文件属 组 ;如果是,则应用属组的权限;否则进入第3步;
(3)应用other的权限;

# date //显示当前时间

                命令名称:mkdir

2.2.1 SUID

SetUID的功能:

1. 只有可以执行的二进制程序才能设定SUID权限。 
2. 命令执行者要对该程序拥有X(执行)权限
3. 命令执行者在执行该程序时获得该程序文件属主的身份
4. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

SUID :默认情况下:用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份运行;
SUID 的功用:用户运行某程序时,如果此程序拥有SUID的权限,那么程序运行为进程时,进程的属主不是发起者,而程序文件自己的属主;
管理文件的SUID权限: 
chmod u+|-s FILe 
展示位置:属主的执行权限位。 
#chomod 4644 filename
取消suid权限:#chmod 644 filename
大写S为报错,检查是否有x权限

 

 

                命令英文原意:make directories

2.2.2 SGID

用户在执行程序时候,组身份变为该程序文件的属组与SUID类似。

管理文件的 SGID 的权限: 
chmod g+|-s FILE SGID :
功用:当目录属组有写的权限,且SGID权限时,当你给一个目录添加了sgid之后,后面不管谁来这个目录下创建文件,文件的所属组都会继承目录的所属组
展示位置:属组的执行权限位
如果属组原本有执行权限,则显示为小写s;否则,显示为大写S; 
#ll
/usr/bin/locate
#ll
/var/lib/mlocate/mlocate.db
图片 11

# date +’%Y/%m/%d’  //以yyyy/mm/dd格式显示日期

                命令所在路径:/bin/mkdir

2.2.3 STICKY

图片 12
sticky :t权限只能给目录添加,当你给一个目录添加了t权限之后,后面所有人在这个目录下不能删除其他人的文件,只能删除自己的文件;
管理文件的Sticky权限: chmod o+|-t
FILE
展示位置:其他用户的执行权限位
如果其他用户原本有执行权限,显示为小写t;否则为大写T。
系统上的/tmp和/var/tmp目录下默认均有Sticky权限

SUID SGID STICKY 八进制权限
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7

基于八进制方式赋权时,可于默认的三位八进制数字左侧再加一位八进制数字;
例:chmod 1777 中的 1 表示特殊权限

 

                执行权限:所有用户

2.3 facl

facl:file access control lists 文件访问控制列表
文件的额外赋权机制:在原有的u,g,o之外,另一层让普通用户控制赋权给另外的用户或组的赋权机制;
查看分区ACL权限是否开启
#dumpe2fs -h /dev/sda3
dumpe2fs命令是查询指定分区详细文件系统信息的命令.选项:
-h仅显示超级块中的信息,而不显示磁盘块组的详细信息
临时开启分区ACL权限:
#mount -o remount,acl
/ 重新挂载根分区,并挂载加入acl权限。
永久开启分区ACL权限#vi /etc/fstab

  UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 dufaults,acl 1 1         加入ACL

#mount -o remount /
:重新挂载文件系统或重启动系统,使修改生效。
getfacl filename :查看文件额外的权限 
setfacl命令: setfacl -m u:username:rw
filename 
赋权给用户: setfacl -m u:USERNAME:MODE
file 
赋权给组: serfacl -m g:GROUPNAME:MODE
file 
撤销赋权:serfacl -x u:USERNAME file
    serfacl -x g:USERNAME file 
递归ACL权限:#setfacl -m u:用户名:权限
-R
目录名

 

默认ACL权限:默认acl权限的作用是如果给父目录设定了默认的ACL权限,那么父目录中所有新建的子文件都会继承父目录ACL的权限。#setfacl -m d:u:用户名:权限 文件名

图片 13
setfacl 选项 文件名
选项: 
-m :设定ACL权限
-x :删除指定的ACL权限
-b :删除文件所有的ACL权限
-d :设定默认ACL权限
-k :删除默认ACL权限
-R :递归设定ACL权限
最大有效权限mask mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限”相与”才能得到用户的真正权限。

A B and
r r r
r
r

修改最大有效权限:#setfacl -m m:rx
filename 设定mask权限为r-x。使用“m:权限”格式。

mask值只能添加ACL权限之后后期更改,当更改mask值以后再添加ACL权限,mask值就会变为777

# date +’%Y-%m-%d’  //以yyyy-mm-dd格式显示日期

                mkdir  -p  11/22/33/44       递归建立目录

2.4 文件系统属性chattr权限

#chattr [+-=] [选项]
文件或目录名
+:增加权限
-:删除权限
=:等于权限 
选项:

-i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录下文件的数据还可以cp,但不允许建立和删除文件
-a:如果对文件设置a属性,那么只能在文件中增加数据(只能用echo增加数据,不能用vim),但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。

chattr +i a.txt
lsattr -a a.txt 
—-i——–e- a.txt   e:代表此文件在ext4文件系统下建立的。 
查看文件系统属性:
#lsattr 选项 文件名
-a显示所有文件和目录
-d若目标是目录,仅列出目录本身的属性,而不是子文件。

 

 

            5)删除目录

2.5 sudo权限

root把本来只能超级用户执行的命令赋予普通用户执行。
sudo的操作对象是系统命令
whereis 命令 查看命令的绝对路径
#visudo
实际修改的是/etc/sudoers文件
root  ALL=(ALL)   ALL
用户名  被管理主机的地址=(可使用的身份)  授权命令(绝对路径)
被管理的主机地址可写成主机ip和ALL 
%wheel  ALL=(ALL)  ALL
组名   被管理的主机地址=(可使用的身份)  授权命令(绝对路径) 
root  ALL=(ALL)   ALL
st  192.168.81.137=/sbin/shutdown -r now 添加内容
st   ALL=/usr/bin/vim
危险操作 
#su – st:切换用户 
#sudo
-l 查看可用的sudo命令
#sudo /sbin/shutdown -r now
普通用户执行sudo赋予的命令

# date +%H:%M  //显示时、分

                rmdir  目录          只能删除空目录

2.6 linux下查看帮助命令

whatis :用于查询一个命令执行什么功能,并将查询结果打印到终端上
[root@localhost ~]# whatis ls
man :Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可
  man command    

 

                命令名称:rmdir

2.7 linux根目录结构和文件系统

进程的类型:
  终端:硬件设备,关联一个用户接口。
  与终端相关:通过终端启动。 
  与终端无关:操作引导启动过程中自动启动 
操作系统的组成:
  静态:kernel,application
  文件系统:层级结构
FHS:  Filesystem Hierarchy Standard
  /bin:所有用户可用的基本命令程序文件;
  /sbin:供系统管理使用的工具程序;
  /boot:引导加载器必须用到的各种静态文件:Kernel,initramfs(initrd),grub等;
  /dev:存储特殊文件或设备文件;
   设备有两种类型:字符设备(线性设备)、块设备(随机设备);
  /etc:系统程序的配置文件,只能为静态:
  /home:普通的家目录的集中位置:一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
  /lib:为系统启动或根文件系统上的应用程序(/bin,/sbin)等提供共享库,以及为内核提供内核模块
   libc.so.*:动态链接的C库;
   ld*:运行时链接器/加载器;
   modules:用于存储内核模块的目录;
  /lib64:64位系统特有的存放64位共享的路径;
  /media:便携式设备挂载点,cdrom,floppy等;
  /mnt:其他文件系统的临时挂载点;
  /opt:附加应用程序的安装位置:可选路径;
  /srv:当前主机为服务提供的数据;
  /tmp:为那些会产生临时文件的程序提供的用于临时文件的目录:可供所用户执行写入操作:有特殊权限;
  /usr:usr
Hierarchy,全局共享的只读数据路径:
   bin,lib64
   include:C程序头文件;
   share:命令手册页和自带文档等架构特有的文件的存储位置
   local:另一个层级目录;
   X11R6:X-widow程序的安装位置
   src:程序源代码文件的存储位置
  

# date -r test  //显示test文件最后一次的修改时间

                命令英文原意:remove empty directories

3 SHELL

shell就是linux的命令解释器。
在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写如/sbin/nologin。
脚本执行:

  1. 赋予脚本权限,直接运行
    chmod 755 hello.sh
    ./hello.sh 
  2. 通过bash调用执行脚本
    bash hello.sh

 

                命令所在路径:/bin/rmdir

3.1 shell更改

shell 程序执行有三种方式 filename:foo.sh  #. foo.sh   #bash foo.sh  #chmod +x foo.sh→#./foo.sh linux读取shell配置文件的执行顺序
Bash Shell的配置文件启动系统执行顺序
#/etc/bashrc 文件   #/etc/profile 文件  #/etc/profile.d 目录  #~/.bashrc 文件#~/.bash_profile 文件
切换不同的类型和版本的Shell   查看shells # cat /etc/shells 
通过配置文件修改用户Shell
# /etc/passwd    # /etc/shells
通过命令自定义切换

  • chsh 自定义shell (请勿更改) 
    例:cp /bin/bash /bin/pan copy     vim /etc/shells 添加
    /bin/pan add 
    chsh 切换shell /bin/shell change

 

# dmesg  //看启动信息

                执行权限:所有用户

 

三 文件操作命令

# dmidecode | grep “Product Name”  //查看机器型号

            1)创建空文件或修改文件时间

 

                touch  文件名

# dmidecode | more  //查看硬件(如内存型号、生产厂家等)信息

                命令名称:touch

 

                命令所在路径:/bin/touch

# dmidecode |grep ‘Serial Number’  //查看主板的序列号

                执行权限:所有用户

 

            2)删除

# dmidecode -q  //显示硬件系统部件 (SMBIOS / DMI)

                rm  -rf  文件名

 

                    -r  删除目录

# dmidecode -s system-serial-number  //查看系统序列号

                    -f  强制

 

                命令名称:rm

# dmidecode -t 11  //查看OEM信息

                命令英文原意:remove

 

                命令所在路径:/bin/rm

# dmidecode -t memory  //查看内存信息

                执行权限:所有用户

 

            3)cat  文件名       查看文件内容。从头到尾

# dmidecode -t processor  //查看CPU详细信息

                命令名称:cat

 

                命令所在路径:/bin/cat

# echo  //显示文本行

                执行权限:所有用户

 

                -n  列出行号

# echo $LANG  //显示系统语言

            4)more  文件名  分屏显示文件内容

 

                命令名称:more

# echo $PATH  //显示系统的环境变量

                命令所在路径:/bin/more

 

                执行权限:所有用户

# env  //显示所有环境变量

                空格向下翻页        b   向上翻页    q  退出

 

            6) head  文件名 显示文件头    tail

# export  //查看环境变量(在bash下)

                命令名称:head

 

                命令所在路径:/usr/bin/head

# fgconsole  //显示活动的虚拟终端数目

                执行权限:所有用户

 

                head  -n  行数   文件名       指定显示文件头几行

# file -s /dev/sd*  //查看设备信息

                head  -n  20  文件名

 

                head  -20  文件名

 

                ctrl+c      强制终止

 

                ctrl+l          清屏

# file /sbin/init  //查看系统是32位还是64位:

            8)链接文件   

 

            ln

64位系统输出信息如下:

            命令名称:ln

 

            命令英文原意:link

sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for
GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux
2.6.9, stripped

            命令所在路径:/bin/ln

 

            执行权限:所有用户

 

                    快捷方式

 

                    新建的链接,占用不同的硬盘位置

32位系统输出信息如下:

                    修改一个文件,两都改变

 

                    删除源文件,软连接打不开

/sbin/init: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
for GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped

                    ln  -s  源文件  目标文件      文件名都必须写绝对路径

 

四  文件和目录都能操作的命令

 

            1)rm       删除文件或目录

 

            2)复制

# free -m  //以M为单位显示内存状态

            命令名称:cp

 

            命令英文原意:copy

# free -m -s5  //以M为单位,每隔5秒刷新一次内存状态

            命令所在路径:/bin/cp

 

            执行权限:所有用户

# gcc -v  //查看GCC版本

            cp  源文件  目标位置

 

                -r  复制目录

# getconf LONG_BIT  //查看系统是32位还是64位

                -p  连带文件属性复制

 

                -d  若源文件是链接文件,则复制链接属性

# glxinfo  //显示有关GXL扩展和OpenGL渲染器的信息

                -a  相当于  -pdr

 

            cp  aa  /tmp/        原名复制

# grep -i ‘10.52’ /etc/hosts 
//查找/etc/hosts文件中包含10.52的行,不区分大小写

            cp  aa  /tmp/bb      改名复制

 

            3)剪切或改名

# hdparm -i /dev/hda 罗列一个磁盘的架构特性

            命令名称:mv

 

            命令英文原意:move

# hdparm -tT /dev/sda 在磁盘上执行测试性读取操作

            命令所在路径:/bin/mv

 

            执行权限:所有用户

# head -5 /etc/passwd  //看文件passwd的前5行

            mv  源文件  目标位置

 

            mv  /root/aa  /tmp/

# tail -10 /etc/passwd  //看文件passwd的后10行

            mv  aa  bb

 

五  权限管理

# sed  -n ‘5,10p’ /etc/passwd  //查看文件passwd的第5行到第10行

        1   权限位

 

            -rw-r–r–   1   root root     0 08-11 01:45 aa

# history  //显示历史记录

            权限位是十位

 

            第一位:代表文件类型

# history  5  //显示最近执行的5个历史记录

                –   普通文件

 

                d   目录文件

# history  -c  //清除历史记录

                l   链接文件

 

            九位    属主权限u=user   属组权限g=group     其他人权限o=other

# sysdef -h  //查看主机ID(Unix)

                r   读      4

 

                w   写      2

# hostname  //显示主机名

                x   执行    1

 

        2   修改权限

# hostname  -a  //显示主机别名

            chmod

 

            命令名称:chmod

# hostname  -d  //显示主机域名

            命令英文原意:change the permissions mode of a file

 

            命令所在路径:/bin/chmod

# hostname  -i  //显示主机IP地址

            执行权限:所有用户

 

            chmod  u+x  aa       aa文件的属主加上执行权限

# hostname 主机名 //设置主机名称

            chmod  u-x  aa

 

            chmod  g+w,o+w  aa

# hwclock  //获取当前硬件时间

            chmod  u=rwx  aa

 

            chmod  755  aa      

# hwclock –show  //查看硬件时间

            chmod  644  aa

 

        3   权限意义:

# clock –show    //查看硬件时间

            1)权限对文件的含义

 

                r:读取文件内容      cat  more  head  tail

# hwclock –version  //显示hwclock命令的版本信息

                w:编辑、新增、修改文件内容       vi  echo

 

                   但是不包含删除文件

# info 命令 //显示相应命令info内容

                x:可执行                             

 

            2)权限对目录的含义

# iostat -d 2 3  //评估磁盘性能,每隔2s刷新一次信息,且刷新3次

                r:可以查询目录下文件名       ls

 

                w:具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切        touch  rm  mv  cp

# lastlog   //最近登入的时间

                x:可以进入目录          cd

 

        4   属主和属组命令

# locale  //显示系统当前的语言设置

            chown

 

            命令名称:chown

# locale -a  //显示所有可用字体

            命令英文原意:change file ownership

 

            命令所在路径:/bin/chown

# /etc/sysconfig/i18n  //语言配置文件

            执行权限:所有用户

 

            chown  用户名  文件名    改变文件属主

# lsb_release -a  //查看系统发行版本,该命令适合所有的linux发行版本

            chown  user1  aa    user1必须存在

 

            chown  user1:user1  aa   改变属主同时改变属组

# lsmod  //显示所有已加载的模块

            useradd  用户名         添加用户

 

            passwd  用户名           设定用户密码       

# lspci | more //显示当前系统的硬件配置

六  帮助命令

 

        1   man  命令名          查看命令的帮助  

# lspci -v  //查看系统硬件配置详细信息

            命令名称:man

 

            命令英文原意:manual

# lspci -vv |more //查看系统硬件配置更为详细的信息

            命令所在路径:/usr/bin/man

 

            执行权限:所有用户

# lspci| grep Ethernet  //查看网卡信息

        2   命令  –help        查看命令的常见选项

 

七  查找命令

# lspci -tv  //列出所有PCI设备

        1   whereis  命令名      查找命令的命令,同时看到帮助文档位置

 

            命令名称:whereis   

# lsusb  //输出所有的usb设备

            命令所在路径:/usr/bin/whereis

 

            执行权限:所有用户

# ls /etc/rc3.d/S* |cut -c 15-  //显示运行3级别开启的服务

        2   find                搜索命令       

 

            命令名称:find

# ls -l /lib/modules/$(uname -r)/kernel/fs  //查看Linux支持哪些文件系统

            命令所在路径:/usr/bin/find

 

            执行权限:所有用户

# cat /proc/filesystems  //查看当前已加载到内存中支持的文件系统

            按照文件名查找

 

            find  查找位置   -name  文件名

# mount  //列出系统的所有分区

            find  /  -name  aabbcc           按照文件名查找

 

                     -iname                    按照文件名查找,不区分大小写

# mpstat  //多处理器使用率

            按照用户

 

            -user  用户名        按照属主用户名查找文件

# netstat -pan|grep 177  //查看177端口情况

            -group  组名    按照属组组名查找文件

 

            -nouser    找没有属主的文件

# netstat -nlap  //查询进程占用哪些端口

                /proc

 

                /sys

# ps aux  //显示所有进程状态和进程的基本信息

                /mnt/cdrom/    除了这三个目录 

 

            #find -name ak

# ps -e  //查看当前所有进程

             #find  -name install.log

 

             #find / -name ak

# ps -u root –N  //显示所有不是以root身份运行的进程

             #find -user root

 

             #find -user  zhangsan

# ps -U ow2003  //显示ow2003用户进程

            按照文件权限

 

            -name           按照文件名

# ps -ef |grep ow2003  //显示ow2003用户进程

            -type
类型       按照文件类型查找    f:普通    d:目录    l:链接

 

            find   /root  -perm  644    按照权限查找

# pstree  -h  //高亮显示当前正在执行的进程

        3   grep    “字符串”  文件名    查找符合条件的字串行。

 

            命令名称:grep

# pstree  -p  //以树状图方式显示进程及进程号

            命令所在路径:/bin/grep

 

            执行权限:所有用户

# pwd  //显示当前目录

            grep  -i  “root”  /etc/passwd

 

                 -v    反向选择

# rpm -qa redhat-release  //看操作系统版本(只适用RH系列)

                 -i     忽略大小写

 

        4   管道符         

# rpm -qa | xargs rpm -V 
//查看系统中所有被修改过的文件,这对新安装的系统比较有效

            命令1  |  命令2          命令1的执行结果,作为命令2的执行条件 
 

 

            cat  文件名  |  grep  “字串”          提取含有字符串的行

# rpm -qa vsftpd | xargs rpm -V 
//查看系统中某个rpm包中的文件是否被修改

            grep  “字符串”  文件名

 

            ls  -l  /etc  |  more                    分屏显示ls内容

# runlevel  //显示系统运行级别

八  压缩和解压缩    

 

            .gz    .bz2        linux可以识别的常见压缩格式  

# set  //显示所有本地定义的Shell变量

            .tar.gz.tar.bz2    常见的压缩和打包命令

 

            压缩同时打包

# stat -f filename  //显示文件系统状态

                tar  -zcvf  压缩文件名  源文件

 

                tar  -zcvf  aa.tar.gz  aa

# stat filename  //显示文件详细内容

                    -z  识别.gz格式

 

                    -c:压缩

# tac /etc/hosts 
//与cat相反,是将hosts内容从最后一行到第一行反向显示在屏幕上

                    -v:显示压缩过程

 

                    -f:指定压缩包名

# time ls  //查看执行ls命令所需的时间

                tar  -zxvf  压缩文件名       解压缩同时解打包

 

                tar  -jcvf  压缩文件名  源文件    压缩同时打包

# top n 2  //显示进程信息,刷新两次后退出

                tar  -jcvf  aa.tar.bz2  aa

 

                tar  -jxvf  aa.tar.bz2       解打包同时解压缩

# top -d 2 -n 3 -b >test.txt 
//将top的结果输出到文件test.txt中(每隔2秒,打印3次)

            查看不解包

 

                tar  -ztvf  aa.tar.gz        查看不解包

# top -bn1  //top命令列出所有进程

                tar  -jtvf  aa.tar.bz2

 

                    -t  只查看,不解压

# top -bn1 > 1.txt  //将进程输出到文件1.txt里

                tar -jxvf root.tar.bz2 -C
/tmp/指定解压缩位置

 

九  关闭和重启命令

# touch –help //显示touch帮助信息

            1)shutdown  -h  now        没有特殊情况,使用此命令

 

                -h  关机

# tty  //显示当前终端的名称

                -r  重启

 

            shutdown  -r  now

# uname -a  //显示全部信息

                    命令名称:shutdown

 

                    命令所在路径:/sbin/shutdown

64位系统输出如下信息:

                    执行权限:root  

 

            2)reboot

Linux server141.guodu.net 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT
2009 x86_64 x86_64 x86_64 GNU/Linux

                命令名称:reboot

 

                命令所在路径:/sbin/reboot

 

                执行权限:root        

 

十  挂载命令

32位系统输出如下信息:

        linux所有存储设备都必须挂载使用,包括硬盘

 

            命令名称:mount

Linux bank.guodu.net 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005
i686 i686 i386 GNU/Linux

            命令所在路径:/bin/mount

 

            执行权限:所有用户

 

            光盘挂载

 

            /dev/sda1   第一个scsi硬盘的第一分区

# uname -i  //显示硬件平台

            /dev/cdrom  光盘

 

            /dev/sr0        光盘       

# uname -m  //显示机器硬件名

            mount  -t  文件系统  设备描述文件  挂载点(已经存在空目录)

 

            mount  -t  iso9660  /dev/cdrom  /mnt/cdrom

# uname -n  //显示网络节点主机名

            光盘卸载

 

            umount  /dev/cdrom

# uname -o  //显示操作系统

            umount  /mnt/cdrom     重点强调:退出挂载目录,才能卸载   

 

            mount  -t  vfat  /dev/sdb1  /mnt/usb

# uname -p  //显示处理器类型

             mount /dev/sdb1  /mnt/usb

 

             mount /dev/sr0  /mnt/cdrom       

# uname -r  //显示内核版次

             umount /mnt/usb          

 

十一   网络命令

# uname -s  //显示内核名

        1   ping    测试网络连通性

 

                命令名称:ping

 

                命令所在路径:/bin/ping

 

                执行权限:所有用户

Linux内核版本信息:

            ping  -c  次数  ip       探测网络通畅

 

        2   ifconfig        查询本机网络信息

Redhat 9.0———————————————2.4.20-8

                命令名称:ifconfig

 

                命令英文原意:interface configure

RHEL 3 Update 8————————————2.4.21-47

                命令所在路径:/sbin/ifconfig

 

                执行权限:root

RHEL 4 ————————————————2.6.9-5

 

 

 

RHEL 4 Update 1————————————2.6.9-11

 

RHEL 4 Update 2————————————2.6.9-22

 

RHEL 4 Update 3————————————2.6.9-34

 

RHEL 4 Update 4————————————2.6.9-42

 

RHEL 4 Update 5————————————2.6.9-55

 

RHEL 4 Update 6————————————2.6.9-67

 

RHEL 4 Update 7————————————2.6.9-78

 

CENTOS 5/RHEL 5 ———————————2.6.18-8

 

CENTOS 5.1/RHEL 5 Update 1——————2.6.18-53

 

CENTOS 5.2/RHEL 5 Update 2——————2.6.18-92

 

CENTOS 5.3/RHEL 5 Update 3——————2.6.18-128

 

CENTOS 5.4/RHEL 5 Update 4——————2.6.18-164

 

CENTOS 5.5/RHEL 5 Update 5——————2.6.18-194

 

CENTOS 5.6/RHEL 5 Update 6——————2.6.18-238

 

 

 

# uptime  //查询系统自启动到现在总的运行时间及负载情况

 

# vmstat  //显示虚拟内存的使用信息

 

# vmstat  2  3  //显示虚拟内存每隔2s刷新一次信息,且刷新3次

 

# whatis [命令或数据]  //相当于man -f [命令或数据]

 

# yes  string  //设定重复显示的字符串

 

2、系统管理命令

 

# bc  //调用计算器(如果要输出小数,则要执行
scale=number,这个number就是小数点后的位数),输入quit退出bc

 

# chkconfig rlogin on  //开启rlogin服务

 

# chkconfig rsh on  //开启远端服务器rsh

 

# chsh  //shell设置

 

# chsh  -l  //列出当前所有可用的shell

 

# chsh -s /bin/bash  //改变当前的shell设置为/bin/bash

 

# /bin/sh  //切换shell

 

# exit  //退出shell

 

# clear  //清除终端屏幕

 

# cp /dev/cdrom mycd.iso & //后台运行制作镜像(加&)

 

# Ctrl + L  //清除终端屏幕

 

# dos2unix filedos.txt fileunix.txt 
//将一个文本文件的格式从MSDOS转换成UNIX

 

# unix2dos fileunix.txt filedos.txt 
//将一个文本文件的格式从UNIX转换成MSDOS

 

# recode ..HTML 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文件系统的完整性

 

# echo $shell  //显示当前用户的默认shell

 

# fg 2178 //将后台进程编号为2178调到前台

 

# ftp 10.52.19.189 &  //让ftp进程在后台执行

 

# init 0   //关闭系统(停止)

 

# telinit 0  //关闭系统(3)

 

# init 1   //单用户模式(root)

 

# init 2   //多用户文本模式(不能使用NFS)

 

# init 3   //多用户文本模式(能使用网络共享)

 

# init 5   //图形登录模式

 

# init 6   //重新启动系统

 

# shutdown -h now  //关闭系统(1)

 

# shutdown -h hours:minutes &   //按预定时间关闭系统

 

# shutdown -c   //取消按预定时间关闭系统

 

# shutdown -r now   //重启(1)

 

# reboot   //重启(2)

 

# logout   //注销

 

# jobs 查看后台运行的进程

 

# kill -9 2178
//强制终止ID为2178的进程(强制法可能导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效)

 

# mc  //对当前目录文件进行可视化管理

 

# ntsysv  //设置系统开机时启动的各种服务

 

# system-config-services  //图形界面的设置系统开机时启动的各种服务

 

# pgrep nslookup  //显示与指定字符串相关的进程

 

# pgrep -u root -l  //查找由root用户创建的进程

 

# pgrep -u root -l -v  //查找不是由root用户创建的进程

 

# ps -aux //显示当前运行的进程(静态)

 

# ps -ef  // 查看所有进程

 

# pstree //查看当前进程树

 

# pwck /etc/passwd  //检测passwd文件的正确性

 

# pwck /etc/shadow  //检测shadow文件的正确性

 

# rlogin -l ow2003 10.52.19.200  //以用户ow2003登录远端主机

 

# rmmod 未使用的模块名  //卸载unused模块

 

# rsh 10.52.19.189  //登录远端主机10.52.19.189

 

# rsh -l ow2003 10.52.19.189  //以用户ow2003登录远端主机

 

# runlevel //显示系统当前运行级别

 

# sleep 2m  //让系统休眠2分钟

 

# ssh 10.52.19.189  //登录远端主机10.52.19.189

 

# ssh -l ow2003 10.52.19.189  //以用户ow2003登录远端主机

 

# sudo -L  //显示sudo命令可以使用的参数及相关描述信息

 

# sudo -u ow2003 ls -l /home  //以用户ow2003身份执行命令

 

# suspend  //暂停正在使用的shell

 

# suspend -f  //强制暂停正在使用的shell

 

# symlinks -v /  //显示根目录下的所有符号链接

 

# testparm  //测试samba配置,回车后继续

 

# top //显示当前运行的进程(动态)

 

# top (Ctrl+Z) // 将当前top进程调到后台并停止

 

# vlock  //锁定虚拟终端

 

# watch -n 10 –difference=cumulative who  //以高亮字符显示累加差异

 

# watch -n 10 who  //每隔10秒执行一次who命令

 

# whereis  //找到指定文件的源、二进制文件和手册等各部分

 

# xkill  //鼠标点死掉的图形即可终止,如果想终止xkill ,按右键取消

 

 

 

bash 快捷键:

 

常用:

 

Ctrl+a  开始位置

 

Ctrl+e  最后位置

 

Ctrl+k  删除此处至末尾所有内容

 

Ctrl+u   删除此处至开始所有内容

 

Ctrl-C  杀死当前任务

 

Ctrl-L  刷新屏幕

 

Ctrl-shift-c  复制

 

Ctrl-shift-v  粘贴

 

tab  补全

 

 

 

terminal窗口操作:

 

Alt+1  切换到标签页1

 

Alt+2  切换到标签页2

 

Alt+3  切换到标签页3

 

Ctrl+PageDown  后一标签页

 

Ctrl+PageUp  前一标签页

 

Shift+Ctrl+N  新建窗口

 

Shift+Ctrl+PageDown  标签页右移

 

Shift+Ctrl+PageUp  标签页左移

 

Shift+Ctrl+Q  关闭终端

 

Shift+Ctrl+T  新建标签页

 

Shift+Ctrl+W  关闭标签页

 

 

 

terminal窗口中的复制/粘贴:

 

Shift+Ctrl+C  复制

 

Shift+Ctrl+V  粘贴

 

 

 

改变terminal窗口大小:

 

!!  执行上一条命令

 

!?string?  执行含有string字符串的最新命令

 

!num  执行命令历史列表的第num条命令

 

↑(Ctrl+p)  显示上一条命令

 

↓(Ctrl+n)  显示下一条命令

 

Alt+<  历史列表第一项

 

Alt+>  历史列表最后一项

 

Ctrl –   减小

 

Ctrl+Shift +  放大

 

Ctrl 0  原始大小

 

Ctrl+r 
然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl+r,搜索上一条匹配的命令

 

Ctrl+s  与Ctrl+r类似,只是正向检索

 

F11:全屏

 

history  显示命令历史列表

 

ls !$  执行命令ls,并以上一条命令的参数为其参数

 

 

 

光标移动:

 

Alt+b  光标向后移动一个单词

 

Alt+c  把当前词汇变成首字符大写

 

Alt+d   剪切光标之后的词

 

Alt+f  光标向前移动一个单词

 

Alt+l  把当前词转化为小写

 

Alt+t  交换当前与以前单词的位置

 

Alt+u  把当前词转化为大写

 

Ctrl+(x u)  按住Ctrl的同时再先后按x和u,撤销刚才的操作

 

Ctrl+a  光标移到行首。

 

Ctrl+b  光标左移一个字母

 

Ctrl+c  删除整行

 

Ctrl+d 
删除光标所在字母(注意与backspace以及Ctrl+h的区别,这两个是删除光标前的字符)

 

Ctrl+d  退出当前 Shell(当前行无字符时)

 

Ctrl+e  光标移到行尾。

 

Ctrl+f  光标右移。

 

Ctrl+h  删除光标前一个字符,相当于按 backspace 键。

 

Ctrl+k  清除光标后至行尾的内容。

 

Ctrl+l  清屏,相当于clear

 

Ctrl+q  重新启用挂起的shell

 

Ctrl+r 
搜索以前输入过的命令。将有提示,根据输入的关键字搜索bash的history

 

Ctrl+s  挂起当前shell

 

Ctrl+t  交换光标位置前的两个字符。

 

Ctrl+u  清除光标前至行首间的所有内容。

 

Ctrl+v 插入特殊字符,如Ctrl+v+Tab加入Tab字符键

 

Ctrl+w  清除光标所在处之前的一个词(以空格、标点等为分隔符)

 

Ctrl+y  粘贴或恢复上次的删除。

 

Ctrl+z  把当前进程转到后台运行,使用 fg 命令恢复。

 

Esc+b  移动到当前单词的开头

 

Esc+f  移动到当前单词的结尾

 

Esc+t  颠倒光标所在处及其相邻单词的位置

 

Esc+w  删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符)

 

 

 

3、系统维护命令

 

# alias  //列出已设置的别名

 

# alias rm ‘rm -i’  //设置别名

 

# authconfig  //设置系统的认证信息

 

# bind -l  //显示按键组合的内容

 

# bind -q abort  //查询abort上绑定的键

 

 

 

# chattr +i filename  //禁止删除

 

# chattr -i filename  //取消禁止

 

# chattr +i /etc/fstab  //禁止修改fstab文件

 

# chattr -i /etc/fstab  //取消禁止修改fstab文件

 

# chmod 4755 test 
//使test文件具有SUID权限(4为SUID)。SUID对目录是无效的

 

# chmod 2755 test 
//使test文件具有SGID权限(2为SGID)。SGID可用于文件或目录

 

# chmod 1755 /test  //使/test目录具有SBIT权限(1为Sticky
bit即SBIT)。SBIT只对当前目录有效

 

# chmod 7666 test 
//test文件拥有者无执行权限,设置后的大写S、T表示“空的”,即没有执行权限

 

# lsattr -a  test //显示文件test的隐藏属性

 

# lsattr -a  //显示当前目录下所有的目录和文件,包括隐藏文件或目录

 

# lsattr -R  //递归显示指定目录及子目录的内容

 

# lsattr  //显示当前目录下的文件属性

 

# chkconfig  –list  //列出chkconfig所知道的所有服务

 

# chkconfig telnet off  //关闭telnet服务

 

# chkconfig telnet on  //开启telnet服务

 

# cat /etc/sysconfig/clock  //查看所属时区和是否使用UTC时间

 

 

# date -s 2007-08-03  //只修改日期

 

# date -s “2007-08-03 14:15:00”  //同时修改日期和时间,加双引号

 

# date -s 02/16/2012  //修改日期(按月日年格式)

 

# date -s 13:56:00  //修改时间(按时分秒格式)

 

# clock -r  //查询BIOS时间

 

# cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime  //修改时区

 

修改/etc/sysconfig/clock文件的内容为:

 

ZONE=”Asia/Shanghai”

 

UTC=false

 

ARC=false

 

# hwclock –w  //同步BIOS时间

 

# hwclock -set -date=”07/07/06 10:19:00”  //设置硬件时间(月/日/年
时:分:秒)

 

# clock -set -date=”07/07/06 10:19:00”    //设置硬件时间(月/日/年
时:分:秒)

 

# hwclock -hctosys 
//硬件时钟与系统时钟同步(hc代表硬件时间,sys代表系统时间)

 

# clock -hctosys 
//硬件时钟与系统时钟同步(hc代表硬件时间,sys代表系统时间)

 

# hwclock -systohc  //系统时钟与硬件时钟同步

 

# clock -systohc  //系统时钟与硬件时钟同步

 

# tzselect  //时区设置

 

# 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包提供

 

# declare BASH=/bin/csh  //修改变量BASH的值为/bin/csh

 

# declare -p  //显示shell的所有变量及值

 

# declare -x  //显示所有环境变量的值

 

# dircolors -b  //显示Bourne Shell颜色代码设置

 

# dircolors -c  //显示C Shell颜色代码设置

 

# dircolors -p  //显示ls命令默认颜色值

 

# enable -a  //显示shell的所有内置指令

 

# enable alias  //加载内部命令alias

 

# enable -n alias  //关闭alias

 

# eval pwd;df -h;ls  //连接多个命令pwd,df -h和ls

 

# export MYENVIRON  //自定义一个环境变量MYENVIRON

 

# export MYNAME= ” Wang Xuri”  //定义环境变量并赋值

 

# export -p  //列出当前的环境变量值

 

# unset MYNAME  //清除环境变量MYNAME

(注:以上命令使用的shell是bash)

 

 

 

# fdisk /mbr  //删除GRUB

 

# hostid  //显示当前主机的数字标识

 

# ldd /bin/ls  //显示/bin/ls命令所使用的共享函数库

 

# ldd -v /bin/ls  //以冗余模式显示的/bin/ls所使用的共享函数库

 

# losetup /dev/loop0  //显示设备/dev/loop0的状态

 

# depmod  //分析可载入模块的相依性

 

# insmod  //载入模块

 

# lsmod  //显示所有已加载的模块

 

# lsmod -v usb-uhci  //使用insmod命令安装模块”usb-uhci”

 

# modinfo  //显示kernel模块的信息

 

# modprobe  //自动处理可载入模块

 

# modprobe -c  //显示当前自动处理可载入模块的默认配置

 

# rmmod  //删除模块

 

# modprobe -v 8139too  //安装网卡8139too

 

# mouseconfig –device psaux  //指定鼠标端口为PS/2,鼠标为psaux

 

# mouseconfig –noui genericusb  //以命令形式指定鼠标类型为genericusb

 

# mouseconfig –text  //在图形界面方式下配置鼠标

 

# resize -c  //使用C shell表示当前终端窗口大小

 

# resize -s 30 100  //设置虚拟终端大小,高为30列,长为100个字符

 

# resize -u  //使用Bourne shell表示当前终端窗口大小

 

# rpm –checksig package.rpm   //确认一个rpm包的完整性

 

# rpm -e package-name //卸载具体的软件包

 

# rpm -ev RealPlayer  //卸载软件RealPlay

 

# rpm -hiv RealPlayer10GOLD.rpm  //安装RealPlayer10GOLD.rpm包

 

# rpm -i mplay.rpm   //安装mplay软件包(不显示信息)

 

# rpm -ivh –force mplay.rpm    //强制安装mplay软件包(显示信息)

 

# rpm -ivh package-name //安装软件包并显示过程

 

# rpm -oldpackge mplay.rpm  //降级mplay软件包

 

# rpm -q http //查询指定的包http是否安装

 

# rpm -q installed-package-name //查看是否安装

 

# rpm -q telnet-server //查看telnet服务器包

 

# rpm -qa //查看系统中已安装的所有rpm包(不分屏)

 

# rpm -qa|grep ftp //查询指定RPM

 

# rpm -qa|less //查询已安装RPM(分屏)

 

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图