一、什么是管线命令

bash 命令运行的时候有输出的数据会出现! 那么如果这群数据必需要经过几道手续之后才能得到我们所想要的格式,应该如何来配置? 这就牵涉到管线命令的问题了 (pipe) ,管线命令使用的是『 | 』这个界定符号!

例:

[root@www ~]# ls -al /etc | less

如此一来,使用 ls 命令输出后的内容,就能够被 less 读取,并且利用 less 的功能,我们就能够前后翻动相关的信息了!

管线命令主要有两个比较需要注意的地方:

  • 管线命令仅会处理 standard output,对于 standard error output 会予以忽略
  • 管线命令必须要能够接受来自前一个命令的数据成为 standard input 继续处理才行。

二、常用的管线命令

①  截取命令  cut , grep

Ⅰ、 cut 命令

cut 主要的用途在于将『同一行里面的数据进行分解!』最常使用在分析一些数据或文字数据的时候! 这是因为有时候我们会以某些字符当作分割的参数,然后来将数据加以切割,以取得我们所需要的数据。

语法:

[root@www ~]# cut -d'分隔字符' -f fields <==用于有特定分隔字符

[root@www ~]# cut -c 字符区间            <==用于排列整齐的信息

选项与参数:

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

-f  :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思;

-c  :以字符 (characters) 的单位取出固定字符区间;

例一:

[root@localhost ~]# echo $PATH
/usr/java/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# echo $PATH | cut -d ':' -f 3-5 --> 按分号分割$PATH ,并取第三个到第五个显示
/usr/local/bin:/sbin:/bin

例二:

[root@localhost ~]# export
declare -x CLASSPATH=".:/usr/java/jdk1.7.0_79/lib/dt.jar:/usr/java/jdk1.7.0_79/lib/tools.jar"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x JAVA_HOME="/usr/java/jdk1.7.0_79"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/java/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x TERM="vt100"
declare -x USER="root" [root@localhost ~]# export | cut -c 12- -- >去掉前面的 declare -x
CLASSPATH=".:/usr/java/jdk1.7.0_79/lib/dt.jar:/usr/java/jdk1.7.0_79/lib/tools.jar"
G_BROKEN_FILENAMES="1"
HISTCONTROL="ignoredups"
HISTSIZE="1000"
HOME="/root"
HOSTNAME="localhost.localdomain"
JAVA_HOME="/usr/java/jdk1.7.0_79"
LANG="en_US.UTF-8"
LESSOPEN="|/usr/bin/lesspipe.sh %s"
MAIL="/var/spool/mail/root"
OLDPWD
PATH="/usr/java/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
PWD="/root"
SHELL="/bin/bash"
SHLVL="1"
SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
TERM="vt100"
USER="root"

Ⅱ、 grep 命令

语法:

