Linux常用命令说明(记录自己Linux命令使用情况,后续会持续更新)

首次记录时间——20170602

感觉自己Linux命令使用掌握的情况非常差,今天先记录当前会的几个。

 

命令的格式

  命令 [-选项] [目标参数]

  例:ls -la /etc

  说明:
  (1)个别命令使用不遵循此格式

  (2)当有多个选项时可以写在一起

  (3)简化选项和完整选项的区别 -a等价于--all

 

1#su(switch user) 切换用户

 

  切换用户的两种方式 su [user] 和 su - [user] 的区别:

  su [user]切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境。

eg.

  [root@rac1 ~]# pwd  --当前目录
  /root
  [root@rac1 ~]# su oracle --使用su [user]
  [oracle@rac1 root]$ pwd  --当前目录没有改变,还是之前的用户目录
  /root

  [oracle@rac1 root]$ su - oracle --使用su - [user]
  Password: 
  [oracle@rac1 ~]$ pwd   --当前目录变为当前用户的家目录
  /home/oracle
  [oracle@rac1 ~]$

所以建议大家在切换用户时,尽量用su - [user],否则可能会出现环境变量不对的问题。

 

 

2#cd(change directory) 切换工作目录(或者叫修改当前目录)

eg.

  cd /home/my_file 通过绝对路劲跳转到my_file路径下,对于当前路径没有要求

  cd my_file 通过相对路径跳转到my_file文件夹下,如果my_file在home路径下,则当前路径只能在home目录下

  cd .. 跳转到当前目录的上一级目录

  cd ~ 跳转进入用户在该系统的home目录,例如xz用户,则进入/root/xz目录

  cd / 进入根目录

注:

  .. 或者../   -> 表示上一层目录

  .或者./    -> 表示当前目录

  ~或者~/   -> 表示你的/home/用户名目录

 

3#pwd 打印当前工作目录

eg.

  [mobo_account_test@Web1 ~]$ cd ~
  [mobo_account_test@Web1 ~]$ pwd
  /home/mobo_account_test

 

4#ls(list) 查看当前目录下的文件和文件夹

  ls –a  (a-all)可以查看隐藏文件,使用此命令后看见前面带.的即为隐藏文件(如: .my_personal_file)

  

  ls –d  (d-directory)查看目录属性 

[root@localhost ~]# ls -ld
dr-xr-x---. 4 root root 164 Feb 6 07:05 .

  dr-xr-x--- 分为第一位,第2-4位,第5-7位,第8-10位

  其中dr-xr-x---(其中r:表示读的权限 w:表示写的权限 x:表示执行的权限 第1位 d表示文件目录 第2到第4位r-x表示所有者的权限(所有者拥有读和执行的权限) 第5位到第7位r-x表示所属组的权限(所属组拥有读和执行的权限) 第8位到第10位---表示其他人的权限(其他人没有任何权限,没有读、写和执行的权限)  )

  注:第一位常见的有三种类型 -:表示文件 d:表示目录 l:表示软链接

  dr-xr-x---. 4 root root 164 Feb 6 07:05 .中第一个root表示所有者,第二个root表示所属组,164表示文件的大小 单位为字节,Feb 6 07:05表示最后修改时间  

  ls –l  (l-long)查看详细信息

  ls –lh或(ls –l)(ls -lih)  (l-long,h-human人性化)可以查看文件详情,读写权限,文件大小,创建时间(前者可读性更好)

  

  ls -lh -a (ls -lha选项可以写在一起)查看文件详情,包括影藏文件夹

  查看某个隐藏文件夹 需要在文件前面加上”.”,如跳转到隐藏文件夹my_file下cd /.my_file

  ls -i 可以查看i节点(i节点:每一个文件的唯一标识,相当于人的身份证)

  ls -t 按时间的降序排列所有文件和文件夹

  ls -lh -t查看详细信息后的排序(同上)

  ls - t | tac 升序

  ls -lh -t | tac升序

说明:ll 是 ls - l的缩写操作,故,同样有下面操作

  ll -t 降序

  ll -a查看所有文件的详细信息,包括隐藏文件

  ls m* 查找m开头的文件

  ls m* | more 按空白键才继续往上卷 只能向下看,不能回看

 

5#less 打开文本文件

对比more 分页显示一个文件并且可以回头 /usr/bin

eg.

  less holloword.txt

  less config.xml

  在上面打开文本文件后,查看文本的一些快捷键:

    ↑↓ 换行一行一行的切换文本查看

    ctrl + f 查看下一页

    ctrl + b 查看上一页

    shift + g 查看文本文件最末

    shift + G(大写的G) 从文本文件最末跳转开始

    q 退出查看

  在less中打开文件后,输入:/zhangsan 表示在文本中向下查找“zhangsan” 有内容时,按【n】从最末向同向(向下)查找;按【N】向反方向(向上)查找 

  在less中打开文件后,输入:?zhangsan 表示在文本中向上查找“zhangsan” 有内容时,按【n】从最末向同向(向上)查找;按【N】向反方向(向下)查找 

 

5#more  打开文本文件

分页显示一个文件或任何输出结果,只能向下查看 /bin

  使用空格键 向下翻一屏

  参考:https://www.cnblogs.com/aijianshi/p/5750911.html

  

 

6#vi 编辑文本文件

  vi helloword.txt打开helloword.txt文本文件

  输入i 进入编辑状态

  输入esc(即键盘左上角的退出键)退出编辑

    在esc退出编辑后:

      ctrl + u 撤销,一步一步的撤销(相当于windows系统的 ctrl + z)

      ctrl + r 与 ctrl + u 相反(ctrl + r 相当于windows系统的 ctrl + y)

      输入:wq退出编辑并且保存

      : q!退出不保存

 

7#ctrl + c 强制退出当前运行程序

 

8#free 

eg.

  [mobo_account_test@Web1 logs]$ free

  total used free shared buffers cached
Mem: 16426344 16168804  257540 0 319240 1334512
-/+ buffers/cache:   14515052 1911292      
Swap: 18481144 12818036 5663108      

 

 

 

 

  关于free每行每列详细说明查考博客:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html

 

9#sh 运行当前可以执行文件

eg.

  sh restart.sh 运行restart.sh文件

后台运行常和 nohub &一起使用,eg.  nohub sh restart.sh &

说明:

nohup

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

&

用途:在后台运行

一般两个一起用

nohup command &

 

10#date 查看当前系统时间

 eg.

  [mobo_account_test@Web1 logs]$ date
  2017年 06月 02日 星期五 16:53:54 CST

 

11#who am i 与 whoami 区别

eg.

  who am i 显示的是实际用户ID即用户登陆的时候的用户ID

  whoami 显示的是有效用户ID.

  比如:su – root 切换用户操作后,who am I显示的还是原用户,而whoami显示为切换后用户

  [mobo_account_test@Web1 logs]$ su - mobo_account
  口令:
  [mobo_account@Web1 ~]$ who am i
  mobo_account_test pts/5 2017-06-02 10:18 (192.168.31.41)
  [mobo_account@Web1 ~]$ whoami
  mobo_account

 

  [mobo_account@Web1 ~]$ who am i 
  mobo_account_test pts/5 2017-06-02 10:18 (192.168.31.41)

  说明:

  第一个参数:用户名

  第二个参数:使用的终端机

  第三个参数:登录时间

  第四个参数:登录电脑的IP地址或者从何处登录

 

12#who 执行这项指令可得知目前有那些用户登入系统,单独执行who指令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器

  [mobo_account_dev@Web1 ~]$ who

  mobo_account pts/1        2016-08-15 09:46 (192.168.32.14)

  mobo_account pts/2        2016-08-15 09:48 (192.168.32.14)

  mobo_account pts/3        2016-08-16 09:28 (192.168.32.58)

  mobo_account pts/4        2016-08-16 09:55 (192.168.32.44)

  mobo_account_dev pts/6        2016-08-16 10:09 (192.168.31.110)

  moboacc_uat pts/7        2016-08-16 10:19 (192.168.31.189)

  mobo_account_dev pts/9        2016-08-16 10:35 (192.168.31.44)

 

13#清屏命令clearreset

  在windows 的 DOS 操作界面里面,清屏的命令是 cls

  clear 这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。一般都会用这个命令。

  reset 这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。

  另外介绍一个用别名来使用清屏命令的方法,如下:

  [root@localhost ~]$ alias cls='clear'

  [root@localhost ~]$ cls

  执行以上命令后,以后你就可以直接输入 cls 命令来实现和 clear 一样的清屏命令了

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线-------------------------------------------------------------------------------------------------

第二次记录时间——20170605

14#grep 文本查找命令【TODO 待扩展】

