首页 > 代码库 > Linux课程笔记 Day02 命令总结

Linux课程笔记 Day02 命令总结

find

【使用权限】

所有使用者

【语法】

find  [PATH]  [option]  [action]

【功能说明】

      查找文件

【参数】

  1.  PATH:find命令所查找的起始目录。比如“.”代表当前路径,“/”代表根目录
  2. option:查找文件所要求匹配的条件
  3. action:对查找出的结果要执行的操作

 [option]

1. 与时间有关系的参数:atime(访问时间)、ctime(状态修改时间)、mtime(数据内容修改时间)的单位是“天”,amin、cmin、mmin单位是“分钟”。下面以mtime为例。

-mtime  n:  n为数字,列出在第n天(以前)当天24小时之内被更改过的对象

-mtime  +n:n位数字,列出是在n天之前(不包含n天本身)被更改过的对象

-mtime  -n: n位数字,列出在n天内(不包含n天本身)被更改过的对象

-newer  file:file为文件名,列出比file还要新的对象

 

2. 与用户或者用户组名有关的参数:

-uid  n: n为数字,这个数字是用户的UID

-gid  n: n为数字,这个数字是用户的GID

-user  name:name为用户账号名称

-group name:name为用户组名

-nouser:列出文件所有者不存在于/etc/passwd的对象

-nogroup:列出文件的所有用户组不存在于/etc/group中的对象

 

 

3. 与文件权限及名称有关的参数:

-name filename:查找文件名为filename的文件

 

-size  [+-]SIZE:查找比SIZE还要大(+)或者还要小(-)的文件。这个SIZE的规格有:c代表byte,k代表1024byte

 

-type TYPE:查找文件的类型为TYPE的,类型主要有:普通文件(f)、目录(d)、设备文件(b、c)、链接文件(l)、socket文件(s)、及FIFO(p)等

 

-perm mode:查找文件权限“刚好等于mode的文件,这个mode为类似chmod的属性值

-perm  –mode:查找文件权限“必须要全部包括mode的权限“的文件

-perm  +mode:查找文件权限“包含任一mode的权限”的文件

 

4. 其他参数:

-prune:用来实现忽略某些目录,在该参数前面使用 –path 目录指定忽略目录(如果使用了-depth,该参数将被忽略)

 

-depth:在查找文件时,首先要查找当前目录中的文件,然后在其子目录中查找

 

逻辑运算符:not(!)、and(-a,默认)、or(-o)

 

[action]

-exec  command {}  \;  :command为对查找的结果索要执行的操作

–print:将结果打印到屏幕上,这个是默认操作

–ok commad  {}  \; :和-exec作用相同,只是操作之前会进行交互确认

| xargs command:和-exec一样,可以对用户匹配到的文件执行任何操作,但是-exec对长度有所限制,结果较大的时候,系统性能会下降,效率不高。

 

 

【实例】

  • 有时间有关的参数:

[root@test2 ~]# find /home -ctime -5 -exec ls -l {} \;    #-------à查找各用户5天内状态被修改的文件

总计 16

drwx------ 2 qinbf qinbf 4096 05-19 19:27 qinbf

drwx------ 2 test  test  4096 05-20 08:53 test

总计 0

-rw-r--r-- 1 test test 33 05-20 08:50 /home/test/.bash_logout

-rw-r--r-- 1 test test 176 05-20 08:50 /home/test/.bash_profile

-rw------- 1 test test 23 05-20 08:53 /home/test/.bash_history

-rw-r--r-- 1 test test 124 05-20 08:50 /home/test/.bashrc

总计 0

-rw-r--r-- 1 qinbf qinbf 33 05-17 02:23 /home/qinbf/.bash_logout

-rw-r--r-- 1 qinbf qinbf 208 05-17 03:11 /home/qinbf/.bash_profile

-rw------- 1 qinbf qinbf 729 05-20 09:54 /home/qinbf/.bash_history

-rw-r--r-- 1 qinbf qinbf 124 05-17 02:23 /home/qinbf/.bashrc

-rw------- 1 qinbf qinbf 792 05-19 19:19 /home/qinbf/.viminfo

 

[root@test2 ~]# find /home -newer /etc/passwd ! -newer /home/qinbf/test.txt -type f -exec ls -l {} \;     #------à查找home目录下比/etc/passwd要新,/home/qinbf/test.txt要旧的文件