[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename

选项与参数:

-a :将 binary 文件以 text 文件的方式搜寻数据

-c :计算找到 '搜寻字符串' 的次数

-i :忽略大小写的不同,所以大小写视为相同

-n :顺便输出行号

-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

--color=auto :可以将找到的关键词部分加上颜色的显示!

例一:

[root@localhost ~]# last | grep 'elgin'   -->  last 的结果当中,显示出包含有elgin字符串的行
elgin pts/0 192.168.108.1 Wed Dec 16 02:50 - 02:54 (00:04)
elgin tty1 :0 Wed Dec 16 02:49 - down (02:09)
elgin tty3 Tue Dec 15 20:41 - crash (00:13)
elgin pts/0 :0.0 Tue Dec 15 20:15 - 20:35 (00:20)
elgin tty1 :0 Tue Dec 15 20:11 - crash (00:43)
elgin pts/0 :0.0 Tue Dec 15 05:17 - 05:18 (00:01)
elgin pts/0 :0.0 Tue Dec 15 05:13 - 05:13 (00:00)
elgin tty1 :0 Tue Dec 15 04:54 - crash (15:15)
elgin tty7 :0 Tue Dec 15 04:30 - down (00:11)

例二:

[root@localhost ~]# last | grep -v 'root' --> last结果当中,显示出不包含root字符串的行
reboot system boot 2.6.32-431.el6.x Mon Dec 21 11:33 - 21:22 (3+09:48)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 20:30 - 11:15 (4+14:44)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 04:59 - 20:29 (15:30)
elgin pts/0 192.168.108.1 Wed Dec 16 02:50 - 02:54 (00:04)
elgin tty1 :0 Wed Dec 16 02:49 - down (02:09)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 02:48 - 04:58 (02:10)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 02:32 - 02:47 (00:15)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 01:12 - 02:31 (01:19)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 00:38 - 01:11 (00:33)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 20:54 - 01:11 (04:16)
elgin tty3 Tue Dec 15 20:41 - crash (00:13)
elgin pts/0 :0.0 Tue Dec 15 20:15 - 20:35 (00:20)
elgin tty1 :0 Tue Dec 15 20:11 - crash (00:43)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 20:09 - 01:11 (05:02)
elgin pts/0 :0.0 Tue Dec 15 05:17 - 05:18 (00:01)
elgin pts/0 :0.0 Tue Dec 15 05:13 - 05:13 (00:00)
elgin tty1 :0 Tue Dec 15 04:54 - crash (15:15)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 04:53 - 01:11 (20:17)
elgin tty7 :0 Tue Dec 15 04:30 - down (00:11)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 12:24 - 04:41 (-7:-43)

例三:

[root@localhost ~]# last | grep 'elgin' | cut -d '-' -f 1  --> last结果中,显示出包含elgin的行,并按‘-’ 截取 取第一段
elgin pts/0 192.168.108.1 Wed Dec 16 02:50
elgin tty1 :0 Wed Dec 16 02:49
elgin tty3 Tue Dec 15 20:41
elgin pts/0 :0.0 Tue Dec 15 20:15
elgin tty1 :0 Tue Dec 15 20:11
elgin pts/0 :0.0 Tue Dec 15 05:17
elgin pts/0 :0.0 Tue Dec 15 05:13
elgin tty1 :0 Tue Dec 15 04:54
elgin tty7 :0 Tue Dec 15 04:30

例四:

[root@localhost ~]# grep --color=auto 'test' /root/catfile    --> test关键字高亮显示
this is atest

②  排序命令  sort ,wc ,uniq

Ⅰ、 sort 命令

语法:

[root@www ~]# sort [-fbMnrtuk] [file or stdin]

选项与参数:

-f  :忽略大小写的差异,例如 A 与 a 视为编码相同;

-b  :忽略最前面的空格符部分;

-M  :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;

-n  :使用『纯数字』进行排序(默认是以文字型态来排序的);

-r  :反向排序;

-u  :就是 uniq ,相同的数据中,仅出现一行代表;

-t  :分隔符,默认是用 [tab] 键来分隔;

-k  :以那个区间 (field) 来进行排序的意思

例一:

[root@localhost ~]# cat /etc/passwd | sort  --> 显示文件中的内容,并排序 【从结果来看,默认以首字母来排序】
abrt:x:173:173::/etc/abrt:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
elgin:x:500:500:CenterOs_Seth:/home/elgin:/bin/bash
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
seth:x:501:501:seth:/home/seth:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
tcpdump:x:72:72::/:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

例二:

[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3   --> 按照分号分割之后的第三栏排序
root:x:0:0:root:/root:/bin/bash
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
apache:x:48:48:Apache:/var/www:/sbin/nologin
pulse:x:497:496:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
saslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
rtkit:x:499:497:RealtimeKit:/proc:/sbin/nologin
elgin:x:500:500:CenterOs_Seth:/home/elgin:/bin/bash
seth:x:501:501:seth:/home/seth:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
tcpdump:x:72:72::/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

例三:

[root@localhost ~]# last | cut -d ' ' -f1 | sort -u   --> last 结果按空格分割 之后的第一部分 并按字母顺序排序并去重

elgin
reboot
root
wtmp

Ⅱ、 uniq 命令

作用:去掉重复数据

语法:

[root@www ~]# uniq [-ic]

选项与参数:

-i  :忽略大小写字符的不同;

-c  :进行计数

例一

[root@localhost ~]# last | cut -d ' ' -f1 |sort |uniq  --> 通sort命令例3 

elgin
reboot
root
wtmp
[root@localhost ~]# last | cut -d ' ' -f1 | sort | uniq -c     --> 显示各个用户登陆次数
1
9 elgin
11 reboot
23 root
1 wtmp

Ⅲ 、wc命令

作用:统计文档的信息,比如行数,字数,字符数

语法:

[root@www ~]# wc [-lwm]

选项与参数:

-l  :仅列出行;

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

-m  :多少字符;

例:

[root@localhost ~]# cat /etc/passwd | wc
32 46 1481

③  双重重导向命令 tee

tee 会同时将数据流分送到文件去与屏幕 (screen);而输出到屏幕的,其实就是 stdout ,可以让下个命令继续处理!

语法:

[root@www ~]# tee [-a] file

选项与参数:

-a  :以累加 (append) 的方式,将数据加入 file 当中!

例一

[root@localhost ~]# last | tee /root/teefile | cut -d ' ' -f1|sort -u   --> 将last的内容存到 /root/teefile 文件同时经过 cut处理之后再显示到屏幕

elgin
reboot
root
wtmp
[root@localhost ~]# cat /root/teefile
root pts/1 :0.0 Mon Dec 21 04:33 - 22:30 (2+17:56)
root pts/0 192.168.108.1 Sun Dec 20 22:49 still logged in
root tty1 :0 Sun Dec 20 22:47 still logged in
reboot system boot 2.6.32-431.el6.x Mon Dec 21 11:33 - 22:21 (3+10:47)
root pts/0 192.168.108.1 Thu Dec 17 20:27 - down (3+14:47)
root pts/0 192.168.108.1 Wed Dec 16 20:35 - 05:12 (08:37)
root tty1 :0 Wed Dec 16 20:31 - down (4+14:43)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 20:30 - 11:15 (4+14:44)
root pts/0 192.168.108.1 Wed Dec 16 05:02 - down (15:27)
root tty1 :0 Wed Dec 16 05:02 - down (15:27)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 04:59 - 20:29 (15:30)
root pts/0 192.168.108.1 Wed Dec 16 02:54 - down (02:04)
root tty7 :1 Wed Dec 16 02:54 - down (02:04)
elgin pts/0 192.168.108.1 Wed Dec 16 02:50 - 02:54 (00:04)
elgin tty1 :0 Wed Dec 16 02:49 - down (02:09)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 02:48 - 04:58 (02:10)
root pts/0 192.168.108.1 Wed Dec 16 02:39 - down (00:07)
root tty1 :0 Wed Dec 16 02:36 - down (00:10)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 02:32 - 02:47 (00:15)
root pts/0 192.168.108.1 Wed Dec 16 01:50 - down (00:41)
root pts/0 192.168.108.1 Wed Dec 16 01:13 - 01:49 (00:36)
root tty1 :0 Wed Dec 16 01:13 - down (01:17)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 01:12 - 02:31 (01:19)
root tty7 :0 Wed Dec 16 01:02 - down (00:08)
root pts/0 192.168.108.1 Wed Dec 16 00:56 - 01:10 (00:14)
root pts/0 192.168.108.1 Wed Dec 16 00:56 - 00:56 (00:00)
root tty1 :0 Wed Dec 16 00:40 - 01:02 (00:21)
reboot system boot 2.6.32-431.el6.x Wed Dec 16 00:38 - 01:11 (00:33)
root pts/2 192.168.108.1 Tue Dec 15 21:02 - crash (03:36)
root pts/1 192.168.108.128 Tue Dec 15 21:00 - 21:02 (00:01)
root pts/0 :0.0 Tue Dec 15 20:55 - 21:02 (00:06)
root tty1 :0 Tue Dec 15 20:55 - crash (03:42)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 20:54 - 01:11 (04:16)
elgin tty3 Tue Dec 15 20:41 - crash (00:13)
elgin pts/0 :0.0 Tue Dec 15 20:15 - 20:35 (00:20)
elgin tty1 :0 Tue Dec 15 20:11 - crash (00:43)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 20:09 - 01:11 (05:02)
elgin pts/0 :0.0 Tue Dec 15 05:17 - 05:18 (00:01)
elgin pts/0 :0.0 Tue Dec 15 05:13 - 05:13 (00:00)
elgin tty1 :0 Tue Dec 15 04:54 - crash (15:15)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 04:53 - 01:11 (20:17)
elgin tty7 :0 Tue Dec 15 04:30 - down (00:11)
reboot system boot 2.6.32-431.el6.x Tue Dec 15 12:24 - 04:41 (-7:-43) wtmp begins Tue Dec 15 12:24:43 2015

④  字符转换命令:

Ⅰ、tr 命令

tr 可以用来删除一段信息当中的文字,或者是进行文字信息的替换!

语法:

root@www ~]# tr [-ds] SET1 ...

选项与参数:

-d  :删除信息当中的 SET1 这个字符串;

-s  :取代掉重复的字符!

例一

[root@localhost ~]# last | tr '[a-z]' '[A-Z]'     --> 将小写字母转为大写字母
ROOT PTS/1 :0.0 MON DEC 21 04:33 - 22:30 (2+17:56)
ROOT PTS/0 192.168.108.1 SUN DEC 20 22:49 STILL LOGGED IN
ROOT TTY1 :0 SUN DEC 20 22:47 STILL LOGGED IN
REBOOT SYSTEM BOOT 2.6.32-431.EL6.X MON DEC 21 11:33 - 22:35 (3+11:01)
ROOT PTS/0 192.168.108.1 THU DEC 17 20:27 - DOWN (3+14:47)
ROOT PTS/0 192.168.108.1 WED DEC 16 20:35 - 05:12 (08:37)

例二

[root@localhost ~]# cat /etc/passwd | tr -d ':'   --> 删去结果中的:号
rootx00root/root/bin/bash
binx11bin/bin/sbin/nologin
daemonx22daemon/sbin/sbin/nologin
admx34adm/var/adm/sbin/nologin
lpx47lp/var/spool/lpd/sbin/nologin
syncx50sync/sbin/bin/sync

Linux管线命令的更多相关文章

  1. Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs

    在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...

  2. Linux学习之十四、管线命令

    Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php

  3. Linux入门之常用命令(6)Bash命令重定向 管线命令

    命令重定向 将目前所得数据转移到其他地方 >  将输出结果导入文件 如  ls -l / >test     (1)若test文件不存在则创建 (2)若test文件存在 清空后写入 > ...

  4. Linux系列(11):之bash进阶与数据流导向、管线命令

    1.万用字符与特殊字符 在bash的环境下有一个特别有用的功能,那就是万用字符!下面展示常见的万用字符: 1.万用字符 除了万用字符还有一些其他的特殊字符,接下来显示特殊字符. 2.特殊字符 2.数据 ...

  5. linux 压缩命令详解

    原文地址:http://www.2cto.com/os/201112/114982.html 编写shell脚本的时候经常需要解压缩到指定的文件夹,tar命令是最常用的 参考一下说明,其中注意-C的用 ...

  6. Linux重定向命令

    linux重定向命令应用及语法  [复制链接]   发表于 2008-12-18 18:24 | 来自  51CTO网页 [只看他] 楼主     1. 标准输入的控制语法:命令 文件将命令的执行结果 ...

  7. linux tar命令

    tar命令打包还是压缩需要看所调用的命令参数....tar在使用时可以调用命令参数, 比如tar -xvf +文件名就是解包,但是不是解压...只有在使用了参数z等调用gzip等 压缩命令时才是压缩或 ...

  8. linux tar 命令

    tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件! ...

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

      一.系统管理与设置 1.信息显示命令 # man & info  //帮助手册 # man 命令 //显示相应命令的帮助内容 # arch  //显示当前系统体系结构 # cal  //显 ...

随机推荐

  1. JS对象基础

    JavaScript 对象 JavaScript 提供多个内建对象,比如 String.Date.Array 等等. 对象只是带有属性和方法的特殊数据类型. 访问对象的属性 属性是与对象相关的值. 访 ...

  2. if(username.equals(“zxx”){}

    1. if(username.equals(“zxx”){} username可能为NULL,会报空指针错误:改为"zxx".equals(username) 2.  int  x ...

  3. UVA 658 It's not a Bug, it's a Feature! (最短路,经典)

    题意:有n个bug,有m个补丁,每个补丁有一定的要求(比如某个bug必须存在,某个必须不存在,某些无所谓等等),打完出来后bug还可能变多了呢.但是打补丁是需要时间的,每个补丁耗时不同,那么问题来了: ...

  4. LeetCode: pow

    Title: https://leetcode.com/problems/powx-n/ 思路:二分.使用递归或者非递归.非递归有点难理解.pow(0,0)=1 递归的方法是将n为负数的用除法解决.有 ...

  5. IP网络5种基本寻址方式 (单播、多播、广播、任播、地域多播)

    Addressing methods The Internet Protocol and other network addressing systems recognize five main ad ...

  6. POJ 2386 Lake Counting

    Lake Counting Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 28966   Accepted: 14505 D ...

  7. Android中利用画图类和线程画出闪烁的心形

                                                        本文讲解主要涉及的知识点: 1.线程控制 2.画图类 3.心形函数 大家先看图片: <ig ...

  8. DevExpress控件XtraGrid的Master-Detail用法 z

    XtraGrid支持Master-Detail展示,在自带的Demo中展示了一个“公司——产品——订单”的例子.自己照着实现了一下,有几处关键地方补充一下. 示例: 部门信息(主1)——部门下用户(从 ...

  9. lightoj 1023

    题意:让你输出前N个大写字母的前K个排列,按字典序,很水,直接dfs. #include<cstdio> #include<string> #include<cstrin ...

  10. Spring 中context.start作用

    我们经常会看到 如下代码 ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(configPath. ...