eg.

  [mobo_account_dev@Web1 logs]$ grep -i 'transmitHandler:35' mobaopay_bank.txt

  13:25:30,314  INFO TransmitHandler:35 : sessionID 147132513031204597

  主要参数

    [options]主要参数:
      -c:只输出匹配行的计数(总共满足匹配的行数)。
      -i:不区分大小写

      -h:查询多文件时不显示文件名。

      -l:查询多文件时只输出包含匹配字符的文件名。

      -n:显示匹配行及行号。

      -s:不显示不存在或无匹配文本的错误信息。

      -v:显示不包含匹配文本的所有行。

    pattern正则表达式主要参数:
           \: 忽略正则表达式中特殊字符的原有含义。
           ^:匹配正则表达式的开始行。
           $: 匹配正则表达式的结束行。
           \<:从匹配正则表达 式的行开始。
           \>:到匹配正则表达式的行结束。
           [ ]:单个字符,如[A]即A符合要求 。
           [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
           .:所有的单个字符。
           * :有字符,长度可以为0。

 

问题:

weblogic.management.ManagementException: Unable to obtain lock on /home/mobo_account/bea/user_projects/domains/mobaopay_bank_domain/servers/AdminServer/tmp/AdminServer.lok. Server may already be running
at weblogic.management.internal.ServerLocks.getServerLock(ServerLocks.java:159)
at weblogic.management.internal.ServerLocks.getServerLock(ServerLocks.java:58)
at weblogic.management.internal.DomainDirectoryService.start(DomainDirectoryService.java:73)
at weblogic.t3.srvr.ServerServicesManager.startService(ServerServicesManager.java:459)
at weblogic.t3.srvr.ServerServicesManager.startInStandbyState(ServerServicesManager.java:164)
at weblogic.t3.srvr.T3Srvr.initializeStandby(T3Srvr.java:711)
at weblogic.t3.srvr.T3Srvr.startup(T3Srvr.java:482)
at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:440)
at weblogic.Server.main(Server.java:67)

解决办法:是因为m1.lok文件被锁住,需要释放命令如下

[weblogic@cfnltest bin]$ fuser -u /home/mobo_account/bea/user_projects/domains/mobaopay_bank_domain/servers/AdminServer/tmp/AdminServer.lok
/home/weblogic/Oracle/Middleware/user_projects/domains/domain/servers/m1/tmp/m1.lok: 26974(weblogic)

-bash: fuser: command not found(注:说明环境变量中没有启用fuser命令)
[mobo_account@Web1 mobaopay_bank_domain]$ whereis fuser(注:通过whereis fuser查看fuser可执行文件的位置)
fuser: /sbin/fuser /usr/share/man/man1p/fuser.1p.gz /usr/share/man/man1/fuser.1.gz
[mobo_account@Web1 mobaopay_bank_domain]$ /sbin/fuser -u /home/mobo_account/bea/user_projects/domains/mobaopay_bank_domain/servers/AdminServer/tmp/AdminServer.lok
/home/mobo_account/bea/user_projects/domains/mobaopay_bank_domain/servers/AdminServer/tmp/AdminServer.lok: 9267(mobo_account)( 9267表示进程ID)
[mobo_account@Web1 mobaopay_bank_domain]$ kill -9 9267
[mobo_account@Web1 mobaopay_bank_domain]$ /sbin/fuser -u /home/mobo_account/bea/user_projects/domains/mobaopay_bank_domain/servers/AdminServer/tmp/AdminServer.lok(再次查看进程ID已经被杀死)
[mobo_account@Web1 mobaopay_bank_domain]$ sh restart.sh(重启程序)

----今天要写sort/tail

 

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线-------------------------------------------------------------------------------------------------

2020年3月6日记录

目录处理命令

mkdir (make directories) 创建目录文件夹

mkdir /tmp/xiaodianying

如果想在不存的目录下面创建目录,需要加上-p(可以递归创建)

mkdir -p /tmp/japan/mosaic/bodo

可以同时创建多个目录

mkdir /tmp/japan/cangjingkong /tmp/japan/xiaoze /tmp/japan/longze

 

cd 切换当前工作目录

pwd查看当前目录的绝对路径

. 表示当前目录

.. 表示当前目录的上一级目录

cd ..返回上一级命令

 

rmdir (remove empty directories)删除空目录 

执行权限:所有用户

rmdir /tmp/japan/mosaic/bodo

 

cp (cope)复制文件或者目录

语法:

  cp -rp [原文件或者目录] [目标目录]

       -r 复制目录

      -p 保留文件属性

例:

cp /root/anaconda-ks.cfg /tmp/xiaodianying/(复制文件不需要-r)

cp -r /tmp/japan/cangjingkong/ /tmp/xiaodianying/(复制目录需要使用到-r)

可以同时复制多个文件或者目录

[root@localhost cangjingkong]# cp -r /tmp/japan/xiaoze/ /tmp/japan/longze/ /tmp/xiaodianying/
[root@localhost cangjingkong]# ls /tmp/xiaodianying/
anaconda-ks.cfg  cangjingkong  longze  xiaoze

 

在不使用-p的时候复制文件或者目录,新复制出来的文件或者目录它的最后修改时间会变化,如果不希望最后修改时间变化,需要加上-p

在复制目录或者文件的同时可以进行更名操作

[root@localhost cangjingkong]# cp -r /tmp/japan/xiaoze/ /tmp/japan/xiaozemaliya
[root@localhost cangjingkong]# cd /tmp/japan/
[root@localhost japan]# ls
cangjingkong  longze  mosaic  xiaoze  xiaozemaliya

 

 

mv (move)剪切文件、改名

语法:

mv [原文件或者目录] [目标目录]

执行权限:所有用户

[root@localhost japan]# ls
cangjingkong  longze  mosaic  xiaoze  xiaozemaliya
[root@localhost japan]# mv xiaozemaliya xiaoze 
[root@localhost japan]# ls
cangjingkong  longze  mosaic  xiaoze

 

剪切的同时进行改名

[root@localhost japan]# mv xiaoze/xiaozemaliya/ /tmp/japan/xiaozenvshen
[root@localhost japan]# ls 
cangjingkong  longze  mosaic  xiaoze  xiaozenvshen

 

当前目录下改名

[root@localhost japan]# mv cangjingkong/ cangjinglaoshi
[root@localhost japan]# ls
cangjinglaoshi  longze  mosaic  xiaoze  xiaozenvshen

 

 

rm (remove)删除文件

语法:

rm --rf [文件或者目录]

     -r[删除目录]

    -f[强制执行]

执行权限:所有用户 

删除文件

rm 

[root@localhost japan]# ls cangjinglaoshi/
beiyong.cfg
[root@localhost japan]# cp /root/anaconda-ks.cfg /tmp/japan/cangjinglaoshi/beiyong1.cfg
[root@localhost japan]# cp /root/anaconda-ks.cfg /tmp/japan/cangjinglaoshi/beiyong2.cfg
[root@localhost japan]# cp /root/anaconda-ks.cfg /tmp/japan/cangjinglaoshi/beiyong3.cfg
[root@localhost japan]# ls cangjinglaoshi/
beiyong1.cfg  beiyong2.cfg  beiyong3.cfg  beiyong.cfg
[root@localhost japan]# rm cangjinglaoshi/beiyong.cfg 
rm: remove regular file ‘cangjinglaoshi/beiyong.cfg’? y
[root@localhost japan]# ls
cangjinglaoshi  longze  mosaic  xiaoze  xiaozenvshen
[root@localhost japan]# ls cangjinglaoshi/
beiyong1.cfg  beiyong2.cfg  beiyong3.cfg

 

强制删除,没有提示

[root@localhost japan]# rm -f cangjinglaoshi/beiyong1.cfg 
[root@localhost japan]# ls cangjinglaoshi/
beiyong2.cfg  beiyong3.cfg

 强制删除多个文件

[root@localhost longze]# ls
wuma  youma
[root@localhost longze]# rm -f wuma youma

 

删除目录使用

rm -rf [目录名称]

如果不使用-f,那么目录下的子目录和文件会一个一个询问是否删除,如果有几百个或者更多的话就悲催了。

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线-------------------------------------------------------------------------------------------------

2020年3月7日

文件处理命令

touch 创建空文件

语法:

touch [文件名]

如果不加路径,那么该文件放在当前目录下,加上路径则放到对应路径下

对比创建空目录 mkdir [目录名]

同时创建多个空文件

[root@localhost tmp]# touch japan/longze/youma japan/longze/wuma
[root@localhost tmp]# ls japan/longze/
wuma  youma

 

 如果Linux系统需要创建空格的文件或者文件夹,需要将带有空格的文件夹名使用双引号“”,建议不创建带有空格的文件或者文件名,后续各种操作都需要加上双引号“”

 

cat 显示文件内容

语法:

cat [文件名]

cat -n 显示文件内容,带有行号 

[root@localhost tmp]# cat -n japan/cangjinglaoshi/beiyong2.cfg 
     1  #version=DEVEL
     2  # System authorization information
     3  auth --enableshadow --passalgo=sha512
     4  # Use CDROM installation media
     5  cdrom
     6  # Use graphical install
     7  graphical
     8  # Run the Setup Agent on first boot

 

 如果文件比较长的话cat就不太适合使用,可以使用more