-rw------- 1 test test 23 05-20 08:53 /home/test/.bash_history

-rw-r--r-- 1 root root 0 05-20 19:15 /home/qinbf/test.txt

-rw------- 1 qinbf qinbf 729 05-20 09:54 /home/qinbf/.bash_history

 

 

  • 与用户和用户组有关系的参数

[root@test2 ~]# find /home -user qinbf -group test -type f    -exec ls -l {} \;

#------------à查找home目录下用户属于qinbf,属组属于test的文件          

-rw-r--r-- 1 qinbf test 0 05-20 19:26 /home/qinbf/test2.txt

 

  • 与权限或者名称有关的参数

[root@test2 ~]# find /home -name "*.txt" -perm +4 -exec ls -l {} \;

#------------à查找home目录下名字包含.txt后缀,并且权限至少有4的文件

-rw-r--r-- 1 root root 0 05-20 19:15 /home/qinbf/test.txt

-rw-r--r-- 1 qinbf test 0 05-20 19:26 /home/qinbf/test2.txt

[root@test2 ~]# chmod 740 /home/qinbf/test2.txt

 [root@test2 ~]# find /home -name "*.txt" -perm 740 -exec ls -l {} \;

#------------à查找home目录下名字包含.txt后缀,并且权限为740的文件

-rwxr----- 1 qinbf test 0 05-20 19:26 /home/qinbf/test2.txt

 

  • 其他参数

[root@test2 ~]# find /home -name "*.txt" -perm 740 |xargs ls –l

#--------------à列出home目录下名字包含.txt后缀,并且权限为740的文件

-rwxr----- 1 qinbf test 0 05-20 19:26 /home/qinbf/test2.txt

[root@test2 ~]# find /home -name "*.txt" -perm 740 |xargs rm

#--------------à查找home目录下名字包含.txt后缀,并且权限为740的文件,并删除

[root@test2 ~]# ll /home/qinbf/

总计 4

-rw-r--r-- 1 root root 0 05-20 19:15 test.txt


wc

【使用权限】

      所有使用者

【语法】

      wc  [-lwm]

【功能说明】

      计算文件的行数或者是字数或者是字符数

【参数】

      -l:仅列出行数

      -w:仅列出多少字(英文单字)

      -m:(多少字符)

【实例】

  • -l参数的使用

[root@test2 ~]# wc -l /etc/passwd

39 /etc/passwd   #-------à共有39行

  • -w参数的使用

[root@test2 ~]# wc -w /etc/passwd

58 /etc/passwd

  • -m参数的使用

[root@test2 ~]# wc -m /etc/passwd

1795 /etc/passwd

 


tar

【使用权限】

       所有使用者

【语法】

       tar  [-j|-z] [cv] [-f 新建文件名]  filename  #---à打包与压缩

       tar  [-j|-z] [cv] [-f 新建文件名]  filename  #---à查看压缩包

       tar  [-j|-z] [cv] [-f 新建文件名]  filename  #---à解压缩

【功能说明】

       打包与压缩

【参数】

       -c:新建打包文件,可搭配-v来查看过程中被打包的文件名

       -t:查看打包文件的内容包含哪些文件名,重点在查看文件名

       -x:解打包或者解压缩的功能,可以搭配-C在特定的目录中解开

           特别留意的是-c、-t、-x不可同时出现在一串命令行中

       -j:通过bzip2的支持进行压缩/解压,此时文件名最好为*.tar.bz2

       -z:通过gzip的支持进行压缩与解压,此时文件名最好为*.tar.gz

       -v:在压缩/解压缩中,将正在处理的文件名显示出来

       -f  filename:-f后面要接被处理的文件名,建议-f单独写一个参数

       -C 目录:这个参数用在解压时,若要在特定目录中解压,可以使用这个参数

       -p(小):保留备份数据的原本权限与属性,常用语备份(-c)重要的配置文件

       -P(大):保留绝对路径,即允许备份数据中包含有根目录存在之意

       -X,--exclude-from FILE:指定文件列表的形式排出不需要的文件或目录

      --exclude=FILE:在压缩过程中,不要将FILE打包

【实例】

  • 1. 两种打包方式

[root@test2 ~]# tar zxvf test.tar.gz -C /tmp/test1

test/

test/test1.txt

test/test4.txt

test/test2.txt

test/test3.txt       #--------à加了参数v,会显示打包所包含的的文件

[root@test2 ~]# tar jxvf test.tar.bz -C /tmp/test2

test/

test/test1.txt

test/test4.txt

test/test2.txt

test/test3.txt

 

  • 2.两种方式指定目录解压

[root@test2 ~]# tar zxvf test.tar.gz -C /tmp/test1

test/

test/test1.txt

test/test4.txt

test/test2.txt

test/test3.txt      

[root@test2 test1]# cd /tmp/test1/test/

[root@test2 test]# ll

总计 16

-rw-r--r-- 1 root root 0 05-21 02:15 test1.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test2.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test3.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test4.txt

#---------------àtest.tar.gz的文件已经解压到/tmp/test1/目录下了

[root@test2 ~]# tar jxvf test.tar.bz -C /tmp/test2

test/

test/test1.txt

test/test4.txt

test/test2.txt

test/test3.txt

[root@test2 ~]# cd /tmp/test2/test/

[root@test2 test]# ll

总计 16

-rw-r--r-- 1 root root 0 05-21 02:15 test1.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test2.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test3.txt

-rw-r--r-- 1 root root 0 05-21 02:16 test4.txt

  • 3.打包排除总结

[root@test2 ~]# tar jcvf test.tar.bz qinbf --exclude=qinbf/paichu.txt  

qinbf/

qinbf/baoliu.txt    #------------à qinbf/paichu.txt文件没有被打包

[root@test2 ~]# cd qinbf/

[root@test2 qinbf]# ll

总计 8

-rw-r--r-- 1 root root 0 05-21 02:29 baoliu.txt

-rw-r--r-- 1 root root 0 05-21 02:29 paichu.txt

 

[root@test2 ~]# echo "qinbf/paichu.txt" >tar.txt   #----àtar.txt文件内容为paichu.txt文件的路径

[root@test2 ~]# tar zcvf paichu.tar.gz qinbf --exclude-from tar.txt

qinbf/

qinbf/baoliu.txt      #------------à结果表明并没有将paichu.txt文件打包

 

  • 4.保留绝对路径

       

[root@test2 test]# tar zcvf /tmp/test/etc.tar.gz /etc/

tar: 从成员名中删除开头的“/”    #------à提示会删除“/”

/etc/

/etc/idmapd.conf

/etc/logwatch/

/etc/logwatch/conf/

/etc/logwatch/conf/logwatch.conf

/etc/logwatch/conf/ignore.conf

…………….

[root@test2 test]# tar ztvf /tmp/test/etc.tar.gz

drwxr-xr-x root/root         0 2013-05-21 02:11:42 etc/

-rw-r--r-- root/root      3579 2012-02-26 05:26:46 etc/idmapd.conf

drwxr-xr-x root/root         0 2011-03-31 05:57:33 etc/logwatch/

drwxr-xr-x root/root         0 2012-05-30 08:38:21 etc/logwatch/conf/

#--------------àetc的前面都不带“/”

 

解决办法:使用参数P(大写)

 

[root@test2 test]# tar zcvPf /tmp/test/etc.tar.gz /etc/

/etc/      #-----------à没有提示删除“/”

/etc/idmapd.conf

/etc/logwatch/

/etc/logwatch/conf/

/etc/logwatch/conf/logwatch.conf

/etc/logwatch/conf/ignore.conf

/etc/logwatch/conf/logfiles/

/etc/logwatch/conf/services/

 

[root@test2 test]# tar ztvf /tmp/test/etc.tar.gz

drwxr-xr-x root/root         0 2013-05-21 02:11:42 /etc/

-rw-r--r-- root/root      3579 2012-02-26 05:26:46 /etc/idmapd.conf

drwxr-xr-x root/root         0 2011-03-31 05:57:33 /etc/logwatch/

drwxr-xr-x root/root         0 2012-05-30 08:38:21 /etc/logwatch/conf/

drwxr-x--- root/root         0 2012-05-30 08:37:39 /etc/audit/

#----------------àetc的前面都带有“/”

 

  • 5.生产场景案例:把外目录下所有包含qinbf的子目录及文件压缩打包

[root@test2 ~]# find . -type d -name "qinbf"

./test/qinbf

./qinbf

[root@test2 ~]# tar zcf qinbf.tar.gz `find . -type d -name "qinbf"`