cat修改文本内容

命令:cat > readme.tex << __endl 回车

然后开始输入内容,输入完成后,回车再最后一行输入:__endl 回车

 

tac (cat反正写)显示文件内容(反向列示:倒着显示,cat显示的最后一行、倒数第二行,tac会显示在第一行和第二行,以此类推)

语法:

tac [文件名]

 

more 分页显示文件内容(只能向下换行翻页查看,不能往回换行翻页查看)

语法:

more [文件名]

查询出结果后,按【空格或f】键翻页、【Enter】键换行、【q或Q】键退出

 

less 分页显示文件内容(可向上翻页 对比more)

语法:

less [文件名]

查询出结果后,按【空格或f】键翻页、【Enter】键换行、【q或Q】键退出,【↑箭头】一行一行向上浏览,【pageup】一页一页向上浏览

此外还支持搜索功能,在查看浏览状态内,按下【/】按钮,输入需要搜索的内容,敲击回车即可,如果有很多行都包含输入内容,按【n(next)】键接着往下查找

 

head 显示文件的前面几行 -n指定显示行数

语法:

head [文件名] 默认显示前10行

head -n 20 [文件名] 显示【文件名】文件前20行

[root@localhost tmp]# head -n 5 japan/cangjinglaoshi/beiyong2.cfg 
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom

 

 

tail 显示文件后面几行内容 -n 指定行数 -f动态显示文件末尾内容(监控日志的时候很方便)

语法:

tail [文件名] 默认显示最后10行

tail -n 20 [文件名]

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

链接命令

ln 生成链接文件(-s生成软链接文件 没有-s生成硬链接文件)

语法:

ln  [原文件] [目标文件]——(生成硬链接文件)

ln -s [原文件] [目标文件]——(生成软链接文件)

软链接文件 类似于Windows的快捷方式

[root@localhost tmp]# ln -s japan/cangjinglaoshi/beiyong2.cfg japan/xiaoze/beiyong.soft
[root@localhost tmp]# ls japan/xiaoze/beiyong.soft 
japan/xiaoze/beiyong.soft
[root@localhost tmp]# ls -l japan/xiaoze/beiyong.soft 
lrwxrwxrwx. 1 root root 33 Mar  7 19:31 japan/xiaoze/beiyong.soft -> japan/cangjinglaoshi/beiyong2.cfg

 

lrwxrwxrwx:l软链接文件 所有者,所属组,其他人对该文件都拥有所有权限,但是软链接的权限并不是真实权限,实际权限需要看实际地址的权限
japan/xiaoze/beiyong.soft(软链接) -> japan/cangjinglaoshi/beiyong2.cfg(实际执行地址)
33B 软链接很小,相当于Windows的快捷方式

硬链接(有点类似cp -p),但是硬链接可以同步更新
[root@localhost tmp]# ln japan/cangjinglaoshi/beiyong2.cfg japan/xiaoze/beiyong.hard
[root@localhost tmp]# ls -l japan/xiaoze/beiyong.hard 
-rw-------. 2 root root 1317 Mar  7 05:10 japan/xiaoze/beiyong.hard

 

(1)软链接和硬链接的区别,如果删除了原文件,软链接则不能使用,但是硬链接还可以使用

(2)硬链接不能跨分区,软链接可以

(3)硬链接不能针对目录使用,软链接可以  

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

权限管理命令

权限管理命令chmod

其他权限管理命令

chmod (change the permissions mode of a file)修改文件或者目录权限(一个文件的权限只有两个人可以更改,一个是文件的所有人,一个是root用户)

语法:

chmod [{ugoa}{+-=}{rwx}] [文件或者目录](方式一) u:user所有者 g:group所属组 o:other其他人 a:all全部使用者 +:增加权限 -:减少权限 =:不管你以前是什么权限,现在只能是=后面的权限 r:读 w:写 x:执行

chmod [mode=42] [文件或者目录](方式二) 注:r:4 w:2 x:1 rwx:7(4+2+1) rw-:6(4+2) r--:4          rwx:2的平方+2的1次方+2的0次方  rwxrw-r--764

-R 递归修改

方式一

[root@localhost japan]# ls -l longze/    
total 0
-rw-r--r--. 1 root root 0 Mar  7 17:33 wuma
-rw-r--r--. 1 root root 0 Mar  7 17:33 youma
[root@localhost japan]# chmod u+x longze/wuma
[root@localhost japan]# ls -l longze/wuma    
-rwxr--r--. 1 root root 0 Mar  7 17:33 longze/wuma

 

[root@localhost japan]# chmod g+x,o-r longze/youma 
[root@localhost japan]# ls -l longze/             
total 0
-rwxr--r--. 1 root root 0 Mar  7 17:33 wuma
-rw-r-x---. 1 root root 0 Mar  7 17:33 youma

 

[root@localhost japan]# chmod g=rwx longze/youma  
[root@localhost japan]# ls -l longze/           
total 0
-rwxr--r--. 1 root root 0 Mar  7 17:33 wuma
-rw-rwx---. 1 root root 0 Mar  7 17:33 youma

 

方式二

[root@localhost cangjinglaoshi]# ls -l
total 8
-rw-------. 2 root root 1317 Mar  7 05:10 beiyong2.cfg
-rw-------. 1 root root 1317 Mar  7 05:11 beiyong3.cfg
[root@localhost cangjinglaoshi]# chmod 760 beiyong2.cfg 
[root@localhost cangjinglaoshi]# ls -l
total 8
-rwxrw----. 2 root root 1317 Mar  7 05:10 beiyong2.cfg
-rw-------. 1 root root 1317 Mar  7 05:11 beiyong3.cfg

 

上面的total 8表示当前目录占用空间,8单位为KB,网上说明链接 https://blog.csdn.net/apache0554/article/details/44813485

使用ls -lh查看

[root@localhost cangjinglaoshi]# ls -lh
total 8.0K
-rwxrw----. 2 root root 1.3K Mar  7 05:10 beiyong2.cfg
-rw-------. 1 root root 1.3K Mar  7 05:11 beiyong3.cfg

 

chmod -R 可以将目录下所有的子目录和文件都修改权限

[root@localhost japan]# ls -ld cangjinglaoshi/
drwxr-xr-x. 2 root root 46 Mar  7 05:14 cangjinglaoshi/
[root@localhost japan]# ls -ld cangjinglaoshi/*
-rwxrw----. 2 root root 1317 Mar  7 05:10 cangjinglaoshi/beiyong2.cfg
-rw-------. 1 root root 1317 Mar  7 05:11 cangjinglaoshi/beiyong3.cfg
[root@localhost japan]# chmod -R 764 cangjinglaoshi/
[root@localhost japan]# ls -ld cangjinglaoshi/*     
-rwxrw-r--. 2 root root 1317 Mar  7 05:10 cangjinglaoshi/beiyong2.cfg
-rwxrw-r--. 1 root root 1317 Mar  7 05:11 cangjinglaoshi/beiyong3.cfg

 

 2020年3月9日

 其他权限管理命令

chown (change file owership)改变文件或者目录的所有者

语法:

chown [用户] [文件或者目录]

注:改变文件或者目录,只有root用户可以,所有者自己如果不是root用户,那么他不能改变文件的所有者

[root@localhost xiaoming]# ls -l 
total 0
-rwxrwxrwx. 1 xiaoming xiaoming 0 Mar  9 19:34 xiaomingfile
[root@localhost xiaoming]# chown root xiaomingfile 
[root@localhost xiaoming]# ls -l 
total 0
-rwxrwxrwx. 1 root xiaoming 0 Mar  9 19:34 xiaomingfile

 

 

chgrp (change file group ownership)改变文件或者目录的所属组

语法:

chgrp [用户组] [文件或者目录]

[root@localhost xiaoming]# groupadd rootgroup
[root@localhost xiaoming]# chgrp rootgroup xiaomingfile 
[root@localhost xiaoming]# ls -l xiaomingfile 
-rwxrwxrwx. 1 root rootgroup 0 Mar  9 19:34 xiaomingfile

 

 

umask (the user file-creation mask)显示、设置文件的缺省权限

语法:

umask [-S] (-S以rwd形式显示新建文件缺省权限)

[root@localhost xiaoming]# umask -S
u=rwx,g=rx,o=rx
[root@localhost xiaoming]# mkdir mernv2
[root@localhost xiaoming]# ls -l       
total 0
-rw-r--r--. 1 root root      0 Mar  9 19:53 liuyifei
drwxr-xr-x. 2 root root      6 Mar  9 19:53 mernv
drwxr-xr-x. 2 root root      6 Mar  9 20:00 mernv2
-rwxrwxrwx. 1 root rootgroup 0 Mar  9 19:34 xiaomingfil

 

注:缺省创建的文件(touch),不具有可执行的权限

[root@localhost xiaoming]# umask
0022

 

0022:

0特殊权限

022三种用户的分类:所有者,所属组,其他人 --- -w- -w-

  777 rwx rwx rwx

  022  ---  -w-  -w-