#--------à结合find命令,将查找的结果压缩打包

[root@test2 ~]# tar ztvf qinbf.tar.gz

drwxr-xr-x root/root         0 2013-05-21 02:28:27 ./test/qinbf/

drwxr-xr-x root/root         0 2013-05-21 02:29:08 ./qinbf/

-rw-r--r-- root/root         0 2013-05-21 02:29:02 ./qinbf/baoliu.txt

-rw-r--r-- root/root         0 2013-05-21 02:29:08 ./qinbf/paichu.txt

或者可以用以下方法

[root@test2 ~]# find . -type d -name "qinbf"  |xargs tar zcvf qinbf.tar.gz

#--------à结合find命令,将查找的结果压缩打包

./test/qinbf/

./qinbf/

./qinbf/baoliu.txt

./qinbf/paichu.txt

 


cut

【使用权限】

      所有使用者

【语法】

      cut  -d  ‘分隔字符’  –f  fields

      cut  -c  字符范围

【功能说明】

       选取某一行中的某一段信息

【参数】

       -d :后面接分隔字符,与-f一起使用

       -f:取出第几段的意思

       -c:以字符为单位取出固定字符区间

【实例】

  • cut  -d   -f fields的使用

[qinbf@test2 ~]$ echo "I am qinbf my qq is 530917868"> qinbf.txt

取出"qinbf 530917868"

[qinbf@test2 ~]$ cut  -d " " -f  3,7 qinbf.txt

qinbf 530917868

  • cut  –c的使用

[qinbf@test2 ~]$ echo "I am qinbf my qq is 530917868"> qinbf.txt

取出"qinbf 530917868"

[qinbf@test2 ~]$ cut -c 6-10,21- qinbf.txt  

qinbf530917868

 


grep

【使用权限】

       所有使用者

【语法】

      grep  [-acinv] [-A <显示行数>]  [-B<显示行数>]  [-C<显示行数>] [--color=auto] “查找字符串”  filename

【参数】

       -a:将binary(二进制)文件以text文件的方式查找数据

       -c: 计算找到“查找字符串”的次数

       -i:忽略大小写的不同

       -n:顺便输出行号

       -v:反向选择,即显示出没有’查找字符’内容的那一行

       --color=auto:可以将找到关键字部分加上颜色

       -A<显示行数>或—after-context=<显示行数>:除了显示符合查找字符串的那一行之外,并显示该行之后的那几行的内容

       -B<显示行数>或—before-context=<显示行数>:除了显示符合查找字符串的那一行之外并显示该行之前的那几行的内容>

        -C<显示行数>或—coutext<显示行数>:除了显示符合查找字符串的那一行之外并显示该行前后的内容

【实践】

  • 输出行号并忽略大小写

[qinbf@test2 ~]$ cat test.txt

1sb in the moring

1SB in the evening

2   in the moring

2sb in the evening

3sb in the moring

3sb in the evening

 

[qinbf@test2 ~]$ grep -in sb  test.txt

1:1sb in the moring

2:1SB in the evening

4:2sb in the evening

5:3sb in the moring

6:3sb in the evening

 

  • 计算test.txt要查找的字符“sb”和“SB”有多少个

[qinbf@test2 ~]$ grep -c sb test.txt

4

[qinbf@test2 ~]$ grep -c SB test.txt  

1

 

  • 反向查找并忽略大小写

[qinbf@test2 ~]$ grep -iv sb test.txt

2   in the moring

 

  • -A、-B、-C的使用

[qinbf@test2 ~]$ grep -iv sb -A 1 test.txt  #-----à将目标及后一行输出

2   in the moring

2sb in the evening

[qinbf@test2 ~]$ grep -iv sb -B 1 test.txt  #-----à将目标及前一行输出

1SB in the evening

2   in the moring

[qinbf@test2 ~]$ grep -iv sb -C 1 test.txt  #------à将目标及前一行和后一行都输出

1SB in the evening

2   in the moring

2sb in the evening

 


date

【使用权限】

       所有使用者

【语法】

date  [-u] [-d datestr]  [-s datestr] [--utc]  [--universal][--date=datestr] [--set=datestr] [--help] [--version]  [+FORMAT] [MMDDhhmm][CC][YY][.ss]

【功能说明】

Date可以用来显示或设定系统的日期和时间(时间设定必须有root权限)