= -------------------------逻辑与-----------

  755  rwx r-x r-x(目录)

  744  rw- r-- r--(文件)

 

如果想得到 rwx --- ---(目录) rw- --- ---(文件)这样的权限,该怎么弄了,把上面的公式反推,则可由得到077,下一步修改默认创建参考值

修改默认创建的参考值

[root@localhost xiaoming]# umask 077
[root@localhost xiaoming]# umask
0077
[root@localhost xiaoming]# mkdir xiaofang
[root@localhost xiaoming]# touch xiaofangfile
[root@localhost xiaoming]# ls -l 
total 0
-rw-r--r--. 1 root root      0 Mar  9 20:01 fanbingbing
-rw-r--r--. 1 root root      0 Mar  9 19:53 liuyifei
drwxr-xr-x. 2 root root      6 Mar  9 19:53 mernv
drwxr-xr-x. 2 root root      6 Mar  9 20:00 mernv2
drwx------. 2 root root      6 Mar  9 20:13 xiaofang
-rw-------. 1 root root      0 Mar  9 20:13 xiaofangfile
-rwxrwxrwx. 1 root rootgroup 0 Mar  9 19:34 xiaomingfile

 

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

文件搜索命令

文件搜索命令(会占用大量资源)

find  文件搜索

语法

find [搜索范围] [匹配条件]

-name 根据文件名搜索

[root@localhost xiaoming]# find /etc -name init  
/etc/selinux/targeted/active/modules/100/init
/etc/sysconfig/init

 

模糊搜索

[root@localhost xiaoming]# find /etc/ -name *init
/etc/selinux/targeted/active/modules/100/init
/etc/sysconfig/init
/etc/security/namespace.init
/etc/gdbinit
[root@localhost xiaoming]# find /etc/ -name init???
/etc/inittab

 

-iname 不区分大小写文件名搜索

-size 根据文件大小查找(+n:大于n -n:小于n n:等于n) n的单位是数据库 1数据块=512字节=0.5KB  100MB = 102400KB=204800块

例:查找大于100MB的文件

[root@localhost xiaoming]# find / -size +204800
/proc/kcore
find: ‘/proc/1809/task/1809/fd/6’: No such file or directory
find: ‘/proc/1809/task/1809/fdinfo/6’: No such file or directory
find: ‘/proc/1809/fd/5’: No such file or directory
find: ‘/proc/1809/fdinfo/5’: No such file or directory
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/usr/lib/locale/locale-archive

 

-user 根据所有者来查找

[root@localhost xiaoming]# find /home/xiaoming/ -user xiaoming 
/home/xiaoming/
/home/xiaoming/.bash_logout
/home/xiaoming/.bash_profile
/home/xiaoming/.bashrc
/home/xiaoming/.cache
/home/xiaoming/.cache/abrt
/home/xiaoming/.cache/abrt/lastnotification
/home/xiaoming/.config
/home/xiaoming/.config/abrt
/home/xiaoming/.bash_history

 

-group 根据所属组来查找(例子同上类型)

根据时间属性来查找文件

-amin (access)根据访问时间

-cmin (change)文件修改时间(修改文件属性—— ls -l能看到的文件属性)

-mmin (modify)文件修改时间(修改文件内容)

 find /etc -amin -5  -小于多少分钟 +大于多少分钟 =等于多少分钟

-a (and)两个条件同事满足

-o (or)两个条件满足任意一个即可

-type 根据文件类型查找 f(file)文件 d(directory)目录 l软链接

[root@localhost xiaoming]# find /etc/ -name init* -a -type f
/etc/selinux/targeted/contexts/initrc_context
/etc/sysconfig/init
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/inittab
[root@localhost xiaoming]# find /etc/ -name init* -a -type d
/etc/selinux/targeted/active/modules/100/init
/etc/rc.d/init.d

 

-exec/-ok 命令 {}\; 对查找结果执行操作 (-exec/-ok的区别:-ok会对执行的操作进行询问,比如删除的时候就比较适用)

[root@localhost xiaoming]# find /etc/ -name inittab -exec ls -l {} \;
-rw-r--r--. 1 root root 511 Aug  9  2019 /etc/inittab
[root@localhost xiaoming]# find /etc/ -name init* -a -size +2 -exec ls -l {} \;
-rwxr-xr-x. 1 root root 5419 Mar 29  2019 /etc/sysconfig/network-scripts/init.ipv6-global

 

-inum 根据i节点查找

实际使用:(1)文件名奇形怪状,或者文件名特别长等等情况,那么先查看目录下文件的i节点,然后通过查找i节点文件然后执行删除操作(2)还可以通过i节点找到硬链接文件,因为硬链接文件的i节点是相同的

例子:

[root@localhost xiaoming]# touch "xiaoming is a bad man"
[root@localhost xiaoming]# ls -i
   16253 fanbingbing  51409078 mernv   16777838 xiaofang         16250 xiaomingfile
   16251 liuyifei        16252 mernv2     16254 xiaofangfile     16234 xiaoming is a bad man
[root@localhost xiaoming]# find /home/xiaoming/ -inum 16234 -ok rm {} \;
< rm ... /home/xiaoming/xiaoming is a bad man > ? y
[root@localhost xiaoming]# ls
fanbingbing  liuyifei  mernv  mernv2  xiaofang  xiaofangfile  xiaomingfile

 

locate 在文件资料库中查找文件

语法:

locate 文件名(locate查找非常迅速,因为locate不是整个磁盘搜索,而是到自己的数据库(文件资料库)中搜索,但该文件资料库不是实时更新的,如果是刚创建的某个文件,使用locate则无法找到)

[root@localhost xiaoming]# locate inittab
/etc/inittab
/usr/share/augeas/lenses/dist/inittab.aug
/usr/share/man/zh_CN/man5/inittab.5.gz
/usr/share/vim/vim74/syntax/inittab.vim

 

如果是刚创建的文件,可以进行手动更新,使用命令updatedb

[root@localhost xiaoming]# touch yangmi
[root@localhost xiaoming]# locate yangmi
[root@localhost xiaoming]# updatedb
[root@localhost xiaoming]# locate yangmi
/home/xiaoming/yangmi

 

注:如果查找的文件如果再tmp临时文件目录下,则无法查找(tmp临时文件目录下的文件不会被locate收录到文件资料库)

[root@localhost xiaoming]# touch /tmp/zhangbozhi
[root@localhost xiaoming]# locate zhangbozhi
[root@localhost xiaoming]# updatedb
[root@localhost xiaoming]# locate zhangbozhi

 

locate -i 不区分大小写

如果需要查找的对象是:命令,可以使用which

which 搜索命令所在目录及别名信息

语法:

which [命令名称]

[root@localhost xiaoming]# which cp
alias cp='cp -i'
        /usr/bin/cp
[root@localhost xiaoming]# which useradd
/usr/sbin/useradd
[root@localhost xiaoming]# which rm
alias rm='rm -i'
        /usr/bin/rm

 

whereis 搜索命令所在目录及帮助文档路径

语法:

whereis [命令名称]

[root@localhost xiaoming]# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
[root@localhost xiaoming]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz

 

grep 在文件中搜索字串匹配的行并输出——注:在文件内容中查找 

语法:

grep -iv [指定字串] [文件]

-i 不区分大小写

-v 排除指定字串

[root@localhost ~]# grep -i by /etc/inittab 
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:

 

grep -o "关键字"  filename|wc -l

 

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

帮助命令

 man (manual)获取帮助信息

语法:

man [命令或者配置文件]

查看命令的帮助,如:man ls查看ls命令的帮助文档,打开后类似于more和less查看文件,按【空格或f】键翻页、【Enter】键换行、【q或Q】键退出,按下【/】按钮,输入需要搜索的内容,敲击回车即可,如果有很多行都包含输入内容,按【n(next)】键接着往下查找

查看配置文件的帮助信息,如:man services,查看/etc/services这个配置文件的帮助信息,注意使用man直接加配置文件,不需要使用绝对路径,使用绝对路径会将该文件打开,而不是展示该文件的帮助信息

 man passwd 这个表示查看命令passwd的帮助信息

[root@localhost ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

 

在Linux中有一个命令叫passwd,有一个配置文件也叫passwd,如果我需要查看配置文件的passwd该怎么办啦?

从上面whereis的命令中可以看到

/usr/share/man/man1/passwd.1.gz 其中1表示命令的帮助
/usr/share/man/man5/passwd.5.gz 其中5表示配置文件的帮助
那么如果我需要查看passwd配置文件的帮助,那么命令应该是:man 5 passwd

whatis 只查看该命令简短信息,不看其他描述

[root@localhost ~]# whatis ls
ls (1)               - list directory contents
ls (1p)              - list directory contents

 

apropos services 只查看配置文件的简短信息

 

只想知道命令的选项 [命令] --help

touch --help

 

例:如果想修改系统时间,怎么办?

1、查看当前系统时间 date

[root@localhost ~]# date
Tue Mar 10 19:26:43 CST 2020

 

2、查看帮助文档,看如何设置系统时间格式 man date

[root@localhost ~]# man date
DATE(1)                                 User Commands                                 DATE(1)

NAME
       date - print or set the system date and time

SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

 

3、按照帮助文档中的格式进行修改 date 

[root@localhost ~]# date 031011282020.28
Tue Mar 10 11:28:28 CST 2020

 

 

info 命令同样可以获得帮助的信息(类似man,显示有点大同小异)/

help 获取shell内置命令的帮助信息(什么事shell内置命令,这种命令最大的特点是用which和whereis找不到该命令及为shell内置命令,常用的cd/pwd/umask/echo等)

语法:

help 命令

 ---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

 用户管理命令

useradd 添加新用户

语法:

useradd 新用户的账户名字

useradd xiaoming

 

passwd 设置用户的密码

语法:

passwd 用户名

 

who 查看登录用户的信息

[root@localhost ~]# who
root     tty1         2020-03-11 23:18
xiaoming pts/0        2020-03-11 23:18 (192.168.0.104)
root     pts/1        2020-03-11 23:19 (192.168.0.104)

 

其中的要素:(1)登录用户名  (2)登录终端(tty 本地登录 pts表示远程登录终端)  (3)登录时间  (4)登录主机的IP,若没有则表示本地登录

w 查看登录用户的详细信息

[root@localhost ~]# w
 23:22:09 up 4 min,  3 users,  load average: 0.05, 0.23, 0.13
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      23:18    3:13   0.05s  0.05s -bash
xiaoming pts/0    192.168.0.104    23:18    3:14   0.03s  0.03s -bash
root     pts/1    192.168.0.104    23:19    1.00s  0.06s  0.03s w

 

其中的要素:

23:22:09当前系统时间  
up 4 min连续运行的时间
3 users当前总共有多少用户登录
load average: 0.05, 0.23, 0.13负载均衡指数 分别记录过去1分钟、5分钟和15分钟的负载情况 数字越小表示负载越少

USER登录用户名  TTY登录终端(tty 本地登录 pts表示远程登录终端) FROM登录主机的IP,若没有则表示本地登录  LOGIN@登录时间  IDLE 用户登录到系统后空闲多长时间  JCPU用户累计占用CPU时间  PCPU用户当前正在执行 命令占用cpu时间   WHAT执行的命令

 

 ---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------- 

压缩和解压命令

gzip (GNU zip)压缩文件为.gz格式(1、只能压缩文件,不能压缩目录  2、压缩不能保存原文件)

语法:

gzip [文件]

[root@localhost cangjinglaoshi]# ls
beiyong2.cfg  beiyong3.cfg
[root@localhost cangjinglaoshi]# gzip beiyong3.cfg 
[root@localhost cangjinglaoshi]# ls
beiyong2.cfg  beiyong3.cfg.gz

 

gunzip (GNU unzip) 解压缩.gz的压缩文件(使用gzip -d也可以解压缩)

语法:

gunzip [压缩文件]

[root@localhost cangjinglaoshi]# gunzip beiyong3.cfg.gz 
[root@localhost cangjinglaoshi]# ls
beiyong2.cfg  beiyong3.cfg
[root@localhost cangjinglaoshi]# gzip beiyong3.cfg 
[root@localhost cangjinglaoshi]# gzip -d beiyong3.cfg.gz 
[root@localhost cangjinglaoshi]# ls
beiyong2.cfg  beiyong3.cfg

 

tar 打包目录

语法:

tar [-zcf] [压缩后的文件名] [要压缩的目录]

-c (create)打包

-v 显示详细信息

-f 指定文件名

-z (zip)打包同事压缩

[root@localhost japan]# ls
cangjinglaoshi  longze  mosaic  xiaoze  xiaozenvshen
[root@localhost japan]# tar -cvf cangjinglaoshi.tar cangjinglaoshi/
cangjinglaoshi/
cangjinglaoshi/beiyong2.cfg
cangjinglaoshi/beiyong3.cfg.gz
[root@localhost japan]# ls
cangjinglaoshi  cangjinglaoshi.tar  longze  mosaic  xiaoze  xiaozenvshen
[root@localhost japan]# gzip cangjinglaoshi.tar 
[root@localhost japan]# ls
cangjinglaoshi  cangjinglaoshi.tar.gz  longze  mosaic  xiaoze  xiaozenvshen
[root@localhost japan]# tar -zcvf cangjing.tar.gz cangjinglaoshi 
cangjinglaoshi/
cangjinglaoshi/beiyong2.cfg
cangjinglaoshi/beiyong3.cfg.gz
[root@localhost japan]# ls
cangjinglaoshi         cangjing.tar.gz  mosaic  xiaozenvshen
cangjinglaoshi.tar.gz  longze           xiaoze  z

 

tar命令解压缩语法:

-x 解压缩

-v显示详细信息

-f 指定解压文件

-z 解压缩

 

zip 压缩文件或者目录(可以保留原文件)

语法:

zip [-r] [压缩后文件名] [文件或者目录]

-r 压缩目录

压缩后文件格式.zip

[root@localhost japan]# zip -r cangjinglaoshi.zip cangjinglaoshi
  adding: cangjinglaoshi/ (stored 0%)
  adding: cangjinglaoshi/beiyong2.cfg (deflated 45%)
  adding: cangjinglaoshi/beiyong3.cfg.gz (stored 0%)
[root@localhost japan]# ls
cangjinglaoshi         cangjinglaoshi.zip  longze  xiaoze        z
cangjinglaoshi.tar.gz  cangjing.tar.gz     mosaic  xiaozenvshen

 

unzip 解压.zip的压缩文件

语法:

unzip [压缩文件]

bzip2 压缩文件(值压缩文件,不压缩目录)

语法:

bzip2 [-k] [文件]

-k 产生压缩文件后保留原文件

也可以使用tar生成.bz2文件的压缩包

tar -cjf japan.tar.bz2 japan (注:将以前的-z(zip) 换成 -j)

压缩后文件格式.bz2

[root@localhost japan]# ls
cangjinglaoshi cangjinglaoshi.zip longze wenjian xiaozenvshen
cangjinglaoshi.tar.gz cangjing.tar.gz mosaic xiaoze z
[root@localhost japan]# bzip2 -k wenjian 
[root@localhost japan]# ls
cangjinglaoshi cangjinglaoshi.zip longze wenjian xiaoze z
cangjinglaoshi.tar.gz cangjing.tar.gz mosaic wenjian.bz2 xiaozenvshen

 

bunzip2 解压缩.bz2的压缩包

语法:

bunzip2 [-k] [压缩文件]

-k 解压缩后保留原文件

也可以使用tar来解压缩tar -xjf [压缩文件](注:也是将-z换成-j)

 ---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------

网络命令

write 给指定用户(在线用户)发送信息,以ctrl+D保存结束

语法:

write <用户名>

root用户侧输入:(如果输入错误,使用Backspace键(<——)无法删除,需要使用ctrl+Backspace键(<——)完成删除)

[root@localhost ~]# write xiaoming
xiaoming ming tian zao shang zao dian lai shang ban!

 

小明用户侧会收到信息:

[xiaoming@localhost ~]$ 
Message from root@localhost.localdomain on pts/0 at 06:04 ...
xiaoming ming tian zao shang zao dian lai shang ban!
EOF

 

wall (write all)发广播信息(所有用户包括自己也能收到)

语法:

wall [message]

[xiaoming@localhost ~]$ wall hello
[xiaoming@localhost ~]$ 
Broadcast message from xiaoming@localhost.localdomain (pts/1) (Thu Mar 12 06:13:08 2020):

hello

 

ping 测试网络连通性

语法:

ping 选线 ip地址

-c 指定发送次数

[xiaoming@localhost ~]$ ping -c 2 192.168.0.104
PING 192.168.0.104 (192.168.0.104) 56(84) bytes of data.
64 bytes from 192.168.0.104: icmp_seq=1 ttl=64 time=0.250 ms
64 bytes from 192.168.0.104: icmp_seq=2 ttl=64 time=0.493 ms

--- 192.168.0.104 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.250/0.371/0.493/0.123 ms

 

ifconfig 查看和设置网卡信息

语法:

ifconfig 网卡名称 ip地址 给网卡设置IP地址

mail 查看发送电子邮件(可以给在线和离线用户发送邮件)

语法:

mail [用户名]

[root@localhost ~]# mail root
Subject: nihao
he he    
EOT
[root@localhost ~]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N  1 root                  Thu Mar 12 06:25  18/605   "nihao"
& 1
Message  1:
From root@localhost.localdomain  Thu Mar 12 06:25:08 2020
Return-Path: <root@localhost.localdomain>
X-Original-To: root
Delivered-To: root@localhost.localdomain
Date: Thu, 12 Mar 2020 06:25:08 +0800
To: root@localhost.localdomain
Subject: nihao
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: root@localhost.localdomain (root)
Status: R

he he

& h
>   1 root                  Thu Mar 12 06:25  18/605   "nihao"
& d
& h
No applicable messages

 

如上,mail root给root用户发送邮件,mail查看自己的邮件信息

N  1 root                  Thu Mar 12 06:25  18/605   "nihao"
N(new)表示 1封未读邮件 1表示邮件列表的第一封
按1回车键查看第一封邮件 h回车键返回邮件列表 d回车键删除一封邮件(从上到下)(删除指定邮件:d 2删除第一封邮件) q回车键退出

last 列出目前与过去登录系统的用户信息

xiaoming pts/1        192.168.0.104    Thu Mar 12 06:03   still logged in   
root     pts/0        192.168.0.104    Thu Mar 12 06:00   still logged in   
root     tty1                          Thu Mar 12 05:59   still logged in   
reboot   system boot  3.10.0-1062.el7. Thu Mar 12 05:58 - 06:39  (00:40)    
root     pts/1        192.168.0.104    Wed Mar 11 23:19 - down   (03:29)    
xiaoming pts/0        192.168.0.104    Wed Mar 11 23:18 - 01:30  (02:11)    
root     tty1                          Wed Mar 11 23:18 - 02:48  (03:29)    
reboot   system boot  3.10.0-1062.el7. Wed Mar 11 23:17 - 02:48  (03:30)    
root     pts/0        192.168.0.104    Tue Mar 10 18:35 - 19:07  (00:32)    
root     tty1                          Tue Mar 10 18:33 - 19:07  (00:33)    
reboot   system boot  3.10.0-1062.el7. Tue Mar 10 18:32 - 19:07  (00:34)    
xiaoming pts/1        192.168.0.104    Tue Mar 10 05:52 - 07:00  (01:08)    
root     pts/0        192.168.0.104    Tue Mar 10 05:52 - 07:00  (01:08)    
root     tty1                          Tue Mar 10 05:51 - 07:01  (01:09)    
reboot   system boot  3.10.0-1062.el7. Tue Mar 10 05:51 - 19:07  (13:16)    
root     pts/1        192.168.0.104    Mon Mar  9 19:36 - 05:46  (10:10)    
xiaoming pts/0        192.168.0.104    Mon Mar  9 19:34 - 05:46  (10:12)    
root     tty1                          Mon Mar  9 19:30 - 05:46  (10:16)    
reboot   system boot  3.10.0-1062.el7. Mon Mar  9 19:29 - 05:46  (10:16)    
xiaoming pts/2        192.168.0.104    Sat Mar  7 21:42 - 22:33  (00:51)    
root     pts/2        192.168.0.104    Sat Mar  7 21:36 - 21:36  (00:00)    
root     pts/1        192.168.0.104    Sat Mar  7 21:12 - down   (01:21)    
root     pts/0        192.168.0.104    Sat Mar  7 17:30 - down   (05:02)    
root     tty1                          Sat Mar  7 17:27 - 22:33  (05:06)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  7 17:26 - 22:33  (05:06)    
root     pts/1        192.168.0.104    Sat Mar  7 04:01 - crash  (13:25)    
root     pts/0        192.168.0.104    Sat Mar  7 00:26 - 04:37  (04:11)    
root     tty1                          Fri Mar  6 22:30 - crash  (18:56)    
reboot   system boot  3.10.0-1062.el7. Fri Mar  6 22:20 - 22:33 (1+00:12)   
root     tty1                          Thu Feb  6 18:27 - crash (29+03:52)  
reboot   system boot  3.10.0-1062.el7. Thu Feb  6 18:27 - 22:33 (30+04:06)  
root     tty1                          Thu Feb  6 07:05 - 07:05  (00:00)    
reboot   system boot  3.10.0-1062.el7. Thu Feb  6 07:04 - 22:33 (30+15:28) 

 

lastlog 所有用户最后一次登录的信息

[root@localhost ~]# lastlog
Username         Port     From             Latest
root             pts/0    192.168.0.104    Thu Mar 12 06:00:40 +0800 2020
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
systemd-network                            **Never logged in**
dbus                                       **Never logged in**
polkitd                                    **Never logged in**
libstoragemgmt                             **Never logged in**
abrt                                       **Never logged in**
rpc                                        **Never logged in**
apache                                     **Never logged in**
sshd                                       **Never logged in**
postfix                                    **Never logged in**
chrony                                     **Never logged in**
ntp                                        **Never logged in**
tcpdump                                    **Never logged in**
xiaoming         pts/1    192.168.0.104    Thu Mar 12 06:03:58 +0800 2020
xiaohong                                   **Never logged in**

 

last -u 502(502指的是某用户的uid) 查看某一个用户的登录信息

 

traceroute 显示数据包到主机间的路径

语法:

traceroute 地址

traceroute www.baidu.com

 

netstat (network state网络状态)显示网络相关信息

netstat [选项]

-t TCP协议

-u UDP

-l 监听

-r 路由

-n 显示IP地址和端口号

范例:

netstat -tlun 查看本机监听的端口

netstat -an 查看本机所有的网络连接

netstat -rn 查看本机路由表

 

setup 配置网络

service network restart重启网络服务

 

mount 设备文件名挂载点

语法:

mount [-t] [文件系统]

[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  temp  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp   var

 

添加一个新的光盘,怎么挂在?还是不太懂

卸载 umount

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------

关机和重启命令

shutdown 

语法:

shutdown [选项] 时间

-c 取消前一个关机命令

-h 关机

-r 重启 

shutdown -h now 现在关机

shutdown -h 20:30 晚上八点半关机

shutdown -r now 现在重启

shutdown -r 20:30 晚上八点半重启

shutdown -c 取消上一个关机命令

1、其他关机命令

halt

poweroff(相当于直接断电)

init 0

2、其他重启的命令

reboot

init 6

说明:系统运行级别

0、关机  1、单用户(只有root用户能进入,类似Windows安全模式,及启动最小核心模式)  2、不完全多用户,不含NFS服务  3、完全多用户  4、未分配  5、图形界面  6、重启

上面描述可以通过 cat /etc/inittab查看和修改系统默认运行级别,一般的话是默认3的级别。默认级别不能是0和6。

 

runlevel 查看系统运行级别

[root@localhost ~]# runlevel 
N 3

 

第一个N表示3的前一个级别,N表示空,因为开机直接进入了3级别

[root@localhost ~]# init 5
[root@localhost ~]# runlevel
3 5

 

当前的系统运行级别是5,上一个级别是3,因为我是从级别3切换到级别5的,如下代码再切回来:

[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3

 

 

logout 退出登录命令

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------

文本编辑器Vim Vim没有菜单,只有命令

Vim的常用操作

 

---------------------------------------------------------------------------------------------------华-丽-的-分-割-线------------------------------------------------------------------------------------------------

RPM安装

rpm -ivh 包全名

-i(install) 安装

-v(verbose) 显示详细信息

-h(hash) 显示进度

--nodeps 不检查依赖性

 

RPM包升级

rpm -Uvh 包全名

-U(upgrade) 升级

 

RPM包卸载

rpm -e 包名(注意:是包名,不是包全名)

-e(erase) 卸载

--nodeps 不检查依赖性

 

查询软件包是否安装

rpm -q 包名 查询某个软件包是否安装

[root@localhost Packages]# rpm -q httpd
httpd-2.4.6-90.el7.centos.x86_64
[root@localhost Packages]# rpm -q httpd323
package httpd323 is not installed

 

rpm -qa 查询所有已经安装的RPM软件包

[root@localhost /]# rpm -qa | grep httpd
httpd-manual-2.4.6-90.el7.centos.noarch
httpd-tools-2.4.6-90.el7.centos.x86_64
httpd-2.4.6-90.el7.centos.x86_64
httpd-devel-2.4.6-90.el7.centos.x86_64

 

-q(query) 查询

-a(all) all

 

查询软件包详细信息

rpm -qi 包名

-i(infermation) 查询软件信息

-p(package) (包全名)查询未安装包的信息

[root@localhost /]# rpm -qi httpd
Name        : httpd
Version     : 2.4.6
Release     : 90.el7.centos
Architecture: x86_64
Install Date: Thu 06 Feb 2020 06:56:19 AM CST
Group       : System Environment/Daemons
Size        : 9817301
License     : ASL 2.0
Signature   : RSA/SHA256, Fri 23 Aug 2019 05:25:32 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : httpd-2.4.6-90.el7.centos.src.rpm
Build Date  : Thu 08 Aug 2019 07:43:53 PM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

 

查看未安装的包时:(1)需要将目录切换到包的所在目录下(2)需要输入包全名

[root@localhost /]# cd /mnt/cdrom/Packages/
[root@localhost Packages]# rpm -qip zip-3.0-11.el7.x86_64.rpm 
warning: zip-3.0-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Name        : zip
Version     : 3.0
Release     : 11.el7
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Archiving
Size        : 815173
License     : BSD
Signature   : RSA/SHA256, Mon 21 Nov 2016 05:04:58 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : zip-3.0-11.el7.src.rpm
Build Date  : Sun 06 Nov 2016 12:49:55 AM CST
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.info-zip.org/Zip.html
Summary     : A file compression and packaging utility compatible with PKZIP
Description :
The zip program is a compression and file packaging utility.  Zip is
analogous to a combination of the UNIX tar and compress commands and
is compatible with PKZIP (a compression and file packaging utility for
MS-DOS systems).

Install the zip package if you need to compress files using the zip
program.

 

查询软件包中文件安装完位置(linux中的包,是该包在被生产(被组件)的时候,就已经决定了该包和包中文件具体的安装位置。可以手动修改,若手动修改后,后面使用可能出现问题)

rpm -ql 包名

-l(list) 列表

-p (包全名)查询未安装包的信息

 

查询系统文件属于哪一个RPM包(验证:可以和上面rpm -ql连用,先查询出来包中文件安装的位置,在反向通过包中文件获取该文件属于哪一个包)

rpm -qf 系统文件名

-f 查询系统文件输入哪一个包

[root@localhost Packages]# rpm -qf /etc/httpd/conf.d
httpd-2.4.6-90.el7.centos.x86_64
[root@localhost Packages]# rpm -qf /var/www/html
httpd-2.4.6-90.el7.centos.x86_64

 

[root@localhost Packages]# rpm -qf /etc/yum.conf 
yum-3.4.3-163.el7.centos.noarch
[root@localhost Packages]# 

 

 

查询软件包的依赖性

rpm -qR 报名

-R(requires) 查询软件包的依赖性

-p (跟包全名)查询为安装包信息

[root@localhost Packages]# rpm -qRp zziplib-0.13.62-11.el7.x86_64.rpm 
warning: zziplib-0.13.62-11.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
/sbin/ldconfig
/sbin/ldconfig
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libz.so.1()(64bit)
libzzip-0.so.13()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

 

 

RPM包校验

rpm -V 已经安装的包名

-V(verify) 校验指定RPM包中的文件

[root@localhost Packages]# rpm -V httpd
[root@localhost Packages]# 

 

如上,如果包下没有任何修改,则不会显示任何东西,如果包下文件又被修改,则该命令就会列出修改内容

 

RPM包中文件提取(使用作用,如Linux系统误删除某项命令或者配置文件,我们需要找到该命令或者文件属于哪一个包,然后从该包中提取响应文件,覆盖已经安装的文件)

rpm2cpio 包全名 | cpio -idv .文件绝对路径

rpm2cpio 将rpm包转化为cpio格式的命令

cpio 是一个标准工具,它用于创建软件档案文档和从档案文档中提取文件

cpio [选项] <[文件|设备]

 

-i copy-in模式,还原

-d 还原时自动新建目录

-v 显示还原工程

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

配置网络

nmtui

setup(redhat专有命令) centOS 7中没有网络配置选线

修改网络配置文件

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33-1 
HWADDR=00:0C:29:1E:22:3F
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.0.105
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV4_DNS_PRIORITY=100
IPV6INIT=no
NAME=ens33
UUID=8622a52a-e64f-48bb-a542-48a8999457fd
DEVICE=ens33
ONBOOT=yes
DNS2=8.8.4.4

 

DNS单独修改文件

[root@localhost ~]# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4

 

重启网络服务

[root@localhost ~]# service network restart

 

 

---------------------------------------------yum学习----------------------------------------------------

[root@localhost ~]# vi /etc/yum.repos.d/CentOS-
CentOS-Base.repo       CentOS-fasttrack.repo  CentOS-Vault.repo
CentOS-CR.repo         CentOS-Media.repo      
CentOS-Debuginfo.repo  CentOS-Sources.repo 

 

[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo
=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo
=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful

 

[base] 容器名称,一定要放到[]中

name 容器说明,可以自己随便写

mirrorlist 镜像站点,这个可以注释掉

baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢可以改成国内的你喜欢的yum源地址

enabled 此容器是否生效,如果不写或写成enable=1都是生效的,写成enabled=0就是不生效

gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效

gpgkey 数字证书的公钥文件保存位置。不用修改。

 

常用yum命令

yum list 查询所有可用软件包列表

yum search 关键字 搜索服务器上所有关键字相关的包

安装

yum -y install 包名

-y 自动回答yes

升级

yum -y update 包名

yum -y update升级所有包,包括Linux内核(该命令慎用,因为内核升级后需要配置才能使用)

卸载

yum -y remove 包名(尽量不要卸载,因为如果卸载某软件包,他会先卸载依赖包,但是依赖包可能被多个软件依赖,一旦卸载其他程序可能就崩溃了)

 

yum关键组管理命令

yum grouplist  列出所有可用的软件组列表

yum groupinstall 软件组名  安装指定软件组,组名可以由grouplist查询出来

yum groupremove 软件组名  卸载指定软件组

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

用户管理命令

useradd [-选项] 用户名  添加用户的命令

 

passwd [-选项] 用户名  修改用户密码的命令

passwd  修改当前登录用户(非root管理员的用户都只能修改自己的密码)

passwd -l 用户名  暂时锁定用户

passed -u 用户名  解锁被锁定的用户

 

usermod [-选项] 用户名  修改用户信息的命令

usermod -G root user1 将user1这个用户添加到root管理员的组中(-G表示添加到附属组 -g表示初始组,我们一般不操作初始组,初始组的变更可能导致自己创建的文件却没有操作权限)

usermod -L 用户名  临时锁定用户

usermod -U 用户名  解锁被锁定的用户

 

chage [-选项] 用户名  修改用户密码状态

chage -d 0 用户名   把用户修改密码日期归零(shadow第三字段) 这样用户一登录就需要修改密码

 

userdel [-选项] 用户名  删除用户命令

userdel [-r] 用户名

-r  删除用户的同时删除用户的家目录

 

注:上面所有的新增、修改、删除用户及密码操作,都可以手动修改文件来解决,涉及到的文件如下

修改:/etc/passwd——用户信息文件  /etc/shadow——用户真实密码文件  /etc/group——用户组信息文件  /etc/gshadow——用户组密码文件

删除:/var/spool/mail/用户名——用户邮箱  /home/用户名——用户家目录

如何查看一个用户是否删除干净,如果useradd添加同一个用户不报错,则之前删除操作证明删除干净

 

su [-选项] 用户名  用户切换命令

普通用户切换其他用户的时候,需要输入其他用户的密码,超级用户在切换成其他用户的时候不需要输入密码。

-  选项只使用“-”代表连带用户的环境变量一起切换

-c  仅执行一次命令,而不切换用户身份

[xiaohong@localhost ~]$ whoami
xiaohong
[xiaohong@localhost ~]$ su xiaoming
Password: 
[xiaoming@localhost xiaohong]$ pwd
/home/xiaohong
[xiaoming@localhost xiaohong]$ su - xiaoming
Password: 
Last login: Fri Mar 20 19:17:37 CST 2020 on pts/2
[xiaoming@localhost ~]$ pwd
/home/xiaoming
[xiaoming@localhost ~]$ su - root
Password: 
Last login: Fri Mar 20 19:12:48 CST 2020 on tty1
[root@localhost ~]# pwd
/root

 

[xiaohong@localhost ~]$ 注"$"表示普通用户
[root@localhost ~]# 注"#"表示超级用户

注:在切换用户的时候,需要加上“-”!

su - root -c "useradd username1" 不切换成root用户,只是使用root用户身份添加一个用户username1

[xiaohong@localhost root]$ su - root -c "useradd username1"
Password: 
[xiaohong@localhost root]$ su - root -c "passwd username1"
Password: 
Changing password for user username1.
New password: 
BAD PASSWORD: The password contains the user name in some form
Retype new password: 
passwd: all authentication tokens updated successfully.
[xiaohong@localhost root]$ 

 

上面代码:在不切换成root用户的情况下,先使用root身份创建用户username1,然后在使用root用户身份给username1设置密码

 

id 用户名  查看用户的uid和gid和附加组信息

[xiaohong@localhost root]$ id xiaohong
uid=1001(xiaohong) gid=1001(xiaohong) groups=1001(xiaohong)

 

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

用户管理命令

 groupadd [-选线] 组名  添加用户组

-g GID  指定组ID

 

groupmod [-选线] 组名  修改用户组

-g GID  修改组ID

-n 新组名

groupmod -n newgroup group1 把组名group1修改为newgroup

 

groupdel 组名  删除用户组

说明:如果该组中有初始用户,则这个组无法删除(需要将该组的初始用户删除或者修改该组初始用户的初始组为别的组),如果该组中只有附加用户,那么是可以删除的

 

gpasswd [-选项] 组名  把用户添加入组或者从组中删除

-a 用户名  把用户添加入组

-d 用户名  把用户从组中删除

-----------------------------------------------------------------------权限管理-------------------------------------------------

 

df -h  查看系统有哪些分区及使用情况

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 475M     0  475M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M  7.8M  479M   2% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.8G   16G  11% /
/dev/sda1               1014M  139M  876M  14% /boot
tmpfs                     98M     0   98M   0% /run/user/0
tmpfs                     98M     0   98M   0% /run/user/1000

 

查看分区ACL权限是否开启

dumpe2fs -h /dev/mapper/centos-root

dumpe2fs  查询指定分区详细文件系统信息的命令

-h  仅显示超级块中的信息,而不显示磁盘块组的详细信息

 

临时开启分区ACL权限(重启系统就没有权限了)

mount -o remount,acl /  重新挂载跟分区,并挂载加入ACL权限

 

永久开启分区ACL权限:需要修改文件/etc/fstab

 

getfacl 文件名  查看ACL权限

setfacl [-选项] 文件名  设定ACL权限的命令

-m  设定ACL权限

-x  删除指定的ACL权限

-b  删除所有的ACL权限

-d  设定默认ACL权限

-k  删除默认ACL权限

-R  递归设定ACL权限

setfacl -m u:name:rx /文件夹或者文件名/  给某一个用户(name)分配文件或者文件夹的rx权限

[root@localhost japan]# ls -l .
total 28
drwxrw-rw-. 2 root root    49 Mar 11 23:56 cangjinglaoshi
-rw-r--r--. 1 root root  1857 Mar 12 00:03 cangjinglaoshi.tar.gz
-rw-r--r--. 1 root root  2037 Mar 12 00:17 cangjinglaoshi.zip
-rw-r--r--. 1 root root  1838 Mar 12 00:07 cangjing.tar.gz
drwxr-xr-x. 2 root root     6 Mar  7 17:33 longze
-rw-r--r--. 1 root root     0 Mar 12 01:04 wenjian
-rw-r--r--. 1 root root    14 Mar 12 01:04 wenjian.bz2
drwxr-xr-x. 2 root root    26 Mar  7 19:58 xiaoze
-rw-r--r--. 1 root root 10240 Mar 12 00:06 z
[root@localhost japan]# setfacl -m u:xiaoming:rx cangjinglaoshi
[root@localhost japan]# ls -l .
total 28
drwxrwxrw-+ 2 root root    49 Mar 11 23:56 cangjinglaoshi
-rw-r--r--. 1 root root  1857 Mar 12 00:03 cangjinglaoshi.tar.gz
-rw-r--r--. 1 root root  2037 Mar 12 00:17 cangjinglaoshi.zip
-rw-r--r--. 1 root root  1838 Mar 12 00:07 cangjing.tar.gz
drwxr-xr-x. 2 root root     6 Mar  7 17:33 longze
-rw-r--r--. 1 root root     0 Mar 12 01:04 wenjian
-rw-r--r--. 1 root root    14 Mar 12 01:04 wenjian.bz2
drwxr-xr-x. 2 root root    26 Mar  7 19:58 xiaoze
-rw-r--r--. 1 root root 10240 Mar 12 00:06 z

如上,如果没有设置ACL权限的时候:该目录cangjinglaoshi 的权限是所有者7,所属组6,其他人6。现在有一个特殊用户,他的权限是5,那么需要给他单独分配权限,使用命令setfacl -m,分配权限后能看到drwxrwxrw-+后面多了一个"+"号。

查看ACL权限

[root@localhost japan]# getfacl cangjinglaoshi
# file: cangjinglaoshi
# owner: root
# group: root
user::rwx
user:xiaoming:r-x
group::rw-
mask::rwx
other::rw-

 

mask::rwx为最权限

给用户组设定ACL权限

setfacl -m g:组名:rwx 文件或者文件夹  为组分配文件夹或者文件的ACL权限(对比上面给用户分配ACL权限)

 

setfacl -m m:mask:rx /文件或者文件夹名/  修改最大有效权限

最大有效权限只影响ACL权限和其所属组的权限,ACL用户权限、ACL用户组权限和所属组权限只能小于等于最大有效权限

 

删除ACL权限

setfacl -x u:用户名 文件名  删除指定用户的ACL权限

setfacl -x g:组名 文件名  删除指定用户组的ACL权限

setfacl -b 文件名  删除文件的所有ACL权限

 

默认ACL权限和递归ACL权限

setfacl -m u:用户名:权限 -R 文件名  -R表示递归,子目录和子文件也同样具有ACL权限

在设定ACL递归权限后,文件夹下面的子文件和子目录都具有同样的ACL权限,但是后面在该目录下创建的子文件或者子文件夹则不会具有ACL权限,这个时候就需要用到默认ACL权限

setfacl -m d:u:用户名:权限 文件名  d(default) 默认 如果给父目录设置了默认的ACL权限,那么在父目录下所有新建的子文件或者子文件夹都会继承父目录的ACL权限。

说明:递归主要处理的是现有的子文件或者子文件夹(只针对当前) 默认处理的是对未来可能存在的新增文件或者新增文件夹进行处理(只针对未来新增)   递归和默认都只针对目录

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

SUID权限  只针对可以执行的二进制文件  知识链接:https://www.cnblogs.com/iaknehc/p/6881517.html

如何分配SUID权限和取消SUID权限

设置SUID权限

chmod 4755 文件名

chmod u+s 文件名

取消SUID权限

chmod 777(755) 文件名  设置为任意三位权限,即可取消

chmod u-s 文件名

 

SGID权限  既可以针对文件,还可以针对目录  知识链接 :https://www.cnblogs.com/iaknehc/p/6882505.html

如何分配SGID权限和取消SGID权限

设置SGID权限

chmod 2755 目录名/文件名

chmod g+s 目录名/文件名

取消SGID权限

chmod 777(755) 目录名/文件名  设置为任意三位权限,即可取消

chmod g-s 目录名/文件名

 

Sticky BIT(SBIT)  粘着位权限,只针对目录有效。防止用户误删除(有删除权限)非自己创建的文件。  知识链接:https://www.cnblogs.com/iaknehc/p/6883519.html

SBIT赋予权限的赋予人必须是超级管理员,普通用户不可以。

如何设置和取消粘着位权限

设置粘着位

chmod 1755 目录名

chmod o+t 目录名

取消粘着位

chmod 777(755) 目录名  设置为任意三位权限,即可取消

chmod 0-t 目录名

 

SUID权限:4(s)  SGID权限:2(s)  Sticky BIT(SBIT):1(t)

4755表示:rwsr-xr-x

7755表示:rwsr-sr-t

2755表示:rwxr-sr-x

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

文件系统属性chattr(change attributes)权限  该命令只有root有权限使用,并且设置后对root用户有效  知识链接:https://www.cnblogs.com/iaknehc/p/6891867.html

chattr [+-=][选项] 文件或者目录名

+  增加权限

-  删除权限

=  等于某权限

选项有:

i  如果对文件设置i属性,那么不允许对文件进行删除、改名、增加和修改数据。
如果对目录设置i属性,那么只能修改目录下文件的数据,但是不能创建新文件和删除已有文件

a  如果对文件设置了a属性,那么只能在文件中增加数据,但是不能删除、修改数据,
如果对目录设置a属性,只能在目录中建立和修改文件但不能删除文件

 

查看文件属性
lsattr -a 显示文件或目录属性
[root@LAMP tmp]# lsattr -a one.file
----i--------e- one.file //one.file文件具有i属性,文件系统是ext(e)

lsattr -d 显示目录属性
[root@LAMP tmp]# lsattr -d twotest
-----a-------e- twotest //目录twotest具有a属性,文件系统是ext(e)

 

sudo权限

上面学习的其他权限基本上时用户操作文件或者文件夹的权限,sudo权限操作的对象是系统命令!

sudo作用:把root才能执行的命令赋予给其他普通用户来执行。

visudo  修改/etc/sudoers文件

----------------------------------------------------------------------------文件系统管理-----------------------------------------------------------------------------------

df [选项] [挂载点]

df直接查看分区使用情况 

[root@localhost ~]# df
Filesystem              1K-blocks    Used Available Use% Mounted on
devtmpfs                   485848       0    485848   0% /dev
tmpfs                      497872       0    497872   0% /dev/shm
tmpfs                      497872    7856    490016   2% /run
tmpfs                      497872       0    497872   0% /sys/fs/cgroup
/dev/mapper/centos-root  17811456 1868732  15942724  11% /
/dev/sda1                 1038336  142332    896004  14% /boot
tmpfs                       99576       0     99576   0% /run/user/0

 

 

[root@localhost ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                 475M     0  475M   0% /dev
tmpfs                    487M     0  487M   0% /dev/shm
tmpfs                    487M  7.7M  479M   2% /run
tmpfs                    487M     0  487M   0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  1.8G   16G  11% /
/dev/sda1               1014M  139M  876M  14% /boot
tmpfs                     98M     0   98M   0% /run/user/0

 

 

du [选项] [目录或文件名]  统计目录或文件大小

......

挂载

......

 

 

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

 

posted @ 2017-06-02 17:20  颜子歌  阅读(1305)  评论(0编辑  收藏  举报