【参数】

     1.参数选项

      -u  --utc:显示目前的格林威治时间

      -d datestr  --date=datestr:显示datestr中所设定的时间(非系统时间)

      -s datestr   --set=datestr:将系统时间设为datestr中所设定的时间

      --help:显示辅助信息

      --version:显示版本编号

 

      2. 时间格式(记粉底常用项即可)

             日期方面:

                  %a:星期几(Sun-Sta)

                  %A:星期几(Sunday-Saturday)

                  %b:月份(Jan-Dec)

                  %B:月份(January-December)

                  %c:直接显示日期与时间

                  %d:日(01-31)

                  %D:直接显示日期(mm/dd/yy)

                  %h:同%b

                  %j:一年中的第几天

                  %m:月份(01-12)

                  %U:一年中的第几周(00-53)(以Sunday为一周的第一天)

                  %w:一周的第几天(0-6)

                  %W:一年中的第几周(00-53)(以Monday为一周的第一天)

                  %x:直接显示日期(mm/dd/yy)

                  %y:年份的最后两位数字(00-99)

                  %Y:完整年份(0000-9999)

              时间方面:

                  %n:下一行

                  %t:跳格

                  %H:小时(00-23)

                  %I:小时(00-12)

                  %k:小时(00-23)

                  %l:小时(1-12)

                  %M:分钟(00-59)

                  %p:显示本地AM或PM

                  %r:直接显示时间(12小时制)

                   %:s从1970年1月1日00:00:00UTC到目前为止的秒数

                   %S:秒(00-60)

                   %T:直接显示时间(24小时制)

                   %X:相当于%H:%M:%S

                   %Z:显示时区

 【实践】

  • 显示时间

显示时间后跳行再显示目前日期

[qinbf@test2 ~]$ date +%T%n%D[q1] 

09:55:59

05/21/13

 

[qinbf@test2 ~]$ date +"%Y-%m-%d %H:%M:S[q2] "

2013-05-210:09:S

 

  • 修改时间

[qinbf@test2 ~]$ date -s "2013-05-21 10:26:30"

date: cannot set date: 不允许的操作

2013年 05月 21日 星期二 10:26:30 CST

[qinbf@test2 ~]$ sudo date -s "2013-05-21 10:27:00"

[sudo] password for qinbf:[q3] 

2013年 05月 21日 星期二 10:27:00 CST

[qinbf@test2 ~]$ sudo clock -w[q4] 

[sudo] password for qinbf:

 


which

【使用权限】

       所有使用者

【语法】

       which  [-npwV] 可执行文件名称

【功能说明】

       在PATH变量指定的路径中,搜索某个系统命令的位置,并返回第一个搜索的结果

【参数】

       -n:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名

       -p:与-n参数相同,但此处的包括了文件的路径

       -w:指定输出时栏位的宽度

       -V:显示版本信息

【实践】

  • which使用

[qinbf@test2 ~]$ which pwd

/bin/pwd

 

[qinbf@test2 ~]$ which cd

/usr/bin/which: no cd in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/qinbf/bin:/usr/local/sbin:/sbin:/usr/sbin)

[qinbf@test2 ~]$ sudo su -

[sudo] password for qinbf:

[root@test2 ~]# which cd[q5] 

/usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

 

[qinbf@test2 ~]$ which which

alias[q6]  which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘

/usr/bin/which

 

  • 与which功能类似的参数

[qinbf@test2 ~]$ whereis[q7]   which

which: /usr/bin/which /usr/share/man/man1/which.1.gz

 

[qinbf@test2 ~]$ which[q8]   whereis

/usr/bin/whereis

 

[qinbf@test2 ~]$ locate[q9]   which

/etc/profile.d/which-2.sh

/usr/bin/sgmlwhich

/usr/bin/which/usr/bin/ypwhich

/usr/lib64/python2.4/whichdb.py

/usr/lib64/python2.4/whichdb.pyc

/usr/lib64/python2.4/whichdb.pyo

/usr/share/doc/which-2.16

/usr/share/doc/bash-3.2/functions/which

/usr/share/doc/which-2.16/AUTHORS

/usr/share/doc/which-2.16/EXAMPLES

/usr/share/doc/which-2.16/NEWS

/usr/share/doc/which-2.16/README

/usr/share/info/which.info.gz

/usr/share/man/man1/which.1.gz

/usr/share/man/man1/ypwhich.1.gz

 


echo

【使用权限】

       所有使用者

【语法】

       echo  [-ne] [字符串]或  echo [--help][--version]

【功能说明】

       显示文字,默认会将结果字符串送往标准输出。输出的字符串以空白字符隔开,并在最后加上换行号

【参数】

       -n:不要在最后自动换行

       -e:若字符串出现以下字符,则特别处理,而不会将它当成一般文字输出:

          \a:发出警告声

          \b:删除前一个字符

          \c:最后不加上换行号

          \f:换行但光标仍旧停留在原来的位置

          \n:换行且光标移至行首

          \r:光标移至行首。但不换行

          \t:插入tab

          \v:与\f相同

          \\: 插入\字符

          \nnn:插入nnn(八进制)所代表的的ASCII字符

          --help:显示帮助

          --version:显示版本信息

        Echo要变换颜色的时候,要使用参数-e

【实践】

  • 使用echo输出变量信息

[qinbf@test2 ~]$ echo  $PATH

/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/qinbf/bin:/usr/local/sbin:/sbin:/usr/sbin

 

  • echo的默认使用

[qinbf@test2 ~]$ echo hello qinbf

hello qinbf

 

  • \\参数的使用

[qinbf@test2 ~]$ echo hello \\ qinbf

hello \ qinbf

 

  • 参数\n的使用

[qinbf@test2 ~]$ echo -e "hello\nqinbf"

hello

qinbf

 

  • 往文件写内容,如果文件不存在则创建文件

[qinbf@test2 ~]$ ll test/

总计 0

qinbf@test2 ~]$ echo "hello qinbf">test/qinbf.txt

[qinbf@test2 ~]$ ll test/

总计 8

-rw-rw-r-- 1 qinbf qinbf 12 05-21 15:49 qinbf.txt

 

  • 给用户设置密码

[root@test2 ~]# echo "qbf8038" | passwd --stdin test

Changing password for user test.

passwd: all authentication tokens updated successfully.

 


shutdown

【使用权限】

       Root权限

【语法】

       shutdown  [-t秒] [-arkhncfF] 时间  警告消息

【功能说明】

       shutdown可以选择关机模式、设置关机时间、自定义关机消息,也可以仅仅发出警告消息而不是真正的关机、可选择是否要用fsck检查文件系统

【参数】

      -t sec:-t 后面加秒数,即过几秒关机的意思

      -k:不要真正的关机,只是发送警告消息

      -r:在将系统的服务停掉之后就重启(常用)

      -h:将系统的服务停掉之后就立刻关机(常用)

      -n:不经过init程序,直接以shutdown的功能关机

      -f:系统关机并开机后,强制略过fsck的磁盘检查

      -F:系统重启之后,强制fsck磁盘检查

      -c:取消已经在进行的shutdown命令内容

【实例】

  • Shutdown  -h的使用

[root@test2 ~]# shutdown -h 10  ‘I will shutdownafter 10 min‘

 

Broadcast message from root (pts/1) (Tue May 21 16:23:05 2013):

 

I will shutdownafter 10 min

The system is going DOWN for system halt in 10 minutes!

 

Shutdown cancelled.[q10] 

 

[root@test2 ~]# shutdown -h now[q11] 

 

[root@test2 ~]# shutdown -h 20:25[q12] 

 

  • Shutdown –r的使用

[root@test2 ~]# shutdown -r now[q13] 

 

[root@test2 ~]# shutdown -r +30 "The system will reboot"[q14] 

 

Broadcast message from root (pts/1) (Tue May 21 16:30:48 2013):

 

The system will reboot

The system is going DOWN for reboot in 30 minutes!

 

 

  • Shutdown –k的使用

[root@test2 ~]# shutdown -k now "Hi,I am master"

 

Broadcast message from root (pts/1) (Tue May 21 16:34:21 2013):

 

Hi,I am master

The system is going down to maintenance mode NOW!

 

Shutdown cancelled.[q15] 

 

注:关机命令除了shutdown –h now,还有halt、poweroff以及init 0.


reboot

【使用权限】

      Root

【语法】

      reboot [-dfinw]

【功能说明】

      让系统停止运作,并重新开机

【参数】

      -d:重新开机时,不把数据写入/var/tmp/wtmp,本参数具有参数“-n”的效果

      -f:强制重新开机,不调用shutdown指令的功能

      -i:在重开机之前,关闭网络界面

      -n:重开机之前不检查是否有未结束的程序

      -w:仅作测试,并不是真正的重新开机,只会把重开机的数据写入/var/log下面的wtmp记录文件


useradd

【使用权限】

      Root

【语法】

      Useradd [-mMnr] [-c <备注>] [-d <登入目录>][-e<有效期限>] [-f<缓冲天数>] [-g <>] [-G<>] [-s<shell>] [-u <uid>][用户账号]或useradd –D [-b] [-e<有效期限>] [-f<缓冲天数>][-g<群组>] [-G<群组>] [-s<shell>]

【功能说明】

       建立用户账号,账号保存在/etc/passwd文件中

【参数】

       -c<备注>:加上备注文字,会保存在/etc/passwd的备注栏中

       -d<登入目录>:指定用户登入时的起始目录

       -D:变更预设值

       -e<有效期限>:指定账号的有效期限

       -f<缓冲天数>:指定密码过期多少天后即关闭该账号

       -g<群组>:指定用户所属的群组

       -G<群组>:指定用户所属的附加群组

       -m:自动建立用户的登入目录

       -M:不要自动建立用户的登入目录

       -n:取消建立以用户名称为名的群组

       -r:建立系统账号

       -s<shell>:指定用户登入后所使用的shell

       -u<uid>:指定用户ID

【实践】

  • Useradd常用参数使用

[root@test2 ~]# useradd -d /home/no -G test -u 1988 -c "just for test" zhanghu

[root@test2 ~]# tail -5 /etc/passwd

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

wp:x:500:48::/var/www/example.com:/bin/bash

qinbf:x:501:501::/home/qinbf:/bin/bash

test:x:502:502::/home/test:/bin/bash

zhanghu:x:1988[q16] :1988:just for tes[q17] t:/home/no:[q18] /bin/bash

[root@test2 ~]# tail -5 /etc/group

avahi-autoipd:x:102:

mysql:x:27:

qinbf:x:501:

test:x:502:zhanghu[q19] 

zhanghu:x:1988:

[root@test2 ~]# su - zhanghu

[zhanghu@test2 ~]$ pwd

/home/no

 


passwd

【使用权限】

       所有使用者

【语法】

      passwd  账户 [用于root权限]

      passwd  [普通账户使用]

【功能说明】

      修改账户的密码

【参数】

      passwd的参数为账户,只有root权限才能修改其他账户的密码,普通用户只能修改自己账户的密码

  • passwd使用

[root@test2 ~]# passwd    #-------------à修改root自己的密码

Changing password for user root.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

 

[root@test2 ~]# passwd qinbf #-----------à修改普通账户qinbf的密码

Changing password for user qinbf.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

 

[qinbf@test2 ~]$ passwd test

passwd: Only root can specify a user name. #----------à只有root才能修改其他账户的密码

[qinbf@test2 ~]$ sudo passwd test

[sudo] password for qinbf[q20] :

Changing password for user test.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

 


 [q1]T是Time的简写,D是Day的简写,方便记忆

 [q2]日期一般用的参数小写,而时间的参数大写,方便记忆

 [q3]修改系统时间需要root权限,使用sudo命令,输入的是普通用户qinbf的密码

 [q4]当以root身份修改完系统时间之后,需要执行clock  –w,以便下次开机还能保持正确的设置

 [q5]查找cd之所以没有结果,是因为cd命令是内置bash命令,不在PATH中,当然找不到了。

 [q6]系统别名

 [q7]Whereis 是查看文件的位置

 [q8]Which是查看可执行文件的位置

 [q9]locate是配合数据库查看文件位置;find实际搜索硬盘查询文件名称

 [q10]快捷键Ctrl+C可以取消关机设置

 [q11]立刻关机,now相当于时间为0

 [q12]在20:25时刻关机,如果在21:00才执行这条命令,则隔天关机

 [q13]立刻重启

 [q14]系统发布通知,并在30分钟后重启

 [q15]没有任何操作,取消了shutdown进程,说明并不是真正的关机

 [q16]指定的uid

 [q17]指定的注释

 [q18]指定的家目录

 [q19]Zhanghu同时也属于test组

 [q20]使用root权限修改其他账户密码,首先要输入qinbf账户的密码,以便获取root权限

 

Linux课程笔记 Day02 命令总结