The response has been limited to 50k tokens of the smallest files in the repo. You can remove this limitation by removing the max tokens filter.
├── .gitattributes
├── .github
    ├── FUNDING.yml
    └── workflows
    │   └── ci.yml
├── .gitignore
├── .npmignore
├── CONTRIBUTING.md
├── Dockerfile
├── LICENSE
├── README.md
├── assets
    ├── Linux.gif
    ├── alfred.png
    ├── chrome-extensions.gif
    ├── dash-icon.png
    ├── qr.png
    └── vercel.png
├── command
    ├── 7z.md
    ├── ab.md
    ├── accept.md
    ├── ack.md
    ├── ag.md
    ├── alias.md
    ├── apachectl.md
    ├── apk.md
    ├── apropos.md
    ├── apt-get.md
    ├── apt-key.md
    ├── apt-sortpkgs.md
    ├── aptitude.md
    ├── ar.md
    ├── arch.md
    ├── arj.md
    ├── arp.md
    ├── arpd.md
    ├── arping.md
    ├── arptables.md
    ├── arpwatch.md
    ├── as.md
    ├── at.md
    ├── atop.md
    ├── atq.md
    ├── atrm.md
    ├── awk.md
    ├── axel.md
    ├── badblocks.md
    ├── base64.md
    ├── basename.md
    ├── batch.md
    ├── bc.md
    ├── bg.md
    ├── bind.md
    ├── blkid.md
    ├── blockdev.md
    ├── bmodinfo.md
    ├── break.md
    ├── builtin.md
    ├── bunzip2.md
    ├── bye.md
    ├── bzcat.md
    ├── bzcmp.md
    ├── bzdiff.md
    ├── bzgrep.md
    ├── bzip2.md
    ├── bzip2recover.md
    ├── bzless.md
    ├── bzmore.md
    ├── cal.md
    ├── cancel.md
    ├── cat.md
    ├── cd.md
    ├── cdrecord.md
    ├── chage.md
    ├── chattr.md
    ├── chcon.md
    ├── chfn.md
    ├── chgrp.md
    ├── chkconfig.md
    ├── chmod.md
    ├── chown.md
    ├── chpasswd.md
    ├── chroot.md
    ├── chsh.md
    ├── cksum.md
    ├── clear.md
    ├── clock.md
    ├── clockdiff.md
    ├── cmp.md
    ├── col.md
    ├── colrm.md
    ├── column.md
    ├── comm.md
    ├── command.md
    ├── compress.md
    ├── consoletype.md
    ├── continue.md
    ├── convertquota.md
    ├── cp.md
    ├── cpio.md
    ├── createrepo.md
    ├── crontab.md
    ├── csplit.md
    ├── cu.md
    ├── cupsdisable.md
    ├── cupsenable.md
    ├── curl.md
    ├── cut.md
    ├── date.md
    ├── dc.md
    ├── dd.md
    ├── declare.md
    ├── depmod.md
    ├── df.md
    ├── dhclient.md
    ├── dhcpd.md
    ├── dhcrelay.md
    ├── diff.md
    ├── diff3.md
    ├── diffstat.md
    ├── dig.md
    ├── dircolors.md
    ├── dirname.md
    ├── dirs.md
    ├── disown.md
    ├── dmesg.md
    ├── dmidecode.md
    ├── dnf.md
    ├── dnsdomainname.md
    ├── docker.md
    ├── domainname.md
    ├── dos2unix.md
    ├── dpkg-deb.md
    ├── dpkg-divert.md
    ├── dpkg-preconfigure.md
    ├── dpkg-query.md
    ├── dpkg-reconfigure.md
    ├── dpkg-split.md
    ├── dpkg-statoverride.md
    ├── dpkg-trigger.md
    ├── dpkg.md
    ├── dris.md
    ├── dstat.md
    ├── du.md
    ├── dump.md
    ├── e2fsck.md
    ├── e2label.md
    ├── echo.md
    ├── ed.md
    ├── edquota.md
    ├── egrep.md
    ├── eject.md
    ├── elinks.md
    ├── elm.md
    ├── emacs.md
    ├── enable.md
    ├── env.md
    ├── ethtool.md
    ├── ex.md
    ├── exec.md
    ├── exit.md
    ├── expand.md
    ├── export.md
    ├── exportfs.md
    ├── expr.md
    ├── false.md
    ├── fc.md
    ├── fdisk.md
    ├── fg.md
    ├── fgrep.md
    ├── figlet.md
    ├── file.md
    ├── find.md
    ├── findfs.md
    ├── finger.md
    ├── firewall-cmd.md
    ├── fishshell.md
    ├── fmt.md
    ├── fold.md
    ├── fping.md
    ├── free.md
    ├── fsck.md
    ├── ftp.md
    ├── ftpcount.md
    ├── ftpshut.md
    ├── ftptop.md
    ├── ftpwho.md
    ├── fuser.md
    ├── gcc.md
    ├── gcov.md
    ├── gdb.md
    ├── get_module.md
    ├── getcap.md
    ├── getenforce.md
    ├── getent.md
    ├── getfacl.md
    ├── getsebool.md
    ├── git.md
    ├── gpasswd.md
    ├── gpg.md
    ├── gpm.md
    ├── grep.md
    ├── groupadd.md
    ├── groupdel.md
    ├── groupmems.md
    ├── groupmod.md
    ├── groups.md
    ├── grpck.md
    ├── grpconv.md
    ├── grpunconv.md
    ├── grub.md
    ├── grub2-mkconfig.md
    ├── grub2-set-default.md
    ├── gunzip.md
    ├── gzexe.md
    ├── gzip.md
    ├── halt.md
    ├── hcitool.md
    ├── hdparm.md
    ├── head.md
    ├── help.md
    ├── hexdump.md
    ├── history.md
    ├── host.md
    ├── hostid.md
    ├── hostname.md
    ├── hostnamectl.md
    ├── hping3.md
    ├── htdigest.md
    ├── htop.md
    ├── htpasswd.md
    ├── hwclock.md
    ├── iconv.md
    ├── id.md
    ├── ifcfg.md
    ├── ifconfig.md
    ├── ifdown.md
    ├── ifstat.md
    ├── iftop.md
    ├── ifup.md
    ├── indent.md
    ├── info.md
    ├── init.md
    ├── inotifywait.md
    ├── insmod.md
    ├── install.md
    ├── iostat.md
    ├── iotop.md
    ├── ip.md
    ├── ip6tables-restore.md
    ├── ip6tables-save.md
    ├── ip6tables.md
    ├── ipcalc.md
    ├── ipcrm.md
    ├── ipcs.md
    ├── iperf.md
    ├── iptables-restore.md
    ├── iptables-save.md
    ├── iptables.md
    ├── iptraf.md
    ├── iptstate.md
    ├── iscsiadm.md
    ├── ispell.md
    ├── jed.md
    ├── jobs.md
    ├── joe.md
    ├── join.md
    ├── journalctl.md
    ├── jq.md
    ├── jwhois.md
    ├── kernelversion.md
    ├── kexec.md
    ├── kill.md
    ├── killall.md
    ├── last.md
    ├── lastb.md
    ├── lastlog.md
    ├── ld.md
    ├── ldconfig.md
    ├── ldd.md
    ├── less.md
    ├── let.md
    ├── lftp.md
    ├── lftpget.md
    ├── lha.md
    ├── lilo.md
    ├── ln.md
    ├── lnstat.md
    ├── local.md
    ├── locate.md
    ├── logger.md
    ├── login.md
    ├── logname.md
    ├── logout.md
    ├── logrotate.md
    ├── logsave.md
    ├── logwatch.md
    ├── look.md
    ├── losetup.md
    ├── lp.md
    ├── lpadmin.md
    ├── lpc.md
    ├── lpq.md
    ├── lpr.md
    ├── lprm.md
    ├── lpstat.md
    ├── ls.md
    ├── lsattr.md
    ├── lsb_release.md
    ├── lsblk.md
    ├── lscpu.md
    ├── lsmod.md
    ├── lsof.md
    ├── lspci.md
    ├── lsusb.md
    ├── ltrace.md
    ├── lvcreate.md
    ├── lvdisplay.md
    ├── lvextend.md
    ├── lvreduce.md
    ├── lvremove.md
    ├── lvresize.md
    ├── lvscan.md
    ├── lynx.md
    ├── mail.md
    ├── mailq.md
    ├── mailstat.md
    ├── make.md
    ├── man.md
    ├── mapfile.md
    ├── md5sum.md
    ├── mesg.md
    ├── mii-tool.md
    ├── mkbootdisk.md
    ├── mkcert.md
    ├── mkdir.md
    ├── mke2fs.md
    ├── mkfs.md
    ├── mkinitrd.md
    ├── mkisofs.md
    ├── mknod.md
    ├── mkswap.md
    ├── mktemp.md
    ├── modetest.md
    ├── modprobe.md
    ├── more.md
    ├── mount.md
    ├── mpstat.md
    ├── mtools.md
    ├── mtr.md
    ├── mv.md
    ├── mysql.md
    ├── mysqladmin.md
    ├── mysqldump.md
    ├── mysqlimport.md
    ├── mysqlshow.md
    ├── named-checkzone.md
    ├── nano.md
    ├── nc.md
    ├── ncftp.md
    ├── neofetch.md
    ├── nethogs.md
    ├── netstat.md
    ├── newusers.md
    ├── nfsstat.md
    ├── ngrep.md
    ├── nice.md
    ├── nisdomainname.md
    ├── nl.md
    ├── nm.md
    ├── nmap.md
    ├── nmcli.md
    ├── nohup.md
    ├── nologin.md
    ├── nproc.md
    ├── nslookup.md
    ├── nstat.md
    ├── ntpdate.md
    ├── ntsysv.md
    ├── objdump.md
    ├── od.md
    ├── openssl.md
    ├── pacman.md
    ├── parted.md
    ├── partprobe.md
    ├── passwd.md
    ├── paste.md
    ├── patch.md
    ├── pathchk.md
    ├── perl.md
    ├── pfctl.md
    ├── pgrep.md
    ├── php.md
    ├── pico.md
    ├── pidof.md
    ├── pidstat.md
    ├── pigz.md
    ├── ping.md
    ├── ping6.md
    ├── pip.md
    ├── pkexec.md
    ├── pkill.md
    ├── pmap.md
    ├── popd.md
    ├── poweroff.md
    ├── ppp-off.md
    ├── pr.md
    ├── printf.md
    ├── protoize.md
    ├── prtstat.md
    ├── ps.md
    ├── pssh.md
    ├── pstack.md
    ├── pstree.md
    ├── pushd.md
    ├── pv.md
    ├── pvchange.md
    ├── pvck.md
    ├── pvcreate.md
    ├── pvdisplay.md
    ├── pvremove.md
    ├── pvs.md
    ├── pvscan.md
    ├── pwck.md
    ├── pwconv.md
    ├── pwd.md
    ├── pwdx.md
    ├── pwunconv.md
    ├── quota.md
    ├── quotacheck.md
    ├── quotaoff.md
    ├── quotaon.md
    ├── rcconf.md
    ├── rcp.md
    ├── read.md
    ├── readelf.md
    ├── readonly.md
    ├── reboot.md
    ├── reject.md
    ├── rename.md
    ├── renice.md
    ├── reposync.md
    ├── repquota.md
    ├── resize.md
    ├── restore.md
    ├── restorecon.md
    ├── return.md
    ├── rev.md
    ├── rexec.md
    ├── rlogin.md
    ├── rm.md
    ├── rmdir.md
    ├── rmmod.md
    ├── route.md
    ├── rpm.md
    ├── rpm2cpio.md
    ├── rpmbuild.md
    ├── rpmdb.md
    ├── rpmquery.md
    ├── rpmsign.md
    ├── rpmverify.md
    ├── rsh.md
    ├── rsync.md
    ├── runlevel.md
    ├── sar.md
    ├── scp.md
    ├── screen.md
    ├── script.md
    ├── scriptreplay.md
    ├── sed.md
    ├── seinfo.md
    ├── semanage.md
    ├── sendmail.md
    ├── seq.md
    ├── service.md
    ├── sesearch.md
    ├── set.md
    ├── setfacl.md
    ├── setpci.md
    ├── setsebool.md
    ├── setsid.md
    ├── sftp-server.md
    ├── sftp.md
    ├── sh.md
    ├── sha256sum.md
    ├── shift.md
    ├── shopt.md
    ├── showmount.md
    ├── shuf.md
    ├── shutdown.md
    ├── skill.md
    ├── slabtop.md
    ├── sleep.md
    ├── slocate.md
    ├── smartmontools.md
    ├── smbclient.md
    ├── smbpasswd.md
    ├── sort.md
    ├── source.md
    ├── speedtest-cli.md
    ├── spell.md
    ├── split.md
    ├── squid.md
    ├── squidclient.md
    ├── ss.md
    ├── ssh-add.md
    ├── ssh-agent.md
    ├── ssh-copy-id.md
    ├── ssh-keygen.md
    ├── ssh-keyscan.md
    ├── ssh.md
    ├── sshd.md
    ├── sshpass.md
    ├── startx.md
    ├── stat.md
    ├── strace.md
    ├── strings.md
    ├── stty.md
    ├── su.md
    ├── sudo.md
    ├── sum.md
    ├── supervisord.md
    ├── suspend.md
    ├── swapoff.md
    ├── swapon.md
    ├── sync.md
    ├── sysctl.md
    ├── syslog.md
    ├── systemctl.md
    ├── systool.md
    ├── tac.md
    ├── tail.md
    ├── tailf.md
    ├── talk.md
    ├── tar.md
    ├── tcpdump.md
    ├── tcpreplay.md
    ├── tee.md
    ├── telinit.md
    ├── telnet.md
    ├── tempfile.md
    ├── test.md
    ├── tftp.md
    ├── time.md
    ├── timedatectl.md
    ├── times.md
    ├── tload.md
    ├── tmux.md
    ├── top.md
    ├── touch.md
    ├── tput.md
    ├── tr.md
    ├── tracepath.md
    ├── traceroute.md
    ├── trap.md
    ├── tree.md
    ├── true.md
    ├── tty.md
    ├── type.md
    ├── ufw.md
    ├── ulimit.md
    ├── umask.md
    ├── umount.md
    ├── unalias.md
    ├── uname.md
    ├── unarj.md
    ├── uncompress.md
    ├── unexpand.md
    ├── uniq.md
    ├── unlink.md
    ├── unprotoize.md
    ├── unrar.md
    ├── unset.md
    ├── unzip.md
    ├── updatedb.md
    ├── uptime.md
    ├── useradd.md
    ├── userdel.md
    ├── usermod.md
    ├── usernetctl.md
    ├── users.md
    ├── uucico.md
    ├── uupick.md
    ├── uuto.md
    ├── vdfuse.md
    ├── vgchange.md
    ├── vgconvert.md
    ├── vgcreate.md
    ├── vgdisplay.md
    ├── vgextend.md
    ├── vgreduce.md
    ├── vgremove.md
    ├── vgrename.md
    ├── vgscan.md
    ├── vi.md
    ├── vmstat.md
    ├── volname.md
    ├── w.md
    ├── wait.md
    ├── wall.md
    ├── watch.md
    ├── wc.md
    ├── wget.md
    ├── whatis.md
    ├── whereis.md
    ├── which.md
    ├── who.md
    ├── whoami.md
    ├── write.md
    ├── xargs.md
    ├── xauth.md
    ├── xclip.md
    ├── xhost.md
    ├── xinit.md
    ├── xlsatoms.md
    ├── xlsclients.md
    ├── xlsfonts.md
    ├── xrandr.md
    ├── xset.md
    ├── xz.md
    ├── yes.md
    ├── ypdomainname.md
    ├── yum.md
    ├── zcat.md
    ├── zfore.md
    ├── zip.md
    ├── zipinfo.md
    ├── zipsplit.md
    └── znew.md
├── dist
    ├── data.json
    └── data.min.json
├── k8s
    ├── README.md
    ├── helm
    │   └── charts
    │   │   └── linux-command
    │   │       ├── .helmignore
    │   │       ├── Chart.yaml
    │   │       ├── README.md
    │   │       ├── templates
    │   │           ├── _helpers.tpl
    │   │           ├── deployment.yaml
    │   │           └── service.yaml
    │   │       └── values.yaml
    └── linux-command.yaml
├── package.json
├── renovate.json
├── scripts
    ├── build.mjs
    ├── dash.mjs
    └── sitemap.js
├── template
    ├── contributors.ejs
    ├── details.ejs
    ├── hot.ejs
    ├── img
    │   ├── banner.svg
    │   ├── favicon.ico
    │   └── logo.svg
    ├── index.ejs
    ├── js
    │   ├── copy-to-clipboard.js
    │   └── index.js
    ├── list.ejs
    ├── partial
    │   ├── footer.ejs
    │   └── header.ejs
    ├── styl
    │   ├── index.styl
    │   └── mixins
    │   │   ├── markdown.styl
    │   │   └── reset.styl
    └── widget
    │   ├── footer.ejs
    │   └── search.ejs
└── vercel.json


/.gitattributes:
--------------------------------------------------------------------------------
1 | *.js linguist-language=html
2 | *.ejs linguist-language=html
3 | *.md linguist-detectable=true
4 | 


--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | ko_fi: jaywcjlove
2 | buy_me_a_coffee: jaywcjlove
3 | custom: ["https://www.paypal.me/kennyiseeyou", "https://jaywcjlove.github.io/#/sponsor"]
4 | 


--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | npm-debug.log
3 | package-lock.json
4 | .deploy
5 | .DS_Store
6 | 


--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | assets
2 | build/
3 | node_modules/
4 | template/
5 | .deploy
6 | .DS_Store
7 | .gitattributes
8 | 


--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | # https://lipanski.com/posts/smallest-docker-image-static-website
2 | # https://github.com/forksss/docker-static-website
3 | FROM wcjiang/docker-static-website:latest
4 | 
5 | # Copy the static website
6 | # Use the .dockerignore file to control what ends up inside the image!
7 | COPY ./.deploy .
8 | 


--------------------------------------------------------------------------------
/assets/Linux.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/Linux.gif


--------------------------------------------------------------------------------
/assets/alfred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/alfred.png


--------------------------------------------------------------------------------
/assets/chrome-extensions.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/chrome-extensions.gif


--------------------------------------------------------------------------------
/assets/dash-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/dash-icon.png


--------------------------------------------------------------------------------
/assets/qr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/qr.png


--------------------------------------------------------------------------------
/assets/vercel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/assets/vercel.png


--------------------------------------------------------------------------------
/command/accept.md:
--------------------------------------------------------------------------------
 1 | accept
 2 | ===
 3 | 
 4 | 指示打印系统接受发往指定目标打印机的打印任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **accept命令** 属于CUPS套件,用于指示打印系统接受发往指定目标打印机的打印任务。
 9 | 
10 | ###  语法
11 | 
12 | ```
13 | accept(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```
19 | -E:当连接到服务器时强制加密;
20 | -U:指定连接服务器时使用的用户名;
21 | -h:指定连接服务器名和端口号。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 目标:指定目标打印机。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/apachectl.md:
--------------------------------------------------------------------------------
 1 | apachectl
 2 | ===
 3 | 
 4 | Apache服务器前端控制工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **apachectl命令** 是Apache的Web服务器前端控制工具,用以启动、关闭和重新启动Web服务器进程。
 9 | 
10 | ###  语法
11 | 
12 | ```
13 | apachectl(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | * configtest:检查设置文件中的语法是否正确;
19 | * fullstatus:显示服务器完整的状态信息;
20 | * graceful:重新启动Apache服务器,但不会中断原有的连接;
21 | * help:显示帮助信息;
22 | * restart:重新启动Apache服务器;
23 | * start:启动Apache服务器;
24 | * status:显示服务器摘要的状态信息;
25 | * stop:停止Apache服务器。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/apt-key.md:
--------------------------------------------------------------------------------
 1 | apt-key
 2 | ===
 3 | 
 4 | 管理Debian Linux系统中的软件包密钥
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **apt-key命令** 用于管理Debian Linux系统中的软件包密钥。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | apt-key(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 操作指令:APT密钥操作指令。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | apt-key list          # 列出已保存在系统中key。
24 | apt-key add keyname   # 把下载的key添加到本地trusted数据库中。
25 | apt-key del keyname   # 从本地trusted数据库删除key。
26 | apt-key update        # 更新本地trusted数据库,删除过期没用的key。
27 | ```
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/apt-sortpkgs.md:
--------------------------------------------------------------------------------
 1 | apt-sortpkgs
 2 | ===
 3 | 
 4 | Debian Linux下对软件包索引文件进行排序的工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **apt-sortpkgs命令** 是Debian Linux下对软件包索引文件进行排序的简单工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | apt-sortpkgs(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s:使用源索引字段排序;
20 | -h:显示帮助信息。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件:指定要排序的包含debian包信息的索引文件。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/aptitude.md:
--------------------------------------------------------------------------------
 1 | aptitude
 2 | ===
 3 | 
 4 | Debian Linux系统中软件包管理工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **aptitude命令** 与apt-get命令一样,都是Debian Linux及其衍生系统中功能极其强大的包管理工具。与apt-get不同的是,aptitude在处理依赖问题上更佳一些。举例来说,aptitude在删除一个包时,会同时删除本身所依赖的包。这样,系统中不会残留无用的包,整个系统更为干净。它通过文本操作菜单和命令两种方式管理软件包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | aptitude(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:显示帮助信息;
20 | -d:仅下载软件包,不执行安装操作;
21 | -P:每一步操作都要求确认;
22 | -y:所有问题都回答“yes”;
23 | -v:显示附加信息;
24 | -u:启动时下载新的软件包列表。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 操作命令:用户管理软件包的操作命令。
30 | 
31 | ###  实例
32 | 
33 | 以下是我总结的一些常用aptitude命令,仅供参考:
34 | 
35 | ```shell
36 | aptitude update            # 更新可用的包列表
37 | aptitude upgrade           # 升级可用的包
38 | aptitude dist-upgrade      # 将系统升级到新的发行版
39 | aptitude install pkgname   # 安装包
40 | aptitude remove pkgname    # 删除包
41 | aptitude purge pkgname     # 删除包及其配置文件
42 | aptitude search string     # 搜索包
43 | aptitude show pkgname      # 显示包的详细信息
44 | aptitude clean             # 删除下载的包文件
45 | aptitude autoclean         # 仅删除过期的包文件
46 | ```
47 | 
48 | 当然,你也可以在文本界面模式中使用 aptitude。
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/arch.md:
--------------------------------------------------------------------------------
 1 | arch
 2 | ===
 3 | 
 4 | 显示当前主机的硬件架构类型
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | arch [OPTION]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 打印机器架构信息;`arch` 命令输出结果有:i386、i486、i586、alpha、sparc、arm、m68k、mips、ppc、i686等。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --help       显示帮助信息并退出。
20 | --version    显示版本信息并退出。
21 | ```
22 | 
23 | ## 例子
24 | 
25 | ```shell
26 | [root@localhost ~]# arch
27 | x86_64
28 | ```
29 | 
30 | ### 注意
31 | 
32 | 1. 该命令等价于 `uname -m`。
33 | 
34 | 2. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 arch`,`info coreutils 'arch invocation'`。
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/arj.md:
--------------------------------------------------------------------------------
 1 | arj
 2 | ===
 3 | 
 4 | 用于创建和管理.arj压缩包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **arj命令** 是 `.arj` 格式的压缩文件的管理器,用于创建和管理 `.arj` 压缩包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | arj(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *  操作指令:对  `.arj` 压缩包执行的操作指令;
19 | *  压缩包名称:指定要操作的arj压缩包名称。
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/command/arpd.md:
--------------------------------------------------------------------------------
 1 | arpd
 2 | ===
 3 | 
 4 | 收集免费ARP信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **arpd命令** 是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | arpd(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -l:将arp数据库输出到标准输出设备显示并退出;
20 | -f:指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似;
21 | -b:指定arpd数据库文件,默认的位置为“/var/lib/arpd.db”;
22 | -a:指定目标被认为死掉前查询的次数;
23 | -k:禁止通过内核发送广播查询;
24 | -n:设定缓冲失效时间。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 网络接口:指定网络接口。
30 | 
31 | ###  实例
32 | 
33 | 启动arpd进程:
34 | 
35 | ```shell
36 | arpd -b /var/tmp/arpd.db
37 | ```
38 | 
39 | 运行一段时间后,查看结果:
40 | 
41 | ```shell
42 | arpd -l -b /var/tmp/arpd.db
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/arptables.md:
--------------------------------------------------------------------------------
 1 | arptables
 2 | ===
 3 | 
 4 | 管理ARP包过滤规则表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **arptables命令** 用来设置、维护和检查Linux内核中的arp包过滤规则表。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | arptables(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -A:向规则链中追加规则;
20 | -D:从指定的链中删除规则;
21 | -l:向规则链中插入一条新的规则;
22 | -R:替换指定规则;
23 | -P:设置规则链的默认策略;
24 | -F:刷新指定规则链,将其中的所有规则链删除,但是不改变规则链的默认策略;
25 | -Z:将规则链计数器清零;
26 | -L:显示规则链中的规则列表;
27 | -X:删除指定的空用户自定义规则链;
28 | -h:显示指令帮助信息;
29 | -j:指定满足规则的添加时的目标;
30 | -s:指定要匹配ARP包的源ip地址;
31 | -d:指定要匹配ARP包的目的IP地址。
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/arpwatch.md:
--------------------------------------------------------------------------------
 1 | arpwatch
 2 | ===
 3 | 
 4 | 监听网络上ARP的记录
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **arpwatch命令** 用来监听网络上arp的记录。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | arpwatch(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:启动排错模式;
20 | -f<记录文件>:设置存储ARP记录的文件,预设为/var/arpwatch/arp.dat;
21 | -i<接口>:指定监听ARP的接口,预设的接口为eth0;
22 | -r<记录文件>:从指定的文件中读取ARP记录,而不是从网络上监听。
23 | ```
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/command/as.md:
--------------------------------------------------------------------------------
 1 | as
 2 | ===
 3 | 
 4 | 汇编语言编译器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **as命令** 是GNU组织推出的一款汇编语言编译器,它支持多种不同类型的处理器。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | as [选项] [参数]
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -ac:忽略失败条件;
20 | -ad:忽略调试指令;
21 | -ah:包括高级源;
22 | -al:包括装配;
23 | -am:包括宏扩展;
24 | -an:忽略形式处理;
25 | -as:包括符号;
26 | =file:设置列出文件的名字;
27 | --alternate:以交互宏模式开始;
28 | -f:跳过空白和注释预处理;
29 | -g:产生调试信息;
30 | -J:对于有符号溢出不显示警告信息;
31 | -L:在符号表中保留本地符号;
32 | -o:指定要生成的目标文件;
33 | --statistics:打印汇编所用的最大空间和总时间。
34 | ```
35 | 
36 | ### 参数
37 | 
38 | 汇编文件:指定要汇编的源文件。
39 | 
40 | ### 示例
41 | 
42 | 编译一个汇编文件并生成目标文件
43 | 
44 | ```shell
45 | as -o output.o source.s
46 | ```
47 | 
48 | 忽略调试指令并生成目标文件
49 | 
50 | ```shell
51 | as -ad -o output.o source.s
52 | ```
53 | 
54 | 生成包含调试信息的目标文件
55 | 
56 | ```shell
57 | as -g -o output.o source.s
58 | ```
59 | 
60 | 包括宏扩展并生成目标文件
61 | 
62 | ```shell
63 | as -am -o output.o source.s
64 | ```
65 | 
66 | 打印汇编所用的最大空间和总时间
67 | 
68 | ```shell
69 | as --statistics -o output.o source.s
70 | ```
71 | 
72 | 跳过空白和注释预处理并生成目标文件
73 | 
74 | ```shell
75 | as -f -o output.o source.s
76 | ```


--------------------------------------------------------------------------------
/command/atq.md:
--------------------------------------------------------------------------------
 1 | atq
 2 | ===
 3 | 
 4 | 列出当前用户的at任务列表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **atq命令** 显示系统中待执行的任务列表,也就是列出当前用户的at任务列表。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | atq [-V] [-q 队列] [-v]
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -V:显示版本号;
20 | -q:查询指定队列的任务。
21 | ```
22 | 
23 | ### 示例
24 | 
25 | 创建一个在10分钟后执行的任务,并列出当前用户的任务列表:
26 | 
27 | ```shell
28 | [root@localhost ~]# at now + 10 minutes
29 | at> echo 1111
30 | at> <EOT>
31 | job 3 at Fri Apr 26 12:56:00 2013
32 | ```
33 | 
34 | 使用`atq`命令查看当前用户的任务列表:
35 | 
36 | ```shell
37 | [root@localhost ~]# atq
38 | 3       Fri Apr 26 12:56:00 2013 a root
39 | ```
40 | 
41 | 查询指定队列的任务:
42 | 
43 | ```shell
44 | [root@localhost ~]# at -q a now + 10 minutes
45 | at> echo "Task in queue a"
46 | at> <EOT>
47 | job 4 at Fri Apr 26 13:06:00 2013
48 | ```
49 | 
50 | 使用`atq`命令查看队列`a`中的任务:
51 | 
52 | ```shell
53 | [root@localhost ~]# atq -q a
54 | 4       Fri Apr 26 13:06:00 2013 a root
55 | ```
56 | 
57 | 显示`atq`命令的版本号:
58 | 
59 | ```shell
60 | [root@localhost ~]# atq -V
61 | atq (GNU at) 3.1.20
62 | ```


--------------------------------------------------------------------------------
/command/atrm.md:
--------------------------------------------------------------------------------
 1 | atrm
 2 | ===
 3 | 
 4 | 删除待执行任务队列中的指定任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **atrm命令** 用于删除待执行任务队列中的指定任务。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | atrm(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -V:显示版本号。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 任务号:指定待执行队列中要删除的任务。
25 | 
26 | ###  实例
27 | 
28 | 删除已经排队的任务
29 | 
30 | ```shell
31 | atq        # 显示当前已经设置的任务
32 | 2 Mon May 17 08:00:00 2010 a root
33 | 1 Sat May 15 17:00:00 2010 a root
34 | 
35 | atrm 2     # 删除任务2
36 | ```
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/base64.md:
--------------------------------------------------------------------------------
 1 | base64
 2 | ===
 3 | 
 4 | base64 编码/解码文件或标准输入输出
 5 | 
 6 | ### 描述
 7 | 
 8 | base64将`文件`或`标准输入`编码或解码为标准输出; 
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | base64 [OPTION]... [FILE]
14 | ```
15 | 
16 | ### 参数
17 | 
18 | ```shell
19 | -d, --decode         # 解码
20 | -i, --ignore-garbage # 解码时,忽略非字母字符
21 | -w, --wrap=COLS      # 在指定的字符数后自动换行(默认为76), 0 为禁用自动换行
22 | 
23 | --help      # 显示此帮助说明并退出
24 | --version   # 输出版本信息并退出
25 | ```
26 | 
27 | ### 实例
28 | 
29 | 编码字符串
30 | 
31 | ```bash
32 | printf foo|base64
33 | ```
34 | 
35 | 编码文件
36 | 
37 | ```bash
38 | base64 file
39 | ```
40 | 
41 | 解码
42 | 
43 | ```bash
44 | printf Zm9v|base64 -d
45 | ```
46 | 
47 | 解码文件
48 | 
49 | ```bash
50 | base64 -d file
51 | ```
52 | 
53 | 


--------------------------------------------------------------------------------
/command/basename.md:
--------------------------------------------------------------------------------
 1 | basename
 2 | ===
 3 | 
 4 | 打印目录或者文件的基本名称
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **basename命令** 用于打印目录或者文件的基本名称。basename和dirname命令通常用于shell脚本中的命令替换来指定和指定的输入文件名称有所差异的输出文件名称。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | basename(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --help:显示帮助;
20 | --version:显示版本号。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | * 文件:带路径信息的文件;
26 | * 后缀:可选参数,指定要去除的文件后缀字符串。
27 | 
28 | ###  实例
29 | 
30 | 1、要显示一个shell变量的基本名称,请输入:
31 | 
32 | ```shell
33 | basename $WORKFILE
34 | ```
35 | 
36 | 此命令显示指定给shell变量WORKFILE的值的基本名称。如果WORKFILE变量的值是`/home/jim/program.c`文件,则此命令显示program.c。
37 | 
38 | 要构造一个和另一个文件名称相同(除了后缀)的文件名称,请输入:
39 | 
40 | ```shell
41 | OFILE=`basename $1 .c`.o
42 | ```
43 | 
44 | 此命令指定给 OFILE 文件第一个位置上的参数($1)的值,但它的 .c 后缀更改至 .o。如果 $1 是 /home/jim/program.c 文件,则 OFILE 成为 program.o。因为 program.o 仅是一个基本文件名称,它标识在当前目录中的文件。
45 | 
46 | 
47 | 


--------------------------------------------------------------------------------
/command/batch.md:
--------------------------------------------------------------------------------
 1 | batch
 2 | ===
 3 | 
 4 | 在系统不繁忙的时候执行定时任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **batch命令** 用于在指定时间,当系统不繁忙时执行任务,用法与at相似。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | batch(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:指定包含具体指令的任务文件;
20 | -q:指定新任务的队列名称;
21 | -m:任务执行完后向用户发送E-mail。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 日期时间:指定任务执行的日期时间。
27 | 
28 | ###  实例
29 | 
30 | ```shell
31 | batch 
32 | at> echo 1234
33 | at> <EOT>
34 | job 5 at Sun Apr 28 08:49:00 2013
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/bg.md:
--------------------------------------------------------------------------------
 1 | bg
 2 | ===
 3 | 
 4 | 将前台终端作业移动到后台运行
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | bg [job_spec ...]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 用于将作业放到后台运行,使前台可以执行其他任务。该命令的运行效果与在指令后面添加符号`&`的效果是相同的,都是将其放到系统后台执行。
15 | 
16 | - 若后台任务中只有一个,则使用该命令时可以省略任务号。
17 | 
18 | ## 参数
19 | 
20 | job_spec(可选):指定要移动到后台执行的作业标识符,可以是一到多个。
21 | 
22 | ## 返回值
23 | 
24 | 返回成功除非未开启作业控制或发生了错误。
25 | 
26 | ## 例子
27 | 
28 | ```shell
29 | # 运行sleep命令,然后按下ctrl+z。
30 | sleep 60
31 | ^Z
32 | [1]+  Stopped                 sleep 60
33 | 
34 | # 使用bg命令使得作业在后台运行。
35 | bg %1
36 | 
37 | # 返回信息:
38 | [1]+ sleep 60 &
39 | ```
40 | 
41 | ### 注意
42 | 
43 | 1. `bash`的作业控制命令包括`bg fg kill wait disown suspend`。
44 | 2. 该命令需要`set`选项`monitor`处于开启状态时才能执行;查看作业控制状态:输入`set -o`查看`monitor`行;执行`set -o monitor`或`set -m`开启该选项。
45 | 3. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
46 | 
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/blockdev.md:
--------------------------------------------------------------------------------
 1 | blockdev
 2 | ===
 3 | 
 4 | 从命令行调用区块设备控制程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **blockdev命令** 在命令调用“ioxtls”函数,以实现对设备的控制。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | blockdev(选项)(参数)
14 | ```
15 | 
16 | 选项
17 | 
18 | ```shell
19 | -V:打印版本号并退出;
20 | -q:安静模式;
21 | -v:详细信息模式;
22 | --setro:只读;
23 | --setrw:只写;
24 | --getro:打印只读状态,“1”表示只读,“0”表示非只读;
25 | --getss:打印扇区大小。通常为521;
26 | --flushbufs:刷新缓冲区;
27 | --rereadpt:重新读取分区表。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 设备文件名:指定要操作的磁盘的设备文件名。
33 | 
34 | ###  实例
35 | 
36 | 设置设备为只读:
37 | 
38 | ```shell
39 | blockdev --setro /dev/hda4
40 | ```
41 | 
42 | 读取设备是否为只读:
43 | 
44 | ```shell
45 | blockdev --getro /dev/hda4
46 | ```
47 | 
48 | 设置设别为可读写:
49 | 
50 | ```shell
51 | blockdev --setrw /dev/hda4
52 | ```
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/command/bmodinfo.md:
--------------------------------------------------------------------------------
 1 | bmodinfo
 2 | ===
 3 | 
 4 | 显示给定模块的详细信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bmodinfo命令** 用于显示给定模块的详细信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bmodinfo(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:显示模块作者;
20 | -d:显示模块的描述信息;
21 | -l:显示模块的许可信息;
22 | -p:显示模块的参数信息;
23 | -n:显示模块对应的文字信息;
24 | -0:用ASCII码的0字符分割字段值,而不使用新行。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 模块名:要显示详细信息的模块名称。
30 | 
31 | ###  实例
32 | 
33 | 显示sg模块的信息:
34 | 
35 | ```shell
36 | [root@localhost ~]# modinfo sg
37 | filename:    /lib/modules/2.6.9-42.ELsmp/kernel/drivers/scsi/sg.ko
38 | author:     Douglas Gilbert
39 | description:  SCSI generic (sg) driver
40 | license:    GPL
41 | version:    3.5.31 B0B0CB1BB59F0669A1F0D6B
42 | parm:      def_reserved_size:size of buffer reserved for each fd
43 | parm:      allow_dio:allow direct I/O (default: 0 (disallow))
44 | alias:     char-major-21-*
45 | vermagic:    2.6.9-42.ELsmp SMP 686 REGPARM 4KSTACKS gcc-3.4
46 | depends:    scsi_mod
47 | ```
48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/command/break.md:
--------------------------------------------------------------------------------
 1 | break
 2 | ===
 3 | 
 4 | 结束for,while或until循环。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | break [n]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 结束for,while或until循环,可指定退出几层循环。
15 | 
16 | 
17 | ## 参数
18 | 
19 | n(可选):大于等于1的整数,用于指定退出几层循环。
20 | 
21 | ## 返回值
22 | 
23 | 返回成功除非n小于1。
24 | 
25 | ## 例子
26 | 
27 | ```shell
28 | # break的可选参数n缺省值为1。
29 | # 从外层for循环继续执行。
30 | for((i=3;i>0;i--)); do
31 |   for((j=3;j>0;j--)); do
32 |     if((j==2)); then
33 |       # 换成break 1时结果一样
34 |       break
35 |     fi
36 |   printf "%s %s\n" ${i} ${j}
37 |   done
38 | done
39 | # 输出结果
40 | 3 3
41 | 2 3
42 | 1 3
43 | ```
44 | 
45 | ```shell
46 | # 当n为2时:
47 | # 退出两层循环,结束。
48 | for((i=3;i>0;i--)); do
49 |   for((j=3;j>0;j--)); do
50 |     if((j==2)); then
51 |       break 2
52 |     fi
53 |   printf "%s %s\n" ${i} ${j}
54 |   done
55 | done
56 | # 输出结果
57 | 3 3
58 | ```
59 | 
60 | ### 注意
61 | 
62 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
63 | 
64 | 
65 | 
66 | 


--------------------------------------------------------------------------------
/command/bunzip2.md:
--------------------------------------------------------------------------------
 1 | bunzip2
 2 | ===
 3 | 
 4 | 可解压缩.bz2格式的压缩文件。 
 5 | 
 6 | ## 补充说明
 7 | 
 8 | bzip2可以对文件进行压缩与解压缩。此命令类似于“gzip/gunzip”命令,只能对文件进行压缩。对于目录只能压缩目录下的所有文件,压缩完成后,在目录下生成以“.bz2”为后缀的压缩包。**bunzip2其实是bzip2的符号链接**,即软链接,因此解压都可以通过bzip2 -d实现。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bunzip2(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f或--force:解压缩时,若输出的文件与现有文件同名时,预设不会覆盖现有的文件;
20 | -k或——keep:在解压缩后,预设会删除原来的压缩文件。若要保留压缩文件,请使用此参数;
21 | -s或——small:降低程序执行时,内存的使用量;
22 | -v或——verbose:解压缩文件时,显示详细的信息;
23 | -l,--license,-V或——version:显示版本信息。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | .bz2压缩包:指定需要解压缩的.bz2压缩包。
29 | 
30 | ###  实例
31 | 
32 | 将`/opt`目录下的etc.zip、var.zip和backup.zip进行压缩,设置压缩率为最高,同时在压缩完毕后不删除原始文件,显示压缩过程的详细信息。
33 | 
34 | ```shell
35 | bzip2 -9vk /opt/etc.zip /opt/var.zip /opt/backup.zip
36 | ```
37 | 
38 | 压缩完毕后,在`/opt`下就会生成相应的etc.zip.bz2、var.zip.bz2和backup.zip.bz2文件。
39 | 
40 | 解压缩:
41 | 
42 | 
43 | ```bash
44 | bunzip2 -v /opt/etc.zip.bz2
45 | ```
46 | 
47 | 
48 | 


--------------------------------------------------------------------------------
/command/bye.md:
--------------------------------------------------------------------------------
 1 | bye
 2 | ===
 3 | 
 4 | 命令用于中断FTP连线并结束程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bye命令** 在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行。
 9 | 
10 | 
11 | ###  语法
12 | 
13 | ```shell
14 | bye
15 | ```
16 | 
17 | ### 实例
18 | 
19 | ```shell
20 | bye
21 | ```


--------------------------------------------------------------------------------
/command/bzcat.md:
--------------------------------------------------------------------------------
 1 | bzcat
 2 | ===
 3 | 
 4 | 不解压,直接查看指定的.bz2文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzcat命令** 无需解压缩指定的.bz2文件,即可显示解压缩后的文件内容。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzcat(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | .bz2压缩文件:指定要显示内容的.bz2压缩文件。
19 | 
20 | ###  实例
21 | 
22 | 将`/tmp/man.config`以bzip2格式压缩:
23 | 
24 | ```shell
25 | bzip2 -z man.config
26 | ```
27 | 
28 | 此时man.config会变成man.config.bz2
29 | 
30 | 将上面的压缩文件内容读出来:
31 | 
32 | ```shell
33 | bzcat man.config.bz2
34 | ```
35 | 
36 | 此时屏幕上会显示 man.config.bz2 解压缩之后的文件内容。
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/bzcmp.md:
--------------------------------------------------------------------------------
 1 | bzcmp
 2 | ===
 3 | 
 4 | 比较两个压缩包中的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzcmp命令** 主要功能是在不真正解压缩.bz2压缩包的情况下,比较两个压缩包中的文件,省去了解压缩后在调用cmp命令的过程。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzcmp(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | * 文件1:指定要比较的第一个.bz2压缩包;
19 | * 文件2:指定要比较的第二个.bz2压缩包。
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/command/bzdiff.md:
--------------------------------------------------------------------------------
 1 | bzdiff
 2 | ===
 3 | 
 4 | 直接比较两个.bz2压缩包中文件的不同
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzdiff命令** 用于直接比较两个“.bz2”压缩包中文件的不同,省去了解压缩后再调用diff命令的过程。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzdiff(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *   文件1:指定要比较的第一个.bz2压缩包;
19 | *   文件2:指定要比较的第二个.bz2压缩包。
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/command/bzgrep.md:
--------------------------------------------------------------------------------
 1 | bzgrep
 2 | ===
 3 | 
 4 | 使用正则表达式搜索.bz2压缩包中文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzgrep命令** 使用正则表达式搜索“.bz2”压缩包中文件,将匹配的行显示到标注输出。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzgrep(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *   搜索模式:指定要搜索的模式;
19 | *   .bz2文件:指定要搜索的.bz2压缩包。
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/command/bzip2recover.md:
--------------------------------------------------------------------------------
 1 | bzip2recover
 2 | ===
 3 | 
 4 | 恢复被破坏的.bz2压缩包中的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzip2recover命令** 可用于恢复被破坏的“.bz2”压缩包中的文件。
 9 | 
10 | bzip2是以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover,试着将文件中的区块隔开来,以便解压缩正常的区块。通常只适用在压缩文件很大的情况。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | bzip2recover(参数)
16 | ```
17 | 
18 | ###  参数
19 | 
20 | 文件:指定要恢复数据的.bz2压缩包。
21 | 
22 | 
23 | 


--------------------------------------------------------------------------------
/command/bzless.md:
--------------------------------------------------------------------------------
 1 | bzless
 2 | ===
 3 | 
 4 | 增强.bz2压缩包查看器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzless命令** 是增强“.bz2”压缩包查看器,bzless比bzmore命令功能更加强大。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzless(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定要分屏显示的.bz2压缩包。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/bzmore.md:
--------------------------------------------------------------------------------
 1 | bzmore
 2 | ===
 3 | 
 4 | 查看bzip2压缩过的文本文件的内容
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **bzmore命令** 用于查看bzip2压缩过的文本文件的内容,当下一屏显示不下时可以实现分屏显示。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | bzmore(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定要分屏显示的.bz2压缩包。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/cancel.md:
--------------------------------------------------------------------------------
 1 | cancel
 2 | ===
 3 | 
 4 | 取消已存在的打印任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **cancel命令** 用于取消已存在的打印任务。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | cancel(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:取消所有打印任务;
20 | -E:当连接到服务器时强制使用加密;
21 | -U:指定连接服务器时使用的用户名;
22 | -u:指定打印任务所属的用户;
23 | -h:指定连接的服务器名和端口号。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | 打印任务号:指定要取消的打印任务编号。
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/cdrecord.md:
--------------------------------------------------------------------------------
 1 | cdrecord
 2 | ===
 3 | 
 4 | Linux系统下光盘刻录功能命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **cdrecord命令** 用于Linux系统下光盘刻录,它支持cd和DVD格式。linux下一般都带有cdrecord软件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | cdrecord(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:显示刻录光盘的详细过程;
20 | -eject:刻录完成后弹出光盘;
21 | speed=<刻录倍速>:指定光盘刻录的倍速;
22 | dev=<刻录机设备号>:指定使用“-scanbus”参数扫描到的刻录机的设备号;
23 | -scanbus:扫描系统中可用的刻录机。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | ISO文件:指定刻录光盘使用的ISO映像文件。
29 | 
30 | ###  实例
31 | 
32 | 查看系统所有 CD-R(w) 设备:
33 | 
34 | ```shell
35 | cdrecord -scanbus
36 | scsibus0:
37 |   0,0,0     0) *
38 |   0,1,0     1) *
39 |   0,2,0     2) *
40 |   0,3,0     3) 'HP      ' 'CD-Writer+ 9200 ' '1.0c' Removable CD-ROM
41 | ```
42 | 
43 | 用iso文件刻录一张光盘:
44 | 
45 | ```shell
46 | cdrecord -v -eject speed=4 dev=0,3,0 backup.iso
47 | ```
48 | 
49 | 参数解释
50 | 
51 | * -v:显示刻录光盘的详细过程
52 | * -eject:刻完自动弹出光盘
53 | * speed=4 dev=0,3,0:四速刻录到HP CD-writer设备上。
54 | 
55 | 擦写光驱:
56 | 
57 | ```shell
58 | cdrecord --dev=0,3,0 --blank=fast
59 | ```
60 | 
61 | 
62 | 


--------------------------------------------------------------------------------
/command/chattr.md:
--------------------------------------------------------------------------------
 1 | chattr
 2 | ===
 3 | 
 4 | 用来改变文件属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **chattr命令** 用来改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | chattr(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | a:让文件或目录仅供附加用途;
20 | b:不更新文件或目录的最后存取时间;
21 | c:将文件或目录压缩后存放;
22 | d:将文件或目录排除在倾倒操作之外;
23 | i:不得任意更动文件或目录;
24 | s:保密性删除文件或目录;
25 | S:即时更新文件或目录;
26 | u:预防意外删除。
27 | ```
28 | 
29 | ```shell
30 | -R:递归处理,将指令目录下的所有文件及子目录一并处理;
31 | -v<版本编号>:设置文件或目录版本;
32 | -V:显示指令执行过程;
33 | +<属性>:开启文件或目录的该项属性;
34 | -<属性>:关闭文件或目录的该项属性;
35 | =<属性>:指定文件或目录的该项属性。
36 | ```
37 | 
38 | ###  实例
39 | 
40 | 用chattr命令防止系统中某个关键文件被修改:
41 | 
42 | ```shell
43 | chattr +i /etc/fstab
44 | ```
45 | 
46 | 然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。
47 | 
48 | 让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:
49 | 
50 | ```shell
51 | chattr +a /data1/user_act.log
52 | ```
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/command/chown.md:
--------------------------------------------------------------------------------
 1 | chown
 2 | ===
 3 | 
 4 | 用来变更文件或目录的拥有者或所属群组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **chown命令** 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
 9 | 
10 | 只有文件主和超级用户才可以使用该命令。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | chown(选项)(参数)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -c或——changes:效果类似“-v”参数,但仅回报更改的部分;
22 | -f或--quite或——silent:不显示错误信息;
23 | -h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
24 | -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
25 | -v或——version:显示指令执行过程;
26 | --dereference:效果和“-h”参数相同;
27 | --help:在线帮助;
28 | --reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
29 | --version:显示版本信息。
30 | ```
31 | 
32 | ###  参数
33 | 
34 | 用户:组:指定所有者和所属工作组。当省略“:组”,仅改变文件所有者;  
35 | 文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。
36 | 
37 | ###  实例
38 | 
39 | 将目录`/usr/meng`及其下面的所有文件、子目录的文件主改成 liu:
40 | 
41 | ```shell
42 | chown -R liu /usr/meng
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/chpasswd.md:
--------------------------------------------------------------------------------
 1 | chpasswd
 2 | ===
 3 | 
 4 | 批量更新用户口令的工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **chpasswd命令** 是批量更新用户口令的工具,是把一个文件内容重新定向添加到`/etc/shadow`中。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | chpasswd(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -e:输入的密码是加密后的密文;
20 | -h:显示帮助信息并退出;
21 | -m:当被支持的密码未被加密时,使用MD5加密代替DES加密。
22 | ```
23 | 
24 | ###  实例
25 | 
26 | 先创建用户密码对应文件,格式为`username:password`,如`abc:abc123`,必须以这种格式来书写,并且不能有空行,保存成文本文件user.txt,然后执行chpasswd命令:
27 | 
28 | ```shell
29 | chpasswd < user.txt
30 | ```
31 | 
32 | 以上是运用chpasswd命令来批量修改密码。是linux系统管理中的捷径。
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/cksum.md:
--------------------------------------------------------------------------------
 1 | cksum
 2 | ===
 3 | 
 4 | 检查文件的CRC是否正确
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **cksum命令** 是检查文件的CRC是否正确,确保文件从一个系统传输到另一个系统的过程中不被损坏。这种方法要求校验和在源系统中被计算出来,在目的系统中又被计算一次,两个数字进行比较,如果校验和相等,则该文件被认为是正确传输了。
 9 | 
10 | 注意:CRC是指一种排错检查方法,即循环冗余校验法。
11 | 
12 | 指定文件交由cksum命令进行校验后,会返回校验结果供用户核对文件是否正确无误。若不指定任何文件名称或是所给予的文件名为"-",则cksum命令会从标准输入设备中读取数据。
13 | 
14 | ###  语法
15 | 
16 | ```shell
17 | cksum(选项)(参数)
18 | ```
19 | 
20 | ###  选项
21 | 
22 | ```shell
23 | --help:在线帮助;
24 | --version:显示版本信息。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 文件:指定要计算校验的版本信息。
30 | 
31 | ###  实例
32 | 
33 | 使用cksum命令计算文件"testfile1"的完整性,输入如下命令:
34 | 
35 | ```shell
36 | cksum testfile1            #对指定文件进行CRC校验
37 | ```
38 | 
39 | 以上命令执行后,将输出校验码等相关的信息,具体输出信息如下所示:
40 | 
41 | ```shell
42 | 1263453430 78 testfile1     #输出信息
43 | ```
44 | 
45 | 上面的输出信息中,"1263453430"表示校验码,"78"表示字节数。
46 | 
47 | 注意:如果文件中有任何字符被修改,都将改变计算后CRC校验码的值。
48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/command/clear.md:
--------------------------------------------------------------------------------
 1 | clear
 2 | ===
 3 | 
 4 | 清除当前屏幕终端上的任何信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **clear命令** 用于清除当前屏幕终端上的任何信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | clear
14 | ```
15 | 
16 | ###  实例
17 | 
18 | 直接输入clear命令当前终端上的任何信息就可被清除。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/col.md:
--------------------------------------------------------------------------------
 1 | col
 2 | ===
 3 | 
 4 | 过滤控制字符
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **col命令** 是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备。在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符`>`和`>>`,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则能有效滤除这些控制字符。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | col(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -b:过滤掉所有的控制字符,包括RLF和HRLF;
20 | -f:滤掉RLF字符,但允许将HRLF字符呈现出来;
21 | -x:以多个空格字符来表示跳格字符;
22 | -l<缓冲区列数>:预设的内存缓冲区有128列,用户可以自行指定缓冲区的大小。
23 | ```
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/command/colrm.md:
--------------------------------------------------------------------------------
 1 | colrm
 2 | ===
 3 | 
 4 | 删除文件中的指定列
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **colrm命令** 用于删除文件中的指定列。colrm命令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则colrm命令不会过滤任何一行。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | colrm(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *   起始列号:指定要删除的指定列;
19 | *   结尾列号:指定要删除的结尾列。
20 | 
21 | 
22 | 


--------------------------------------------------------------------------------
/command/command.md:
--------------------------------------------------------------------------------
 1 | command
 2 | ===
 3 | 
 4 | 调用并执行指定的命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **command命令** 调用指定的指令并执行,命令执行时不查询shell函数。command命令只能够执行shell内部的命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | command(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 指令:需要调用的指令及参数。
19 | 
20 | ###  实例
21 | 
22 | 使用command命令调用执行`echo Linux`,输入如下命令:
23 | 
24 | ```shell
25 | command echo Linux            #调用执行shell内部指令
26 | ```
27 | 
28 | 上面的命令执行后,将调用执行命令`echo Linux`,其执行结果如下:
29 | 
30 | ```shell
31 | Linux
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/consoletype.md:
--------------------------------------------------------------------------------
 1 | consoletype
 2 | ===
 3 | 
 4 | 输出已连接的终端类型
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **consoletype命令** 用于打印已连接的终端类型到标准输出,并能够检查已连接的终端是当前终端还是虚拟终端。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | consoletype
14 | ```
15 | 
16 | ###  实例
17 | 
18 | ```shell
19 | [root@localhost ~]# consoletype
20 | pty
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/continue.md:
--------------------------------------------------------------------------------
 1 | continue
 2 | ===
 3 | 
 4 | 结束本次循环,继续执行下一个for,while或until循环。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | continue [n]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 结束本次循环,继续执行下一个for,while或until循环;可指定从第几层循环继续执行。
15 | 
16 | 
17 | ## 参数
18 | 
19 | n(可选):大于等于1的整数,用于指定从第几层循环继续执行。
20 | 
21 | ## 返回值
22 | 
23 | 返回状态为成功除非n小于1。
24 | 
25 | ## 例子
26 | 
27 | ```shell
28 | # continue的可选参数n缺省值为1。
29 | for((i=3;i>0;i--)); do
30 |   # 跳到内层for循环继续执行。
31 |   for((j=3;j>0;j--)); do
32 |     if((j==2)); then
33 |       # 换成continue 1时结果一样
34 |       continue
35 |     fi
36 |   printf "%s %s\n" ${i} ${j}
37 |   done
38 | done
39 | # 输出结果
40 | 3 3
41 | 3 1
42 | 2 3
43 | 2 1
44 | 1 3
45 | 1 1
46 | ```
47 | 
48 | ```shell
49 | # 当n为2时:
50 | # 跳到外层for循环继续执行。
51 | for((i=3;i>0;i--)); do
52 |   for((j=3;j>0;j--)); do
53 |     if((j==2)); then
54 |       continue 2
55 |     fi
56 |   printf "%s %s\n" ${i} ${j}
57 |   done
58 | done
59 | # 输出结果
60 | 3 3
61 | 2 3
62 | 1 3
63 | ```
64 | 
65 | ### 注意
66 | 
67 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
68 | 
69 | 
70 | 
71 | 


--------------------------------------------------------------------------------
/command/convertquota.md:
--------------------------------------------------------------------------------
 1 | convertquota
 2 | ===
 3 | 
 4 | 把老的配额文件转换为新的格式
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **convertquota命令** 用于将老的磁盘额数据文件(“quota.user”和“quota.group”)转换为新格式的文件(“quota.user”和“quota.group”)。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | convertquota(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -u:仅转换用户磁盘配额数据文件;
20 | -g:仅转换组磁盘配额数据文件;
21 | -f:将老的磁盘配额文件转换为新的格式;
22 | -e:将新的文件格式从大字节序换为小字节序。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 文件系统:指定要转换磁盘配额数据文件格式的文件系统(硬盘分区)。
28 | 
29 | ###  实例
30 | 
31 | 使用convertquota指令转换指定文件系统`/data`的磁盘配额数据文件。在命令行中输入下面的命令:
32 | 
33 | ```shell
34 | convertquota -u /data     //转换文件系统"/data"上的用户磁盘配额文件
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/cupsdisable.md:
--------------------------------------------------------------------------------
 1 | cupsdisable
 2 | ===
 3 | 
 4 | 停止指定的打印机
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **cupsdisable命令** 用于停止指定的打印机。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | cupsdisable(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:当连接到服务器时强制使用加密;
20 | -U:指定连接服务器时使用的用户名;
21 | -u:指定打印任务所属的用户;
22 | -c:取消指定打印机的所有打印任务;
23 | -h:指定连接的服务器名和端口号;
24 | -r:停止打印机的原因。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 目标:指定目标打印机。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/cupsenable.md:
--------------------------------------------------------------------------------
 1 | cupsenable
 2 | ===
 3 | 
 4 | 启动指定的打印机
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **cupsenable命令** 用于启动指定的打印机。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | cupsenable(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:当连接到服务器时强制使用加密;
20 | -U:指定连接服务器时使用的用户名;
21 | -u:指定打印任务所属的用户;
22 | -h:指定连接的服务器名和端口号;
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 目标:指定目标打印机。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/dhclient.md:
--------------------------------------------------------------------------------
 1 | dhclient
 2 | ===
 3 | 
 4 | 动态获取或释放IP地址
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dhclient命令** 使用动态主机配置协议动态的配置网络接口的网络参数。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dhclient(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | 0:指定dhcp客户端监听的端口号;
20 | -d:总是以前台方式运行程序;
21 | -q:安静模式,不打印任何错误的提示信息;
22 | -r:释放ip地址。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 网络接口:操作的网络接口。
28 | 
29 | ###  实例
30 | 
31 | ```shell
32 | dhclient -r     #释放IP
33 | dhclient        #获取IP
34 | ```
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/diff3.md:
--------------------------------------------------------------------------------
 1 | diff3
 2 | ===
 3 | 
 4 | 比较3个文件不同的地方
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **diff3命令** 用于比较3个文件,将3个文件的不同的地方显示到标准输出。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | diff3(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:把所有的文件都当做文本文件按照行为单位进行比较,即给定的文件不是文本文件;
20 | -A:合并第2个文件和第3个文件之间的不同到第1个文件中,有冲突内容用括号括起来;
21 | -B:与选项“-A”功能相同,但是不显示冲突的内容;
22 | -e/--ed:生成一个“-ed”脚本,用于将第2个文件和第3个文件之间的不同合并到第1个文件中;
23 | --easy-only:除了不显示互相重叠的变化,与选项“-e”的功能相同;
24 | -i:为了和system V系统兼容,在“ed”脚本的最后生成“w”和“q”命令。此选项必须和选项“-AeExX3”连用,但是不能和“-m”连用;
25 | --initial-tab:在正常格式的行的文本前,输出一个TAB字符而非两个空白字符。此选项将导致在行中TAB字符的对齐方式看上去规范。
26 | ```
27 | 
28 | ###  参数
29 | 
30 | * 文件1:指定要比较的第1个文件;
31 | * 文件2:指定要比较的第2个文件;
32 | * 文件3:指定要比较的第3个文件。
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/dirname.md:
--------------------------------------------------------------------------------
 1 | dirname
 2 | ===
 3 | 
 4 | 去除文件名中的非目录部分
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dirname命令** 去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个`/`及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个`/`后无字符,dirname 命令使用倒数第二个`/`,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dirname(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --help:显示帮助;
20 | --version:显示版本号。
21 | ```
22 | 
23 | ###  实例
24 | 
25 | ```shell
26 | dirname //
27 | 结果为 /
28 | 
29 | dirname /a/b/
30 | 结果为:/a
31 | 
32 | dirname a
33 | 结果为 .
34 | 
35 | dirname a/b
36 | 结果为路径名 a
37 | ```
38 | 
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/dnsdomainname.md:
--------------------------------------------------------------------------------
 1 | dnsdomainname
 2 | ===
 3 | 
 4 | 定义DNS系统中FQDN名称的域名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dnsdomainname命令** 用于定义DNS系统中FQDN名称中的域名。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dnsdomainname(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:详细信息模式,输出指令执行的详细信息。
20 | ```
21 | 
22 | ###  实例
23 | 
24 | ```shell
25 | [root@AY1307311912260196fcZ ~]# dnsdomainname -v
26 | gethostname()=`AY1307311912260196fcZ'
27 | Resolving `AY1307311912260196fcZ' ...
28 | Result: h_name=`AY1307311912260196fcZ'
29 | Result: h_addr_list=`10.160.7.81'
30 | ```
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/domainname.md:
--------------------------------------------------------------------------------
 1 | domainname
 2 | ===
 3 | 
 4 | 显示和设置系统的NIS域名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **domainname命令** 用于显示和设置系统的NIS域名。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | domainname(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:详细信息模式;
20 | -F:指定读取域名信息的文件。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | NIS域名:指定要设置的NIS域名。
26 | 
27 | ###  实例
28 | 
29 | ```shell
30 | [root@AY1307311912260196fcZ ~]# domainname -v
31 | getdomainname()=`(none)'
32 | (none)
33 |  [root@AY1307311912260196fcZ ~]# domainname
34 | www.jsdig.com
35 | 
36 | [root@AY1307311912260196fcZ ~]# domainname -v
37 | getdomainname()=`www.jsdig.com'
38 | www.jsdig.com
39 | ```
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/dpkg-deb.md:
--------------------------------------------------------------------------------
 1 | dpkg-deb
 2 | ===
 3 | 
 4 | Debian Linux下的软件包管理工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-deb命令** 是Debian Linux下的软件包管理工具,它可以对软件包执行打包和解包操作以及提供软件包信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-deb(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:显示软件包中的文件列表;
20 | -e:将主控信息解压;
21 | -f:把字段内容打印到标准输出;
22 | -x:将软件包中的文件释放到指定目录下;
23 | -X:将软件包中的文件释放到指定目录下,并显示释放文件的详细过程;
24 | -w:显示软件包的信息;
25 | -l:显示软件包的详细信息;
26 | -R:提取控制信息和存档的清单文件;
27 | -b:创建debian软件包。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 文件:指定要操作的“.deb”软件包的全名或软件名。
33 | 
34 | ###  实例
35 | 
36 | 解压程序文件:
37 | 
38 | ```shell
39 | dpkg-deb -x drcom-pum_1.0-0ubuntu1~ppa1~jaunty1_i386.deb drcom
40 | ```
41 | 
42 | 解压控制文件:
43 | 
44 | ```shell
45 | dpkg-deb -e drcom-pum_1.0-0ubuntu1~ppa1~jaunty1_i386.deb drcom/DEBIAN
46 | ```
47 | 
48 | 打包生成deb文件:
49 | 
50 | ```shell
51 | dpkg-deb -b drcom drcom_1.4.8.2_i386.deb
52 | ```
53 | 
54 | 查询deb包中的文件内容:
55 | 
56 | ```shell
57 | dpkg-deb -c demo.deb
58 | ```
59 | 
60 | 
61 | 


--------------------------------------------------------------------------------
/command/dpkg-preconfigure.md:
--------------------------------------------------------------------------------
 1 | dpkg-preconfigure
 2 | ===
 3 | 
 4 | Debian Linux中软件包安装之前询问问题
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-preconfigure命令** 用于在Debian Linux中软件包安装之前询问问题。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-preconfigure(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:选择使用的前端;
20 | -p:感兴趣的最低的优先级问题;
21 | --apt:在apt模式下运行。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 软件包:指定“.deb”软件包。
27 | 
28 | ###  实例
29 | 
30 | 导入debconf模板:
31 | 
32 | ```shell
33 | dpkg-preconfigure /var/cache/apt/archives/mysql-server-5.5*.deb
34 | ```
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/dpkg-query.md:
--------------------------------------------------------------------------------
 1 | dpkg-query
 2 | ===
 3 | 
 4 | Debian Linux中软件包的查询工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-query命令** 是Debian Linux中软件包的查询工具,它从dpkg软件包数据库中查询并辨识软件包的信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-query(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -l:列出符合匹配模式的软件包;
20 | -s:查询软件包的状态信息;
21 | -L:显示软件包所安装的文件列表;
22 | -S:从安装的软件包中查询文件;
23 | -w:显示软件包信息;
24 | -c:显示软件包的控制文件路径;
25 | -p:显示软件包的细节。
26 | ```
27 | 
28 | ###  参数
29 | 
30 | 软件包名称:指定需要查询的软件包。
31 | 
32 | ###  实例
33 | 
34 | 查找文件file1在哪个包里安装:
35 | 
36 | ```shell
37 | dpkg-query -S file1
38 | ```
39 | 
40 | 列出ubuntu下所安装软件列表:
41 | 
42 | ```shell
43 | dpkg-query -W --showformat='${Package} ${Version}\n' > filename
44 | ```
45 | 
46 | 查看软件包详细信息:
47 | 
48 | ```shell
49 | dpkg-query -s capistrano
50 | ```
51 | 
52 | 查看软件包安装时安装到系统的文件列表:
53 | 
54 | ```shell
55 | dpkg-query -L capistrano
56 | ```
57 | 
58 | 列出所有安装的包:
59 | 
60 | ```shell
61 | dpkg-query -l
62 | ```
63 | 
64 | 查看软件包的确切状态(是否安装)以及版本号:
65 | 
66 | ```shell
67 | dpkg-query -W -f='${Status} ${Version}\n' apache-perl
68 | ```
69 | 
70 | 
71 | 


--------------------------------------------------------------------------------
/command/dpkg-reconfigure.md:
--------------------------------------------------------------------------------
 1 | dpkg-reconfigure
 2 | ===
 3 | 
 4 | Debian Linux中重新配制一个已经安装的软件包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-reconfigure命令** 是Debian Linux中重新配置已经安装过的软件包,可以将一个或者多个已安装的软件包传递给此指令,它将询问软件初次安装后的配置问题。
 9 | 
10 | 当用户需要再次对软件包配置的时候,可以使用dpkg-reconfigure命令来对指定的软件包进行配置。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | dpkg-reconfigure(选项)(参数)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -a:重新配置所有的软件包;
22 | -u或--unseen-only:仅显示未提过的问题;
23 | --default-priority:使用默认优先级,而非“低”级;
24 | --force:强制执行操作,需谨慎使用此选项;
25 | --no-reload:不要轻易的重装模板(使用时请慎重考虑);
26 | -f或--frontend:指定 debconf 前端界面;
27 | -p或--priority:指定要显示的问题的最优先级;
28 | --terse:开启简要模式。
29 | ```
30 | 
31 | ###  参数
32 | 
33 | 软件包名:需要重新配置的已安装的软件包。
34 | 
35 | ###  实例
36 | 
37 | 用于配置语言:
38 | 
39 | ```shell
40 | sudo dpkg-reconfigure locales
41 | ```
42 | 
43 | 
44 | 


--------------------------------------------------------------------------------
/command/dpkg-split.md:
--------------------------------------------------------------------------------
 1 | dpkg-split
 2 | ===
 3 | 
 4 | Debian Linux中将大软件包分割成小包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-split命令** 用来将Debian Linux中的大软件包分割成小软件包,它还能够将已分割的文件进行合并。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-split(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -S:设置分割后的每个小文件最大尺寸(以字节为单位);
20 | -s:分割软件包;
21 | -j<分块文件><分块文件>:把各个分块合并到一起;
22 | -I<分块文件>:显示分块文件的相关信息;
23 | -l:列出不匹配的部分;
24 | -dscard<文件名>:忽略不匹配的部分。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 软件包:指定需要分割的“.deb”软件包。
30 | 
31 | ###  实例
32 | 
33 | 把foo.deb分割出N个大小为460KB的文件:
34 | 
35 | ```shell
36 | dpkg-split -s foo.deb
37 | ```
38 | 
39 | 合并分割文件:
40 | 
41 | ```shell
42 | dpkg-split -j "foo*"
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/dpkg-statoverride.md:
--------------------------------------------------------------------------------
 1 | dpkg-statoverride
 2 | ===
 3 | 
 4 | Debian Linux中覆盖文件的所有权和模式
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-statoverride命令** 用于Debian Linux中覆盖文件的所有权和模式,让dpkg于包安装时使得文件所有权与模式失效。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-statoverride(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -add:为文件添加一个改写;
20 | --remove:为文件删除一个改写;
21 | --list:显示所有改写列表;
22 | --update:如果文件存在,则立刻执行改写操作。
23 | ```
24 | 
25 | ###  实例
26 | 
27 | 修改文件夹的权限属性:
28 | 
29 | ```shell
30 | sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
31 | ```
32 | 
33 | 强制修改文件夹的权限属性:
34 | 
35 | ```shell
36 | sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
37 | ```
38 | 
39 | 将文件从数据库中删除:
40 | 
41 | ```shell
42 | sudo dpkg-statoverride --remove /usr/bin/wall
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/dpkg-trigger.md:
--------------------------------------------------------------------------------
 1 | dpkg-trigger
 2 | ===
 3 | 
 4 | Debian Linux下的软件包触发器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg-trigger命令** 是Debian Linux下的软件包触发器。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg-trigger(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --check-supported:检查运行的dpkg是否支持触发器,返回值为0,则支持触发器。
20 | --help:显示帮助信息;
21 | --admindir=<目录>:设置dpkg数据库所在的目录;
22 | --no-act:仅用于测试,不执行任何操作;
23 | --by-package=<软件包>:覆盖触发器等待者。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | 触发器名:指定触发器名称。
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/dpkg.md:
--------------------------------------------------------------------------------
 1 | dpkg
 2 | ===
 3 | 
 4 | Debian Linux系统上安装、创建和管理软件包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dpkg命令** 是Debian Linux系统用来安装、创建和管理软件包的实用工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dpkg(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -i:安装软件包;
20 | -r:删除软件包;
21 | -P:删除软件包的同时删除其配置文件;
22 | -L:显示于软件包关联的文件;
23 | -l:显示已安装软件包列表;
24 | --unpack:解开软件包;
25 | -c:显示软件包内文件列表;
26 | --confiugre:配置软件包。
27 | ```
28 | 
29 | ###  参数
30 | 
31 | Deb软件包:指定要操作的.deb软件包。
32 | 
33 | ###  实例
34 | 
35 | ```shell
36 | dpkg -i package.deb     # 安装包
37 | dpkg -r package         # 删除包
38 | dpkg -P package         # 删除包(包括配置文件)
39 | dpkg -L package         # 列出与该包关联的文件
40 | dpkg -l package         # 显示该包的版本
41 | dpkg --unpack package.deb  # 解开deb包的内容
42 | dpkg -S keyword            # 搜索所属的包内容
43 | dpkg -l                    # 列出当前已安装的包
44 | dpkg -c package.deb        # 列出deb包的内容
45 | dpkg --configure package   # 配置包
46 | ```
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/dris.md:
--------------------------------------------------------------------------------
 1 | dris
 2 | ===
 3 | 
 4 | 显示和清空目录堆栈中的内容
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **dris命令** 用于显示和清空目录堆栈中的内容。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | dris(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | +n:显示从左边算起第n笔的目录;
20 | -n:显示从右边算起第n笔的目录;
21 | -l:显示目录完整的记录。
22 | ```
23 | 
24 | 
25 | 


--------------------------------------------------------------------------------
/command/e2label.md:
--------------------------------------------------------------------------------
 1 | e2label
 2 | ===
 3 | 
 4 | 设置第二扩展文件系统的卷标
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **e2label命令** 用来设置第二扩展文件系统的卷标。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | e2label(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *   文件系统:指定文件系统所对应的设备文件名;
19 | *   新卷标:为文件系统指定新卷标。
20 | 
21 | ###  实例
22 | 
23 | 许多用了多年Linux的人可能也没有用过e2label命令。但是这个命令相当有效。在介绍它之前,我们先看看`/etc/fstab文`件:
24 | 
25 | ```shell
26 | label=//ext3 defaults 1 1
27 | /dev/hda7 /usr ext3 defaults 1 1
28 | ```
29 | 
30 | 第二行的意思很容易懂,就是把`/dev/hda7` mount到`/usr`上。第一行没有指明分区,意思是把label(卷标)为/ 的分区mount到/上。这样写的好处在于即使如果把硬盘从主板上的ide0(hda) 换到ide2(hdc)上,系统仍然可以自动挂载正确的分区。通常Linux安装的时候已经自动指定了卷标。如果是手动增加的新分区,可以用下边的命令为 其指定卷标:
31 | 
32 | ```shell
33 | e2label /dev/hdax /new
34 | mkdir /new
35 | ```
36 | 
37 | 然后在`/etc/fstab`里加入:
38 | 
39 | ```shell
40 | label=/new  /new  ext3  defaults  1 1
41 | ```
42 | 
43 | 下次重新起动机器的时候,就会把卷标为`/new`的分区挂接到`/new`上。
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/ed.md:
--------------------------------------------------------------------------------
 1 | ed
 2 | ===
 3 | 
 4 | 单行纯文本编辑器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ed命令** 是单行纯文本编辑器,它有命令模式(command mode)和输入模式(input mode)两种工作模式。ed命令支持多个内置命令,常见内置命令如下:
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ed(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | A # 切换到输入模式,在文件的最后一行之后输入新的内容;
20 | C # 切换到输入模式,用输入的内容替换掉最后一行的内容;
21 | i # 切换到输入模式,在当前行之前加入一个新的空行来输入内容;
22 | d # 用于删除最后一行文本内容;
23 | n # 用于显示最后一行的行号和内容;
24 | w # <文件名>:一给定的文件名保存当前正在编辑的文件;
25 | q # 退出ed编辑器。
26 | ```
27 | 
28 | ```shell
29 | -G或——traditional:提供兼容的功能;
30 | -p<字符串>:指定ed在command mode的提示字符;
31 | -s,-,--quiet或——silent:不执行开启文件时的检查功能;
32 | --help:显示帮助;
33 | --version:显示版本信息。
34 | ```
35 | 
36 | ###  参数
37 | 
38 | 文件:待编辑的文件。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/egrep.md:
--------------------------------------------------------------------------------
 1 | egrep
 2 | ===
 3 | 
 4 | 在文件内查找指定的字符串
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **egrep命令** 用于在文件内查找指定的字符串。egrep执行效果与`grep -E`相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | egrep(选项)(查找模式)(文件名1,文件名2,……)
14 | ```
15 | 
16 | ###  实例
17 | 
18 | 显示文件中符合条件的字符。例如,查找当前目录下所有文件中包含字符串"Linux"的文件,可以使用如下命令:
19 | 
20 | ```shell
21 | egrep Linux *
22 | ```
23 | 
24 | 结果如下所示:
25 | 
26 | ```shell
27 | # 以下五行为 testfile 中包含Linux字符的行
28 | testfile:hello Linux!
29 | testfile:Linux is a free Unix-type operating system.
30 | testfile:This is a Linux testfile!
31 | testfile:Linux
32 | testfile:Linux
33 | 
34 | # 以下两行为testfile1中含Linux字符的行
35 | testfile1:helLinux!
36 | testfile1:This a Linux testfile!
37 | 
38 | # 以下两行为 testfile_2 中包含Linux字符的行
39 | testfile_2:Linux is a free unix-type opterating system
40 | testfile_2:Linux test
41 | ```
42 | 
43 | 过滤注释行和空白行
44 | 
45 | ```shell
46 | egrep -v '^\s*(#|$)' filename
47 | ```
48 | 


--------------------------------------------------------------------------------
/command/eject.md:
--------------------------------------------------------------------------------
 1 | eject
 2 | ===
 3 | 
 4 | 用来退出抽取式设备
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **eject命令** 用来退出抽取式设备。若设备已挂入,则eject命令会先将该设备卸除再退出。
 9 | 
10 | eject允许可移动介质(典型是cd-ROM、软盘、磁带、或者JAZ以及zip磁盘)在软件控制下弹出。该命令也可以控制一些多盘片CD-ROM控制器,控制一些设备支持的自动弹出功能,以及控制一些CD-ROM驱动器磁盘托盘的关闭。与name相应的设备将被弹出,name可以为设备文件或者其挂载点,也可以为完整路径或者省略前面的/dev或者/mnt设备文件名。如果没有指定name,缺省使用cdrom。
11 | 
12 | 有四种不同的弹出的方法,具体要看设备是CD-ROM, SCSI设备,可移动软盘,还是磁带而定。默认的弹出会依次尝试所有四种方法,直到成功为止。如果设备当前是挂载上来的,那么在弹出前要先卸载。
13 | 
14 | ###  语法
15 | 
16 | ```shell
17 | eject(选项)(参数)
18 | ```
19 | 
20 | ###  选项
21 | 
22 | ```shell
23 | -a<开关>或--auto<开关>:控制设备的自动退出功能;
24 | -c<光驱编号>或--changerslut<光驱编号>   选择光驱柜中的光驱;
25 | -d或--default:显示预设的设备,而不是实际执行动作;
26 | -f或--floppy:退出抽取式磁盘;
27 | -h或--help:显示帮助;
28 | -n或--noop:显示指定的设备;
29 | -q或--tape:退出磁带;
30 | -r或--cdrom:退出光盘;
31 | -s或--scsi:以SCSI指令来退出设备;
32 | -t或--trayclose:关闭光盘的托盘;
33 | -v或--verbose:执行时,显示详细的说明。
34 | ```
35 | 
36 | ###  参数
37 | 
38 | 设备名:指定弹出的设备名称。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/elinks.md:
--------------------------------------------------------------------------------
 1 | elinks
 2 | ===
 3 | 
 4 | 纯文本界面的WWW浏览器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **elinks命令** 能实现一个纯文本界面的WWW浏览器,操作方式与“lynx”类似。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | elinks(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -anonymous:是否使用匿名帐号方式;
20 | -auto-submit:对于偶然遇到的第一个表单是否自动提交;
21 | -config-dir:指定elinks指令运行时读取和写入自身的配置和运行状态的存放目录;
22 | -dump:将HTML文档以纯文本的方式打印到标准输出设备;
23 | -version:显示指令的版本信息;
24 | -h:显示帮助信息。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | URL:指定要访问的URL地址。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/elm.md:
--------------------------------------------------------------------------------
 1 | elm
 2 | ===
 3 | 
 4 | 纯文本邮件客户端程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **elm命令** 是一个E-mail客户端管理程序,它提供了纯文本交互式全屏幕界面。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | elm(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s<邮件主题>:指定新邮件的邮件主题;
20 | -f<目录>:开启程序时,读取指定的目录;
21 | -h:显示帮助;
22 | -i<文件名>:将文件内容插入送出的邮件中;
23 | -m:进入elm后,不显示指令说明;
24 | -v:显示elm的版本信息;
25 | -z:若收件信箱没有邮件,则不启动elm程序。
26 | ```
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/ex.md:
--------------------------------------------------------------------------------
 1 | ex
 2 | ===
 3 | 
 4 | 启动vim编辑器的ex编辑模式
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 在 **ex** 模式下启动vim文本编辑器。ex执行效果如同`vi -E`,适用于法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入`:vi`或`:visual`即可。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ex(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定待编辑的文件。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/exec.md:
--------------------------------------------------------------------------------
 1 | exec
 2 | ===
 3 | 
 4 | 调用并执行指定的命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **exec命令** 用于调用并执行指令的命令。exec命令通常用在shell脚本程序中,可以调用其他的命令。如果在当前终端中使用命令,则当指定的命令执行完毕后会立即退出终端。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | exec(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:在空环境中执行指定的命令。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 指令:要执行的指令和相应的参数。
25 | 
26 | ###  实例
27 | 
28 | 首先使用echo命令将文本“Linux C++”进行输出,输入如下命令:
29 | 
30 | ```shell
31 | echo Linux C++           # 输出指定信息
32 | ```
33 | 
34 | 执行上面的指令后,输出如下信息:
35 | 
36 | ```shell
37 | Linux C++                # 输出信息
38 | ```
39 | 
40 | 然后再使用exec命令调用echo命令输出同样的信息,并且对输出的信息进行对比,输入指令如下所示:
41 | 
42 | ```shell
43 | exec -c echo Linux C++          # 调用命令
44 | ```
45 | 
46 | 执行以上命令后,其输出信息如下:
47 | 
48 | ```shell
49 | Linux C++                       # 使用指定指令输出信息
50 | ```
51 | 
52 | 通过比较两者执行后的结果来看,所实现的功能是相同的,即使用exec命令调用echo命令成功。
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/command/expand.md:
--------------------------------------------------------------------------------
 1 | expand
 2 | ===
 3 | 
 4 | 将文件的制表符转换为空白字符
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **expand命令** 用于将文件的制表符(TAB)转换为空白字符(space),将结果显示到标准输出设备。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | expand(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -t<数字>:指定制表符所代表的空白字符的个数,而不使用默认的8。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 文件:指定要转换制表符为空白的文件。
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/exportfs.md:
--------------------------------------------------------------------------------
 1 | exportfs
 2 | ===
 3 | 
 4 | 管理NFS共享文件系统列表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | exportfs 命令用来管理当前NFS共享的文件系统列表。
 9 | 
10 | 参数:
11 | 
12 | ```shell
13 | -a 打开或取消所有目录共享。
14 | -o options,...指定一列共享选项,与 exports(5) 中讲到的类似。
15 | -i 忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。
16 | -r 重新共享所有目录。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。 它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。
17 | -u 取消一个或多个目录的共享。
18 | -f 在“新”模式下,刷新内核共享表之外的任何东西。 任何活动的客户程序将在它们的下次请求中得到 mountd添加的新的共享条目。
19 | -v 输出详细信息。当共享或者取消共享时,显示在做什么。 显示当前共享列表的时候,同时显示共享的选项。
20 | ```
21 | 
22 | 
23 | 


--------------------------------------------------------------------------------
/command/expr.md:
--------------------------------------------------------------------------------
 1 | expr
 2 | ===
 3 | 
 4 | 一款表达式计算工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **expr命令** 是一款表达式计算工具,使用它完成表达式的求值操作。
 9 | 
10 | expr的常用运算符:
11 | 
12 | - 加法运算:`+`
13 | - 减法运算:`-`
14 | - 乘法运算:`\*`
15 | - 除法运算:`/`
16 | - 取模(取余)运算:`%`
17 | 
18 | ###  语法
19 | 
20 | ```shell
21 | expr(选项)(参数)
22 | ```
23 | 
24 | ###  选项
25 | 
26 | ```shell
27 | --help:显示指令的帮助信息;
28 | --version:显示指令版本信息。
29 | ```
30 | 
31 | ###  参数
32 | 
33 | 表达式:要求值的表达式。
34 | 
35 | ###  实例
36 | 
37 | ```shell
38 | result=`expr 2 + 3`
39 | result=$(expr $no1 + 5)
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/false.md:
--------------------------------------------------------------------------------
 1 | false
 2 | ===
 3 | 
 4 | 返回状态为失败。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | false
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 用于和其他命令进行逻辑运算。
15 | 
16 | ## 返回值
17 | 
18 | 返回状态总是失败;返回值为1。
19 | 
20 | 
21 | ### 注意
22 | 
23 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
24 | 
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/fg.md:
--------------------------------------------------------------------------------
 1 | fg
 2 | ===
 3 | 
 4 | 将后台作业移动到前台终端运行
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | fg [job_spec ...]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 用于将后台作业(在后台运行的或者在后台挂起的作业)放到前台终端运行。
15 | 
16 | - 若后台任务中只有一个,则使用该命令时可以省略任务号。
17 | 
18 | ## 参数
19 | 
20 | job_spec(可选):指定要移动到前台执行的作业标识符,可以是一到多个。
21 | 
22 | ## 返回值
23 | 
24 | 返回作业的执行状态,如果发生了错误返回失败。
25 | 
26 | ## 例子
27 | 
28 | ```shell
29 | # 运行sleep命令,然后按下ctrl+z。
30 | sleep 60
31 | ^Z
32 | [1]+  Stopped                 sleep 60
33 | 
34 | # 使用fg命令使得作业在前台运行。
35 | fg %1
36 | 
37 | # 返回信息:
38 | sleep 60
39 | ```
40 | 
41 | ### 注意
42 | 
43 | 1. `bash`的作业控制命令包括`bg fg kill wait disown suspend`。
44 | 2. 该命令需要`set`选项`monitor`处于开启状态时才能执行;查看作业控制状态:输入`set -o`查看`monitor`行;执行`set -o monitor`或`set -m`开启该选项。
45 | 3. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
46 | 
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/findfs.md:
--------------------------------------------------------------------------------
 1 | findfs
 2 | ===
 3 | 
 4 | 标签或UUID查找文件系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **findfs命令** 依据卷标(Label)和UUID查找文件系统所对应的设备文件。findfs命令会搜索整个磁盘,看是否有匹配的标签或者UUID没有,如果有则打印到标注输出上。findfs命令也是e2fsprogs项目的一部分。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | findfs(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | `LABEL=<卷标>`或者`UUID=<UUID>`:按照卷标或者UUID查询文件系统。
19 | 
20 | ###  实例
21 | 
22 | 通过卷标名查找对应的文件系统:
23 | 
24 | ```shell
25 | findfs LABEL=/boot
26 | /dev/hda1
27 | ```
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/finger.md:
--------------------------------------------------------------------------------
 1 | finger
 2 | ===
 3 | 
 4 | 用于查找并显示用户信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **finger命令** 用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | finger(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
20 | -m:排除查找用户的真实姓名;
21 | -s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
22 | -p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。
23 | ```
24 | 
25 | 不指定finger的选项如果提供操作者的话,缺省设为`-l`输出风格,否则为`-s`风格,注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。
26 | 
27 | ###  参数
28 | 
29 | 用户名:指定要查询信息的用户。
30 | 
31 | ###  实例
32 | 
33 | 在计算机上使用finger:
34 | 
35 | ```shell
36 | [root@localhost root]# finger
37 | login Name Tty Idle Login time Office Office Phone
38 | root root tty1 2 Dec 18 13
39 | root root pts/0 1 Dec 18 13
40 | root root *pts/1 Dec 18 13
41 | ```
42 | 
43 | 如果要查询远程机上的用户信息,需要在用户名后面接`@主机名`,采用`用户名@主机名`的格式,不过要查询的网络主机需要运行finger守护进程的支持。
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/fmt.md:
--------------------------------------------------------------------------------
 1 | fmt
 2 | ===
 3 | 
 4 | 读取文件后优化处理并输出
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **fmt命令** 读取文件的内容,根据选项的设置对文件格式进行简单的优化处理,并将结果送到标准输出设备。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | fmt(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c或--crown-margin:每段前两列缩排;
20 | -p<列起始字符串>或-prefix=<列起始字符串>:仅合并含有指定字符串的列,通常运用在程序语言的注解方面;
21 | -s或--split-only:只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列;
22 | -t或--tagged-paragraph:每列前两列缩排,但第1列和第2列的缩排格式不同;
23 | -u或--uniform-spacing:每列字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔;
24 | -w<每列字符数>或--width=<每列字符数>或-<每列字符数>:设置每列的最大字符数。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 指定要优化格式的文件。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/fold.md:
--------------------------------------------------------------------------------
 1 | fold
 2 | ===
 3 | 
 4 | 控制文件内容输出时所占用的屏幕宽度
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **fold命令** 用于控制文件内容输出时所占用的屏幕宽度。fold命令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备。若不指定任何文件名称,或是所给予的文件名为“-”,则fold指令会从标准输入设备读取数据。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | fold(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b或——bytes:以Byte为单位计算列宽,而非采用行数编号为单位;
20 | -s或——spaces:以空格字符作为换列点;
21 | -w<每列行数>或--width<每列行数>:设置每列的最大行数。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定要显示内容的文件。
27 | 
28 | ###  示例
29 | 
30 | ```shell
31 | fold -w 5 filename
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/fsck.md:
--------------------------------------------------------------------------------
 1 | fsck
 2 | ===
 3 | 
 4 | fsck(英文全拼:file system check)命令检查并且试图修复文件系统中的错误
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **fsck命令** 被用于检查并且试图修复文件系统中的错误。当文件系统发生错误,可用fsck指令尝试加以修复。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | fsck(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:自动修复文件系统,不询问任何问题;
20 | -A:依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统;
21 | -N:不执行指令,仅列出实际执行会进行的动作;
22 | -P:当搭配"-A"参数使用时,则会同时检查所有的文件系统;
23 | -r:采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式;
24 | -R:当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查;
25 | -s:依序执行检查作业,而非同时执行;
26 | -t<文件系统类型>:指定要检查的文件系统类型;
27 | -T:执行fsck指令时,不显示标题信息;
28 | -V:显示指令执行过程。
29 | ```
30 | 
31 | ###  参数
32 | 
33 | 文件系统:指定要查看信息的文件系统。
34 | 
35 | ###  实例
36 | 
37 | linux的文件系统损坏会导致linux不正常关机,出错的时候如果系统告诉你是哪一块硬盘的分区有问题,比如是`/dev/hda2`,接着用如下的命令去对付它:
38 | 
39 | ```shell
40 | fsck -y /dev/hda2
41 | ```
42 | 
43 | 结束后使用reboot命令重启系统这样就好了!
44 | 
45 | 如果不知道时哪个地方出了问题,可以直接:
46 | 
47 | ```shell
48 | fsck
49 | ```
50 | 
51 | 在随后的多个确认对话框中输入`:y`
52 | 
53 | 结束后同样使用reboot命令重启系统这样就好了!
54 | 
55 | 
56 | 


--------------------------------------------------------------------------------
/command/ftpcount.md:
--------------------------------------------------------------------------------
 1 | ftpcount
 2 | ===
 3 | 
 4 | 显示目前已FTP登入的用户人数
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 显示目前已ftp登入的用户人数。执行这项指令可得知目前用FTP登入系统的人数以及FTP登入人数的上限。
 9 | 
10 | 语法:
11 | 
12 | ```shell
13 | ftpcount
14 | ```
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/command/ftpshut.md:
--------------------------------------------------------------------------------
 1 | ftpshut
 2 | ===
 3 | 
 4 | 在指定的时间关闭FTP服务器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 功能说明:在指定的时间关闭ftp服务器。本指令提供系统管理者在设置的时间关闭FTP服务器,且能在关闭之前发出警告信息通知用户。关闭时间若设置后为"none",则会马上关闭服务器。如果采 用"+30"的方式来设置表示服务器在30分钟之后关闭。依次类推,假设使用"1130"的格式则代表服务器会在每日的11时30分关闭,时间格式为24 小时制。FTP服务器关闭后,在/etc目录下会产生一个名称为shutmsg的文件,把它删除后即可再度启动FTP服务器的功能。
 9 | 
10 | 语法:
11 | 
12 | ```shell
13 | ftpshut [-d<分钟>][-l<分钟>][关闭时间]["警告信息"]
14 | ```
15 | 
16 | 参数:
17 | 
18 | ```shell
19 | -d<分钟>   切断所有FTP连线时间。
20 | -l<分钟>   停止接受FTP登入的时间。
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/ftptop.md:
--------------------------------------------------------------------------------
 1 | ftptop
 2 | ===
 3 | 
 4 | proftpd服务器的连接状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ftptop命令** 类似于top命令的显示风格显示proftpd服务器的连接状态。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ftptop(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -D:过滤正在下载的会话;
20 | -S:仅显示指定虚拟主机的连接状态;
21 | -d:指定屏幕刷新时间,默认
22 | ```
23 | 
24 | 
25 | 


--------------------------------------------------------------------------------
/command/ftpwho.md:
--------------------------------------------------------------------------------
 1 | ftpwho
 2 | ===
 3 | 
 4 | 显示当前每个ftp会话信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ftpwho命令** ftp服务器套件proftpd的工作指令,用于显示当前每个ftp会话信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ftpwho(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:显示帮助信息;
20 | -v:详细模式,输出更多信息。
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/gcov.md:
--------------------------------------------------------------------------------
 1 | gcov
 2 | ===
 3 | 
 4 | 测试程序的代码覆盖率的工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **gcov命令** 是一款测试程序的代码覆盖率的工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | gcov(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:显示帮助信息;
20 | -v:显示版本信息;
21 | -a:输出所有的基本块的执行计数;
22 | -n:并创建输出文件。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | V语言文件:C语言源代码文件。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/getcap.md:
--------------------------------------------------------------------------------
 1 | getcap
 2 | ===
 3 | 
 4 | 显示文件的能力(capabilities)
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **getcap命令** 用于查看文件的能力(capabilities)。在 Linux 中,文件的能力是一种权限控制机制,可以赋予普通文件特定的特权操作,而无需完全的 root 权限。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | getcap [选项] [文件名...]
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -v      # 显示详细信息,通常与其他选项一起使用。
20 | -p      # 显示进程的能力。
21 | ```
22 | 
23 | ### 参数
24 | 
25 | 文件名:指定要查看能力的文件路径。
26 | 
27 | ### 实例
28 | 
29 | 查看一个可执行文件的能力:
30 | 
31 | ```shell
32 | $ getcap /usr/bin/ping
33 | /usr/bin/ping = cap_net_raw+ep
34 | ```
35 | 
36 | 查看当前目录下所有文件的能力:
37 | 
38 | ```shell
39 | $ getcap *
40 | /usr/bin/ping = cap_net_raw+ep
41 | ```
42 | 
43 | 如果文件没有设置任何能力,getcap 不会返回任何输出。
44 | 
45 | 查看进程的能力(以 PID 为例):
46 | 
47 | ```shell
48 | $ getcap -p 1234
49 | ```


--------------------------------------------------------------------------------
/command/getenforce.md:
--------------------------------------------------------------------------------
 1 | getenforce
 2 | ===
 3 | 
 4 | 显示当前SELinux的应用模式,是强制、执行还是停用
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grename命令** 可以重命名卷组的名称。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | getenforce
14 | ```
15 | 
16 | ### 例子
17 | 
18 | 查看当前SELinux的应用模式。
19 | 
20 | ```shell
21 | [root@localhost ~]# getenforce
22 | Enforcing
23 | ```
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/command/getsebool.md:
--------------------------------------------------------------------------------
 1 | getsebool
 2 | ===
 3 | 
 4 | 查询SElinux策略内各项规则的布尔值
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **getsebool命令** 是用来查询SElinux策略内各项规则的布尔值。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | getsebool [-a] [布尔值条款]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。
20 | ```
21 | 
22 | ###  实例
23 | 
24 | 查询本系统内所有的布尔值设置状况:
25 | 
26 | ```shell
27 | getsebool -a
28 | NetworkManager_disable_trans --> off
29 | allow_console_login --> off
30 | allow_cvs_read_shadow --> off
31 | allow_daemons_dump_core --> on
32 | ....(底下省略)....
33 | ```
34 | 
35 | 查询httpd_enable_homedirs是否为关闭,若没关闭,请关闭它:
36 | 
37 | ```shell
38 | getsebool httpd_enable_homedirs
39 | setsebool -P httpd_enable_homedirs=0    # 0是关闭  1是开启
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/gpm.md:
--------------------------------------------------------------------------------
 1 | gpm
 2 | ===
 3 | 
 4 | 提供文字模式下的滑鼠事件处理
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **gpm命令** 是Linux的虚拟控制台下的鼠标服务器,用于在虚拟控制台下实现鼠标复制和粘贴文本的功能。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | gpm(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:设置加速值;
20 | -b:设置波特率;
21 | -B:设置鼠标按键次序;
22 | -m:指定鼠标设备文件;
23 | -t:设置鼠标类型。
24 | ```
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/groupadd.md:
--------------------------------------------------------------------------------
 1 | groupadd
 2 | ===
 3 | 
 4 | 用于创建一个新的工作组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **groupadd命令** 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | groupadd(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -g:指定新建工作组的id;
20 | -r:创建系统工作组,系统工作组的组ID小于500;
21 | -K:覆盖配置文件“/etc/login.defs”;
22 | -o:允许添加组ID号不唯一的工作组。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 组名:指定新建工作组的组名。
28 | 
29 | ###  实例
30 | 
31 | 建立一个新组,并设置组ID加入系统:
32 | 
33 | ```shell
34 | groupadd -g 344 jsdigname
35 | ```
36 | 
37 | 此时在`/etc/passwd`文件中产生一个组ID(GID)是344的项目。
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/groupdel.md:
--------------------------------------------------------------------------------
 1 | groupdel
 2 | ===
 3 | 
 4 | 用于删除指定的工作组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **groupdel命令** 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | groupdel(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 组:要删除的工作组名。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | groupadd damon  //创建damon工作组
24 | groupdel damon  //删除这个工作组
25 | ```
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/groupmod.md:
--------------------------------------------------------------------------------
 1 | groupmod
 2 | ===
 3 | 
 4 | 更改群组识别码或名称
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **groupmod命令** 更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | groupmod(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -g<群组识别码>:设置欲使用的群组识别码;
20 | -o:重复使用群组识别码;
21 | -n<新群组名称>:设置欲使用的群组名称。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 组名:指定要修改的工作的组名。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/groups.md:
--------------------------------------------------------------------------------
 1 | groups
 2 | ===
 3 | 
 4 | 打印指定用户所在组的名称。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | groups [OPTION]... [username]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 打印指定用户所在组的名称。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --help       显示帮助信息并退出。
20 | --version    显示版本信息并退出。
21 | ```
22 | 
23 | ## 参数
24 | 
25 | username(可选):可以是一到多个,不提供时默认为当前用户。
26 | 
27 | ## 返回值
28 | 
29 | 返回0表示成功,返回非0值表示失败。
30 | 
31 | ## 例子
32 | 
33 | 显示linux用户所属的组
34 | 
35 | ```shell
36 | [root@localhost ~]# groups linux
37 | linux : linux adm dialout cdrom plugdev lpadmin admin sambashare
38 | ```
39 | 
40 | ### 注意
41 | 
42 | 1. 该命令等价于 `id -Gn`。
43 | 2. 每个用户属于`/etc/passwd`中指定的一个组和在`/etc/group`中指定的其他组。
44 | 3. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 groups`,`info coreutils 'groups invocation'`。
45 | 
46 | 
47 | 


--------------------------------------------------------------------------------
/command/grpck.md:
--------------------------------------------------------------------------------
 1 | grpck
 2 | ===
 3 | 
 4 | 用于验证组文件的完整性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grpck命令** 用于验证组文件的完整性,在验证之前,需要先锁定(lock)组文件`/etc/group`和`/etc/shadow`。
 9 | 
10 | grpck命令检查数据是否正确存放,每条记录是否都包含足够的信息,是否有一个唯一的组名,是否包含正确的用户,是否正确设置了组的管理员等。grpck检查发现错误以后,在命令行提示用户是否删除错误的记录。如果用户没有明确回答删除记录,grpck终止运行。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | grpck(选项)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -r:只读模式;
22 | -s:排序组id。
23 | ```
24 | 
25 | ###  实例
26 | 
27 | 对组账号和影子文件进行验证:
28 | 
29 | ```shell
30 | grpck   # 必须以管理员身份运行
31 | grpck /etc/group /etc/gshadow   # 后面两句一样,如果没有输出信息,则表示没有错误。
32 | ```
33 | 
34 | 测试错误的实例:
35 | 
36 | ```shell
37 | **echo check_user:x: >> /etc/group    # 添加一行错误的格式数据
38 | cat /etc/group | grep check_user**
39 | check_user:x:  # 这儿GID字段为空,是错误的。
40 | 
41 |  **grpck /etc/group** 
42 | invalid group file entry
43 | delete line 'check_user:x:'? y      # 提示是否删除
44 | grpck: the files have been updated  # 这时已经删除了错误的行,提示文件已经更新。
45 | 
46 |  **cat /etc/group  | grep check_user   # 没有查到,已经删除了。** 
47 | ```
48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/command/grpconv.md:
--------------------------------------------------------------------------------
 1 | grpconv
 2 | ===
 3 | 
 4 | 用来开启群组的投影密码
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grpconv命令** 用来开启群组的投影密码。Linux系统里的用户和群组密码,分别存放在`/etc`目录下的passwd和group文件中。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在`/etc`目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | grpconv
14 | ```
15 | 
16 | ###  实例
17 | 
18 | 设置cdy组密码
19 | 
20 | ```shell
21 | groupmod --password 123456 cdy
22 | cat /etc/group | grep cdy
23 | cdy:123456:1000:     # 看出密码是123456
24 | ```
25 | 
26 | 启动影子系统
27 | 
28 | ```shell
29 | grpconv
30 | cat /etc/group |  grep cdy
31 | cdy:x:1000:      # 看出密码段已经被x替代
32 | 
33 | cat /etc/gshadow | grep cdy
34 | cdy:123456::      # 已经移到影子文件了
35 | ```
36 | 
37 | 注:gshadow, shadow只有root权限才可以查看。
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/grpunconv.md:
--------------------------------------------------------------------------------
 1 | grpunconv
 2 | ===
 3 | 
 4 | 用来关闭群组的投影密码
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grpunconv命令** 用来关闭群组的投影密码。它会把密码从gshadow文件内,回存到group文件里。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | grpunconv
14 | ```
15 | 
16 | ###  实例
17 | 
18 | 未关闭的情况
19 | 
20 | ```shell
21 | cat /etc/gshadow | grep cdy
22 | cdy:123456::
23 | ```
24 | 
25 | 关闭影子密码
26 | 
27 | ```shell
28 | cat /etc/gshadow
29 | cat: /etc/gshadow: 没有那个文件或目录
30 | ```
31 | 
32 | 查看密码已经复制到`/etc/group`中了。
33 | 
34 | ```shell
35 | cat /etc/group | grep cdy
36 | cdy:123456:1000:
37 | ```
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/grub2-mkconfig.md:
--------------------------------------------------------------------------------
 1 | grub2-mkconfig
 2 | ===
 3 | 
 4 | 生成 grub.cfg 配置文件。
 5 | 
 6 | ## 语法
 7 | 
 8 | ```shell
 9 | 用法: grub2-mkconfig [OPTION]
10 | 生成 grub 配置文件
11 | 
12 |   -o, --output=FILE       将生成的配置输出到 FILE 文件 [default=stdout]
13 |   -h, --help              打印这个文件并退出
14 |   -v, --version           打印版本信息并退出
15 | 
16 | 报告 Bug 通过 <bug-grub@gnu.org>.
17 | 
18 | ```
19 | 
20 | ## 实例
21 | 
22 | 生成新的grub配置文件
23 | 
24 | ```shell
25 | grub2-mkconfig -o /boot/grub2/grub.cfg
26 | 
27 | # 或者
28 | 
29 | grub2-mkconfig > /boot/grub2/grub.cfg
30 | ```
31 | 


--------------------------------------------------------------------------------
/command/gzexe.md:
--------------------------------------------------------------------------------
 1 | gzexe
 2 | ===
 3 | 
 4 | 用来压缩可执行文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **gzexe命令** 用来压缩可执行文件,压缩后的文件仍然为可执行文件,在执行时进行自动解压缩。当您去执行被压缩过的执行文件时,该文件会自动解压然后继续执行,和使用一般的执行文件相同。这个命令也可以看成是gunzip命令的一个扩展。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | gzexe(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:解压缩被gzexe压缩过的可执行文件。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 文件:指定需要压缩的可执行文件。
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/halt.md:
--------------------------------------------------------------------------------
 1 | halt
 2 | ===
 3 | 
 4 | 关闭正在运行的Linux操作系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **halt命令** 用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | halt(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:不要在wtmp中记录;
20 | -f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;
21 | -i:在halt之前,关闭全部的网络界面;
22 | -n:halt前,不用先执行sync;
23 | -p:halt之后,执行poweroff;
24 | -w:仅在wtmp中记录,而不实际结束系统。
25 | ```
26 | 
27 | ###  实例
28 | 
29 | ```shell
30 | halt -p     # 关闭系统后关闭电源。
31 | halt -d     # 关闭系统,但不留下纪录。
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/hostid.md:
--------------------------------------------------------------------------------
 1 | hostid
 2 | ===
 3 | 
 4 | 显示当前主机的十六进制数字标识。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | hostid [OPTION]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 显示当前主机的十六进制标识符。
15 | - 用来限制软件的使用权限,不可改变。
16 | 
17 | ## 选项
18 | 
19 | ```shell
20 | --help       显示帮助信息并退出。
21 | --version    显示版本信息并退出。
22 | ```
23 | 
24 | ## 例子
25 | 
26 | ```shell
27 | [root@localhost ~]# hostid
28 | 007f0100
29 | ```
30 | 
31 | ### 注意
32 | 
33 | 1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 hostid`,`info coreutils 'hostid invocation'`。
34 | 
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/hostnamectl.md:
--------------------------------------------------------------------------------
 1 | hostnamectl
 2 | ===
 3 | 
 4 | 查询或更改系统主机名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | hostnamectl可用于查询和更改系统主机名和相关设置。
 9 | 
10 | ### 语法
11 | 
12 | ```bash
13 | hostnamectl [选项...] 指令 ...
14 | ```
15 | ### 指令
16 | 
17 | ```bash
18 | status                 显示当前主机名设置
19 | set-hostname NAME      设置系统主机名
20 | set-icon-name NAME     设置主机的图标名称
21 | set-chassis NAME       设置主机的机箱类型 
22 | set-deployment NAME    设置主机的部署环境 
23 | set-location NAME      设置主机位置
24 | ```
25 | 
26 | ### 选项
27 | 
28 | ```bash
29 | -h --help               显示此帮助
30 |     --version           显示包的版本
31 |     --no-ask-password   不提示输入密码
32 | -H --host=[USER@]HOST   在远程主机上操作
33 | -M --machine=CONTAINER  在本地容器上执行操作。指定要连接到的容器名称。
34 | --transient, --static, --pretty  
35 |                         如果调用了status(或者没有给出显式命令)并且指定了其中一个开关,hostnamectl将只打印出这个选定的主机名。
36 | ```
37 | 
38 | ### 实例
39 | 
40 | 显示主机名设置
41 | 
42 | ```bash
43 | $ hostnamectl status
44 | ```
45 | 
46 | 
47 | 改变主机名(永久修改,不用重启哦~)
48 | 
49 | ```bash
50 | $ sudo hostnamectl set-hostname newname
51 | ```
52 | 
53 | 


--------------------------------------------------------------------------------
/command/htdigest.md:
--------------------------------------------------------------------------------
 1 | htdigest
 2 | ===
 3 | 
 4 | Apache服务器内置工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **htdigest命令** 是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用于摘要认证的密码文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | htdigest(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:创建密码文件。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | *   密码文件:指定要创建或更新的密码文件;
25 | *   域:指定用户名所属的域;
26 | *   用户名:要创建或者更新的用户名。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/iconv.md:
--------------------------------------------------------------------------------
 1 | iconv
 2 | ===
 3 | 
 4 | 转换文件的编码方式
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **iconv命令** 是用来转换文件的编码方式的,比如它可以将UTF8编码的转换成GB18030的编码,反过来也行。JDK中也提供了类似的工具native2ascii。Linux下的iconv开发库包括iconv_open,iconv_close,iconv等C函数,可以用来在C/C++程序中很方便的转换字符编码,这在抓取网页的程序中很有用处,而iconv命令在调试此类程序时用得着。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | iconv -f encoding [-t encoding] [inputfile]... 
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f encoding :把字符从encoding编码开始转换。 
20 | -t encoding :把字符转换到encoding编码。 
21 | -l :列出已知的编码字符集合 
22 | -o file :指定输出文件 
23 | -c :忽略输出的非法字符 
24 | -s :禁止警告信息,但不是错误信息 
25 | --verbose :显示进度信息 
26 | -f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 
27 | ```
28 | 
29 | ###  实例
30 | 
31 | 列出当前支持的字符编码: 
32 | 
33 | ```shell
34 | iconv -l 
35 | ```
36 | 
37 | 将文件file1转码,转后文件输出到fil2中: 
38 | 
39 | ```shell
40 | iconv file1 -f EUC-JP-MS -t UTF-8 -o file2 
41 | ```
42 | 
43 | 这里,没`-o`那么会输出到标准输出。
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/ifcfg.md:
--------------------------------------------------------------------------------
 1 | ifcfg
 2 | ===
 3 | 
 4 | 置Linux中的网络接口参数
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ifcfg命令** 是一个Bash脚本程序,用来设置Linux中的网络接口参数。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ifcfg(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | ```shell
19 | 网络接口:指定要操作的网络接口;
20 | add/del:添加或删除网络接口上的地址;
21 | ip地址:指定IP地址和子网掩码;
22 | Stop:停用指定的网络接口的IP地址。
23 | ```
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/command/ifdown.md:
--------------------------------------------------------------------------------
 1 | ifdown
 2 | ===
 3 | 
 4 | 禁用指定的网络接口
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ifdown命令** 用于禁用指定的网络接口。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ifdown(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 网络接口:要禁用的网络接口。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | ifdown eth0  #禁用eth0
24 | ```
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/ifup.md:
--------------------------------------------------------------------------------
 1 | ifup
 2 | ===
 3 | 
 4 | 激活指定的网络接口
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ifup命令** 用于激活指定的网络接口。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ifup(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 网络接口:要激活的网络接口。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | ifup eth0   #激活eth0
24 | ```
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/init.md:
--------------------------------------------------------------------------------
 1 | init
 2 | ===
 3 | 
 4 | init进程是所有Linux进程的父进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **init命令** 是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | init(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:不执行相关脚本而直接进入单用户模式;
20 | -s:切换到单用户模式。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 运行等级:指定Linux系统要切换到的运行等级。
26 | 
27 | ###  实例
28 | 
29 | 几个常用的命令
30 | 
31 | 查看系统进程命令:`ps -ef | head`  
32 | 查看init的配置文件:`more /etc/inittab`  
33 | 查看系统当前运行的级别:`runlevel`
34 | 
35 |  **运行级别** 
36 | 
37 | 到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。你也可以在`/etc/inittab`中查看它的英文介绍。
38 | 
39 | ```shell
40 | #0  停机(千万不能把initdefault 设置为0)
41 | #1  单用户模式
42 | #2  多用户,没有 NFS(和级别3相似,会停止部分服务)
43 | #3  完全多用户模式
44 | #4  没有用到
45 | #5  x11(Xwindow)
46 | #6  重新启动(千万不要把initdefault 设置为6)
47 | ```
48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/command/insmod.md:
--------------------------------------------------------------------------------
 1 | insmod
 2 | ===
 3 | 
 4 | 将给定的模块加载到内核中
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **insmod命令** 用于将给定的模块加载到内核中。Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | insmod(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入;
20 | -k:将模块设置为自动卸除;
21 | -m:输出模块的载入信息;
22 | -o<模块名称>:指定模块的名称,可使用模块文件的文件名;
23 | -p:测试模块是否能正确地载入kernel;
24 | -s:将所有信息记录在系统记录文件中;
25 | -v:执行时显示详细的信息;
26 | -x:不要汇出模块的外部符号;
27 | -X:汇出模块所有的外部符号,此为预设置。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 内核模块:指定要加载的内核模块文件。
33 | 
34 | ###  实例
35 | 
36 | 加载RAID1阵列级别模块,如下所示:
37 | 
38 | ```shell
39 | [root@localhost boot]# insmod /lib/modules/2.6.
40 | 18-8.el5/kernel/drivers/md/raid1.ko  
41 | 
42 | [root@localhost boot]# lsmod | grep raid1
43 | raid1                  25153  0
44 | ```
45 | 
46 | 从以上显示结果可知,RAID1模块已加载成功。只是在使用insmod命令加载模块时,需要使用绝对路径方能加载,且加载时无法自动解决依赖关系。
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/ip6tables-restore.md:
--------------------------------------------------------------------------------
 1 | ip6tables-restore
 2 | ===
 3 | 
 4 | 还原ip6tables表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ip6tables-restore命令** 用来还原ip6tables表。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ip6tables-restore(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:指定在还原iptables表时,还原当前的数据包计数器和字节计数器值;
20 | -t:指定要还原的表的名称。
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/ip6tables-save.md:
--------------------------------------------------------------------------------
 1 | ip6tables-save
 2 | ===
 3 | 
 4 | 保存ip6tables表配置
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ip6tables-save命令** 将Linux内核中ip6tables表导出到标准输出设备上。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ip6tables-save(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:指定在保存iptables表时,保存当前的数据包计数器和字节计数器值;
20 | -t:指定要保存的表的名称。
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/ipcalc.md:
--------------------------------------------------------------------------------
 1 | ipcalc
 2 | ===
 3 | 
 4 | 简单的IP地址计算器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ipcalc命令** 是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ipcalc(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:由给定的IP地址和网络掩码计算出广播地址;
20 | -h:显示给定UP地址所对应的主机名;
21 | -m:由给定的IP地址计算器网络掩码;
22 | -p:显示给定的掩码或IP地址的前缀;
23 | -n:由给定的IP地址和网络掩码计算网络地址;
24 | -s:安静模式;
25 | --help:显示帮助信息。
26 | ```
27 | 
28 | ###  实例
29 | 
30 | ```shell
31 | [root@localhost ~]# ipcalc -p 192.168.2.1 255.255.255.0
32 | PREFIX=24
33 | 
34 | [root@localhost ~]# ipcalc -n 192.168.2.1 255.255.255.0
35 | NETWORK=192.168.2.0
36 | 
37 | [root@localhost ~]# ipcalc -h 127.0.0.1
38 | hostname=localhost.localdomain
39 | 
40 | [root@localhost ~]# ipcalc -m 192.168.2.1
41 | NETMASK=255.255.255.0
42 | 
43 | [root@localhost ~]# ipcalc -pnbm 192.168.2.1 255.255.255.0
44 | NETMASK=255.255.255.0
45 | PREFIX=24
46 | BROADCAST=192.168.2.255
47 | NETWORK=192.168.2.0
48 | ```
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/ipcrm.md:
--------------------------------------------------------------------------------
 1 | ipcrm
 2 | ===
 3 | 
 4 | 删除消息队列、信号集、或者共享内存标识
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ipcrm命令** 用来删除一个或更多的消息队列、信号量集或者共享内存标识。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ipcrm [ -m SharedMemoryID ] [ -M SharedMemoryKey ] [ -q MessageID ] [ -Q MessageKey ] [ -s SemaphoreID ] [ -S SemaphoreKey ]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -m SharedMemory id 删除共享内存标识 SharedMemoryID。与 SharedMemoryID 有关联的共享内存段以及数据结构都会在最后一次拆离操作后删除。
20 | -M SharedMemoryKey 删除用关键字 SharedMemoryKey 创建的共享内存标识。与其相关的共享内存段和数据结构段都将在最后一次拆离操作后删除。
21 | -q MessageID 删除消息队列标识 MessageID 和与其相关的消息队列和数据结构。
22 | -Q MessageKey 删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构。
23 | -s SemaphoreID 删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构。
24 | -S SemaphoreKey 删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构。
25 | ```
26 | 
27 | msgctl、shmctl 和 semctl 子例程提供了删除操作的细节。标识和关键字可以用 ipcs 命令找到。
28 | 
29 | ###  示例
30 | 
31 | 如果要删除和 SharedMemoryID 18602 相关的共享内存段,请输入:
32 | 
33 | ```shell
34 | ipcrm -m 18602
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/iptables-restore.md:
--------------------------------------------------------------------------------
 1 | iptables-restore
 2 | ===
 3 | 
 4 | 还原iptables表的配置
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **iptables-restore命令** 用来还原iptables-save命令所备份的iptables配置。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | iptables-restore(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:指定在还原iptables表时候,还原当前的数据包计数器和字节计数器的值;
20 | -t:指定要还原表的名称。
21 | ```
22 | 
23 | ###  实例
24 | 
25 | ```shell
26 | iptables-restore < iptables.bak
27 | ```
28 | 
29 | iptables.bak是iptables-save命令所备份的文件。
30 | 
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/iptables-save.md:
--------------------------------------------------------------------------------
 1 | iptables-save
 2 | ===
 3 | 
 4 | 备份iptables的表配置
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **iptables-save命令** 用于将linux内核中的iptables表导出到标准输出设备商,通常,使用shell中I/O重定向功能将其输出保存到指定文件中。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | iptables-save(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:指定要保存的iptables表时,保存当权的数据包计算器和字节计数器的值;
20 | -t:指定要保存的表的名称。
21 | ```
22 | 
23 | ###  实例
24 | 
25 | ```shell
26 | [root@localhost ~]# iptables-save -t filter > iptables.bak
27 | [root@localhost ~]# cat iptables.bak
28 | # Generated by iptables-save v1.3.5 on Thu Dec 26 21:25:15 2013
29 | *filter
30 | :INPUT DROP [48113:2690676]
31 | :FORWARD accept [0:0]
32 | :OUTPUT ACCEPT [3381959:1818595115]
33 | -A INPUT -i lo -j ACCEPT
34 | -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
35 | -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
36 | -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
37 | -A INPUT -p icmp -j ACCEPT
38 | -A OUTPUT -o lo -j ACCEPT
39 | COMMIT
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/iptraf.md:
--------------------------------------------------------------------------------
 1 | iptraf
 2 | ===
 3 | 
 4 | 实时地监视网卡流量
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **iptraf命令** 可以实时地监视网卡流量,可以生成网络协议数据包信息、以太网信息、网络节点状态和ip校验和错误等信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | iptraf(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -i网络接口:立即在指定网络接口上开启IP流量监视;
20 | -g:立即开始生成网络接口的概要状态信息;
21 | -d网络接口:在指定网络接口上立即开始监视明细的网络流量信息;
22 | -s网络接口:在指定网络接口上立即开始监视TCP和UDP网络流量信息;
23 | -z网络接口:在指定网络接口上显示包计数;
24 | -l网络接口:在指定网络接口上立即开始监视局域网工作站信息;
25 | -t时间:指定iptraf指令监视的时间;
26 | -B;将标注输出重新定向到“/dev/null”,关闭标注输入,将程序作为后台进程运行;
27 | -f:清空所有计数器;
28 | -h:显示帮助信息。
29 | ```
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/iptstate.md:
--------------------------------------------------------------------------------
 1 | iptstate
 2 | ===
 3 | 
 4 | 显示iptables的工作状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **iptstate命令** 以top指令类似的风格时显示Linux内核中iptables的工作状态。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | iptstate(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:指定输出信息的排序规则;
20 | -d:不动态地改变窗口大小;
21 | -f:过滤本地回送信息;
22 | -l:将ip地址解析为域名;
23 | -L:隐藏于DNS查询相关状态;
24 | -r:指定刷新屏幕的频率;
25 | -R:反序排列;
26 | -s:单次运行模式;
27 | -t:显示汇总信息。
28 | ```
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/ispell.md:
--------------------------------------------------------------------------------
 1 | ispell
 2 | ===
 3 | 
 4 | 检查文件中出现的拼写错误
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ispell命令** 用于检查文件中出现的拼写错误。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ispell(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定要进行拼写检查的文件。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/joe.md:
--------------------------------------------------------------------------------
 1 | joe
 2 | ===
 3 | 
 4 | 强大的纯文本编辑器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **joe命令** 是一款功能强大的纯文本编辑器,拥有众多编写程序和文本的优良特性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | joe(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -force:强制在最后一行的结尾处加上换行符号;
20 | -lines<行数>:设置行数;
21 | -lightoff:选取的区块在执行完区块命令后,就会恢复成原来的状态;
22 | -autoindent:自动缩排;
23 | -backpath:<目录>:指定备份文件的目录;
24 | -beep:编辑时,若有错误即发出哔声;
25 | -columns<栏位>:设置栏数;
26 | -csmode:可执行连续查找模式;
27 | -dopadding:是程序跟tty间存在缓冲区;
28 | -exask:在程序中,执行“Ctrl+k+x”时,会先确认是否要保存文件;
29 | -force:强制在最后一行的结尾处加上换行符号;
30 | -help:执行程序时一并显示帮助;
31 | -keepup:在进入程序后,画面上方为状态列;
32 | -marking:在选取区块时,反白区块会随着光标移动;
33 | -mid:当光标移出画面时,即自动卷页,使光标回到中央;
34 | -nobackups:不建立备份文件;
35 | -nonotice:程序执行时,不显示版本信息;
36 | -nosta:程序执行时,不显示状态列;
37 | -noxon:尝试取消“Ctrl+s”和“Ctrl+q”键的功能;
38 | -orphan:若同时开启一个以上的文件,则其他文件会置于独立的缓冲区,而不会另外开启编辑区;
39 | -pg<行数>:按“PageUp”或“PageDown”换页时,所要保留前一页的行数;
40 | -skiptop<行数>:不使用屏幕上方指定的行数。
41 | ```
42 | 
43 | ###  参数
44 | 
45 | 文件:指定要编辑的文件。
46 | 
47 | 
48 | 


--------------------------------------------------------------------------------
/command/kernelversion.md:
--------------------------------------------------------------------------------
 1 | kernelversion
 2 | ===
 3 | 
 4 | 打印当前内核的主版本号
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **kernelversion命令** 用于打印当前内核的主版本号。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | kernelversion
14 | ```
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/command/kexec.md:
--------------------------------------------------------------------------------
 1 | kexec
 2 | ===
 3 | 
 4 | 从当前正在运行的内核引导到一个新内核
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **kexec命令** 是Linux内核的一个补丁,让您可以从当前正在运行的内核直接引导到一个新内核。在上面描述的引导序列中,kexec跳过了整个引导装载程序阶段(第一部分)并直接跳转到我们希望引导到的内核。不再有硬件的重启,不再有固件操作,不再涉及引导装载程序。完全避开了引导序列中最弱的一环 -- 固件。这一功能部件带来的最大益处在于,系统现在可以极其快速地重新启动。
 9 | 
10 |  **kexec的好处:** 要求高可用性的系统,以及需要不断重新启动系统的内核开发人员,都将受益于kexec。因为 kexec跳过了系统重新启动过程中最耗时的部分(也就是固件初始化硬件设备的阶段),所以重新启动变得非常快,可用性得到了提高。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | kexec(选项)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -l:指定内核映像文件;
22 | -e:允许当前被加载的内核;
23 | -f:强制立即调用系统调用“kexec”,而不调用“shutdown”;
24 | -t:指定新内核的类型;
25 | -u:卸载当前的kexec目标内核。
26 | ```
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/killall.md:
--------------------------------------------------------------------------------
 1 | killall
 2 | ===
 3 | 
 4 | 使用进程的名称来杀死一组进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **killall命令** 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | killall(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -e:对长名称进行精确匹配;
20 | -l:忽略大小写的不同;
21 | -p:杀死进程所属的进程组;
22 | -i:交互式杀死进程,杀死进程前需要进行确认;
23 | -l:打印所有已知信号列表;
24 | -q:如果没有进程被杀死。则不输出任何信息;
25 | -r:使用正规表达式匹配要杀死的进程名称;
26 | -s:用指定的进程号代替默认信号“SIGTERM”;
27 | -u:杀死指定用户的进程。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 进程名称:指定要杀死的进程名称。
33 | 
34 | ###  实例
35 | 
36 | ```shell
37 | # 杀死所有同名进程
38 | killall vi
39 | # 指定向进程发送的信号
40 | killall -9 vi
41 | # 0信号表示不向进程发送信号, 可通过返回值判断进程是否存在, 0(存在)1(不存在)
42 | killall -0 vi
43 | echo $?
44 | ```
45 | 
46 | 
47 | 


--------------------------------------------------------------------------------
/command/ld.md:
--------------------------------------------------------------------------------
 1 | ld
 2 | ===
 3 | 
 4 | 将目标文件连接为可执行程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ld命令** 是GNU的连接器,将目标文件连接为可执行程序。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | ld(选项)(参数)
14 | ld [options] objfile ...
15 | ```
16 | 
17 | ###  选项 
18 | 
19 | ```shell
20 | -o:指定输出文件名;
21 | -e:指定程序的入口符号。
22 | ```
23 | 
24 | ###  参数 
25 | 
26 | 目标文件:指定需要连接的目标文件。
27 | 
28 | ### 实例
29 | 
30 | 这告诉ld通过将文件 `/lib/crt0.o` 与 `hello.o` 和库 `libc.a` 链接起来,生成一个名为 `output` 的文件,该文件将来自标准搜索目录。
31 | 
32 | ```shell
33 | ld -o <output> /lib/crt0.o hello.o -lc
34 | ld -o output /lib/crt0.o hello.o -lc
35 | ```
36 | 
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/ldd.md:
--------------------------------------------------------------------------------
 1 | ldd
 2 | ===
 3 | 
 4 | 打印程序或者库文件所依赖的共享库列表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ldd命令** 用于打印程序或者库文件所依赖的共享库列表。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ldd(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --version:打印指令版本号;
20 | -v:详细信息模式,打印所有相关信息;
21 | -u:打印未使用的直接依赖;
22 | -d:执行重定位和报告任何丢失的对象;
23 | -r:执行数据对象和函数的重定位,并且报告任何丢失的对象和函数;
24 | --help:显示帮助信息。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 文件:指定可执行程序或者文库。
30 | 
31 | ###  其他介绍
32 | 
33 | 首先ldd不是一个可执行程序,而只是一个shell脚本
34 | 
35 | ldd能够显示可执行模块的dependency,其原理是通过设置一系列的环境变量,如下:`LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSE`等。当`LD_TRACE_LOADED_OBJECTS`环境变量不为空时,任何可执行程序在运行时,它都会只显示模块的dependency,而程序并不真正执行。要不你可以在shell终端测试一下,如下:
36 | 
37 | ```shell
38 | export LD_TRACE_LOADED_OBJECTS=1
39 | ```
40 | 
41 | 再执行任何的程序,如ls等,看看程序的运行结果。
42 | 
43 | ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。我们知道,ld-linux.so模块会先于executable模块程序工作,并获得控制权,因此当上述的那些环境变量被设置时,ld-linux.so选择了显示可执行模块的dependency。
44 | 
45 | 实际上可以直接执行ld-linux.so模块,如:`/lib/ld-linux.so.2 --list program`(这相当于ldd program)
46 | 
47 | 
48 | 


--------------------------------------------------------------------------------
/command/less.md:
--------------------------------------------------------------------------------
 1 | less
 2 | ===
 3 | 
 4 | 分屏上下翻页浏览文件内容
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **less命令** 的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | less(选项)(参数)
14 | ```
15 | 
16 | ###  选项 
17 | 
18 | ```shell
19 | -e:文件内容显示完毕后,自动退出;
20 | -f:强制显示文件;
21 | -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
22 | -l:搜索时忽略大小写的差异;
23 | -N:每一行行首显示行号;
24 | -s:将连续多个空行压缩成一行显示;
25 | -S:在单行显示较长的内容,而不换行显示;
26 | -x<数字>:将TAB字符显示为指定个数的空格字符。
27 | -r:能够显示设置的颜色。
28 | ```
29 | 
30 | ###  参数 
31 | 
32 | 文件:指定要分屏显示内容的文件。
33 | 
34 | ## 实例
35 | 
36 | ```shell
37 | sudo less /var/log/shadowsocks.log
38 | 
39 | /字符串:向下搜索"字符串"的功能
40 | ?字符串:向上搜索"字符串"的功能
41 | n:继续向后搜索
42 | N:向前搜索
43 | b: 向后翻一页
44 | d: 向后翻半页
45 | u: 向前滚动半页
46 | y: 向前滚动一行
47 | Q: 退出less 命令
48 | 空格键: 滚动一页
49 | 回车键: 滚动一行
50 | [pagedown]: 向下翻动一页
51 | [pageup]: 向上翻动一页
52 | G: 移动到最后一行
53 | g: 移动到第一行
54 | 
55 | ```
56 | 
57 | 
58 | 


--------------------------------------------------------------------------------
/command/lftpget.md:
--------------------------------------------------------------------------------
 1 | lftpget
 2 | ===
 3 | 
 4 | 调用lftp指令下载指定的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lftpget命令** 通过调用lftp指令下载指定的文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lftpget(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:继续先前的下载;
20 | -d:输出调试信息;
21 | -v:输出详细信息。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定要下载的文件,文件必须是合法的URL路径。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/lnstat.md:
--------------------------------------------------------------------------------
 1 | lnstat
 2 | ===
 3 | 
 4 | 显示Linux系统的网路状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lnstat命令** 用来显示Linux系统的网路状态。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lnstat(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:显示帮助信息;
20 | -V:显示指令版本信息;
21 | -c:指定显示网络状态的次数,每隔一定时间显示一次网络状态;
22 | -d:显示可用的文件或关键字;
23 | -i:指定两次显示网络状的间隔秒数;
24 | -k:只显示给定的关键字;
25 | -s:是否显示标题头;
26 | -w:指定每个字段所占的宽度。
27 | ```
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/local.md:
--------------------------------------------------------------------------------
 1 | local
 2 | ===
 3 | 
 4 | 在函数内定义局部变量。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | local [-aAfFgilnrtux] [-p] [name[=value] ...]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 在函数内定义局部变量
15 | - 显示局部变量
16 | - 在函数内定义全局变量
17 | 
18 | ## 选项
19 | 
20 | ```shell
21 | local命令的选项与declare命令的相同,请参考declare命令的选项。
22 | ```
23 | 
24 | ## 参数
25 | 
26 | name(可选):变量名或已定义函数名。
27 | 
28 | value(可选):变量的值。
29 | 
30 | ## 返回值
31 | 
32 | `local`返回true除非你提供了非法选项、赋值错误或是在函数外使用`local`命令。
33 | 
34 | ## 例子
35 | 
36 | ```shell
37 | 相关例子请参考declare命令
38 | ```
39 | 
40 | ## 错误用法
41 | 
42 | - 在函数外使用该命令。
43 | 
44 | 
45 | ### 注意
46 | 
47 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令以及`man bash`、`info bash`的相应部分。
48 | 
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/logger.md:
--------------------------------------------------------------------------------
 1 | logger
 2 | ===
 3 | 
 4 | 在系统日志中记录相应条目
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **logger命令** 是用于往系统中写入日志,他提供一个shell命令接口到syslog系统模块
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | logger [options] [message]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 |  -T, --tcp             使用流连接(TCP)
20 |  -d, --udp             使用数据报(UDP)
21 |  -i, --id              逐行记录每一次logger的进程ID
22 |  -f, --file <file>     记录特定的文件
23 |  -h, --help            显示帮助文本并退出
24 |  -n, --server <name>   写入指定的远程syslog服务器,使用UDP代替内装式syslog的例程
25 |  -P, --port <port>     使用指定的UDP端口。默认的端口号是514
26 |  -p, --priority <prio> 指定输入消息的优先级,优先级可以是数字或者指定为 " facility.level" 的格式。
27 |                        比如:" -p local3.info " local3 这个设备的消息级别为 info。
28 |                        默认级别是 "user.notice"
29 |  -s, --stderr          输出标准错误到系统日志。
30 |  -t, --tag <tag>       指定标记记录
31 |  -u, --socket <socket> 写入指定的socket,而不是到内置系统日志例程。
32 |  -V, --version         输出版本信息并退出
33 | ```
34 | 
35 | ### 例子
36 | 
37 | ```shell
38 | logger -p syslog.info "backup.sh is starting"
39 | ```
40 | 
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/login.md:
--------------------------------------------------------------------------------
 1 | login
 2 | ===
 3 | 
 4 | 登录系统或切换用户身份
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **login命令** 用于给出登录界面,可用于重新登录或者切换用户身份,也可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在命令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当`/etc/nologin`文件存在时,系统只root帐号登入系统,其他用户一律不准登入。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | login(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -p:告诉login指令不销毁环境变量;
20 | -h:指定远程服务器的主机名。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 用户名:指定登录使用的用户名。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/logname.md:
--------------------------------------------------------------------------------
 1 | logname
 2 | ===
 3 | 
 4 | 打印当前终端登录用户的名称。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | logname [OPTION]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 打印当前终端登录用户的名称。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --help       显示帮助信息并退出。
20 | --version    显示版本信息并退出。
21 | ```
22 | 
23 | ## 返回值
24 | 
25 | 返回0表示成功,返回非0值表示失败。
26 | 
27 | ## 例子
28 | 
29 | ```shell
30 | [root@localhost ~]# logname
31 | root
32 | ```
33 | 
34 | ### 注意
35 | 
36 | 1. 注意区分 `whoami` 和 `logname` 这两个命令;比如我们以用户 `root` 打开的终端,然后切换到了用户 `user2`。此时, `whoami`返回的是当前用户 `user2`, `logname` 返回的是 `root`,大家可以自行实践验证一下。
37 | 
38 | 2. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 logname`,`info coreutils 'logname invocation'`。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/logout.md:
--------------------------------------------------------------------------------
 1 | logout
 2 | ===
 3 | 
 4 | 退出当前登录的Shell
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **logout命令** 用于退出当前登录的Shell,logout指令让用户退出系统,其功能和login指令相互对应。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | logout
14 | ```
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/command/logsave.md:
--------------------------------------------------------------------------------
 1 | logsave
 2 | ===
 3 | 
 4 | 将命令的输出信息保存到指定的日志文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **logsave命令** 运行给定的命令,并将命令的输出信息保存到指定的日志文件中。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | logsave(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:追加信息到指定的日志文件中。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | *   日志文件:指定记录运行信息的日志文件;
25 | *   指令:需要执行的指令。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/look.md:
--------------------------------------------------------------------------------
 1 | look
 2 | ===
 3 | 
 4 | 显示文件中以指定字符串开头的任意行
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **look命令** 用于显示文件中以指定字符串开头的任意行。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | look(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:使用另一个字典文件web2,该文件也位于/usr/dict目录下;
20 | -d:只对比英文字母和数字,其余一概忽略不予比对;
21 | -f:忽略字符大小写差别;
22 | -t<字尾字符串>:设置字尾字符串。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | *   字符串:指定要查找的字符串;
28 | *   文件:指定要查找的目标文件。
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/lpadmin.md:
--------------------------------------------------------------------------------
 1 | lpadmin
 2 | ===
 3 | 
 4 | 配置CUPS套件中的打印机和类
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lpadmin命令** 用于配置CUPS套件中的打印机和类,也被用来设置打印服务器默认打印机。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lpadmin(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:将打印机加入类;
20 | -i:为打印机设置“system V”风格的接口脚本;
21 | -m:从mode目录设置一个标准的“system V”接口脚本或“PPD”文件;
22 | -o:为“PPD”或服务器设置选项;
23 | -r:从类中删除打印机;
24 | -u:设置打印机用户级的访问控制;
25 | -D:为打印机提供一个文字描述;
26 | -E:允许打印机接受打印任务;
27 | -L:为打印机位置提供一个文字描述;
28 | -P:为打印机指定一个ppd描述文件;
29 | -p:指定要配置的打印机名称;
30 | -d:设置默认打印机。
31 | ```
32 | 
33 | ###  参数
34 | 
35 | 打印机:指定要配置的打印机的名称。
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/lpc.md:
--------------------------------------------------------------------------------
 1 | lpc
 2 | ===
 3 | 
 4 | 命令行方式打印机控制程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lpc命令** 式命令行方式打印机控制程序,有5个内置命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lpc
14 | ```
15 | 
16 | ###  实例
17 | 
18 | ```shell
19 | [root@localhost ~]# lpc
20 | lpc> ?         
21 | 命令可能是缩写。命令是:
22 | 
23 | exit    help    quit    status  ?
24 | lpc> exit
25 | ```
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/lpq.md:
--------------------------------------------------------------------------------
 1 | lpq
 2 | ===
 3 | 
 4 | 显示打印队列中的打印任务的状态信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lpq命令** 用于显示打印队列中的打印任务的状态信息。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | lpq(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -E:强制使用加密方式与服务器连接;
20 | -P:显示中的打印机上的打印队列状态;;
21 | -U:自动可选的用户名;
22 | -a:报告所有打印机的定义任务;
23 | -h:指定打印服务器信息;
24 | -l:使用长格式输出;
25 | +:指定显示状态的间隔时间。
26 | ```
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/lpr.md:
--------------------------------------------------------------------------------
 1 | lpr
 2 | ===
 3 | 
 4 | 将文件发送给指定打印机进行打印
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lpr命令** 用于将文件发送给指定打印机进行打印,如果不指定目标打印机,则使用默认打印机。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lpr(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:与打印服务器连接时强制使用加密;
20 | -H:指定可选的打印服务器;
21 | -C:指定打印任务的名称;
22 | -P:指定接受打印任务的目标打印机;
23 | -U:指定可选的用户名;
24 | -#:指定打印的份数;
25 | -h:关闭banner打印;
26 | -m:打印完成后发送E-mail;
27 | -r:打印完成后删除文件。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 文件:需打印的文件。
33 | 
34 | ###  实例
35 | 
36 | 将man1和man2送到打印机lp进行打印:
37 | 
38 | ```shell
39 | lpr -P lp man1 man2
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/lprm.md:
--------------------------------------------------------------------------------
 1 | lprm
 2 | ===
 3 | 
 4 | 删除打印队列中的打印任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lprm命令** 用于删除打印队列中的打印任务。尚未完成的打印机任务会被放在打印机贮列之中,这个命令可用来将常未送到打印机的任务取消。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lprm(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:与打印服务器连接时强制使用加密;
20 | -P:指定接受打印任务的目标打印机;
21 | -U:指定可选的用户名。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 打印任务:指定需删除的打印任务号。
27 | 
28 | ###  实例
29 | 
30 | 将打印机hpprint中的第102号任务移除:
31 | 
32 | ```shell
33 | lprm -Phpprint 102
34 | ```
35 | 
36 | 将第101号任务由预设打印机中移除:
37 | 
38 | ```shell
39 | lprm 101
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/lpstat.md:
--------------------------------------------------------------------------------
 1 | lpstat
 2 | ===
 3 | 
 4 | 显示CUPS中打印机的状态信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lpstat命令** 用于显示CUPS中打印机的状态信息。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | lpstat(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -E:与打印机连接时加密;
20 | -R:显示打印任务的等级;
21 | -U:指定可选用户名;
22 | -a:显示接受打印任务的打印机;
23 | -c:显示打印机类;
24 | -d:显示默认打印机;
25 | -h:指定可选的服务器信息;
26 | -l:显示长格式;
27 | -p:显示指定打印机,以及打印机是否接受打印任务;
28 | -s:显示汇总信息;
29 | -t:显示所有的状态信息。
30 | ```
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/lsattr.md:
--------------------------------------------------------------------------------
 1 | lsattr
 2 | ===
 3 | 
 4 | 查看文件的第二扩展文件系统属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lsattr命令** 用于查看文件的第二扩展文件系统属性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lsattr(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的。
20 | -D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。
21 | -R:递归的操作方式;
22 | -V:显示指令的版本信息;
23 | -a:列出目录中的所有文件,包括隐藏文件。
24 | ```
25 | 
26 | lsattr经常使用的几个选项-D,-E,-R这三个选项不可以一起使用,它们是互斥的,经常使用的还有-l,-H,使用lsattr时,必须指出具体的设备名,用-l选项指出要显示设备的逻辑名称,否则要用-c,-s,-t等选项唯一的确定某个已存在的设备。
27 | 
28 | ###  参数
29 | 
30 | 文件:指定显示文件系统属性的文件名。
31 | 
32 | ###  实例
33 | 
34 | ```shell
35 | lsattr -E -l rmt0 -H
36 | lsattr -EO -l rmt0
37 | ```
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/lsb_release.md:
--------------------------------------------------------------------------------
 1 | lsb_release
 2 | ===
 3 | 
 4 | 显示发行版本信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | LSB是Linux Standard Base的缩写, **lsb_release命令** 用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。
 9 | 
10 | ```shell
11 | -v 显示版本信息。
12 | -i 显示发行版的id。
13 | -d 显示该发行版的描述信息。
14 | -r 显示当前系统是发行版的具体版本号。
15 | -c 发行版代号。
16 | -a 显示上面的所有信息。
17 | -h 显示帮助信息。
18 | ```
19 | 
20 | 如果当前发行版是LSB兼容的,那么`/etc/lsb_release`文件中会包含LSB_VERSION域。这个域的值可以是用冒号隔开的一系列支持的模块。这些模块名是当前版本支持的LSB的模块名。如果当前版本不是LSB兼容的,就不要包含这个域。
21 | 
22 | 可选的域包括DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME,DISTRIB_DESCRIPTION,它们可以覆盖`/etc/distrib-release`文件中的内容。注:这里的distrib要替换为当前的发行版的名字。如果存在`/etc/lsb-release.d`目录,会在该目录中查找文件名并作为附加的模块版本加在LSB_VERSION前面。文件`/etc/distrib-release`中包含了一些描述信息,用来说明应该分析哪些文件名。
23 | 
24 |  一般的格式是`Distributor release x.x (Codename)`  注意:Debian系统中缺乏相应的描述信息(见`/etc/debian-version`),为了支持Debian系统,大部分信息都被加在了lsb-release文件中。
25 | 
26 | redhat和fedora系统中,还支持一个参数:
27 | 
28 | ```shell
29 | -s, --short  输出简短的描述信息。
30 | ```
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/lvcreate.md:
--------------------------------------------------------------------------------
 1 | lvcreate
 2 | ===
 3 | 
 4 | 用于创建LVM的逻辑卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvcreate命令** 用于创建LVM的逻辑卷。逻辑卷是创建在卷组之上的。逻辑卷对应的设备文件保存在卷组目录下,例如:在卷组"vg1000"上创建一个逻辑卷"lvol0",则此逻辑卷对应的设备文件为"/dev/vg1000/lvol0"。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvcreate(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -n: 指定逻辑卷的名称
20 | -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
21 | -l:指定逻辑卷的大小(LE数)。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 逻辑卷:指定要创建的逻辑卷名称。
27 | 
28 | ###  实例
29 | 
30 | 使用lvcreate命令在卷组"vg1000"上创建一个200MB的逻辑卷。在命令行中输入下面的命令:
31 | 
32 | ```shell
33 | [root@localhost ~]# lvcreate -L 200M -n lvol0 vg1000    #创建大小为200M的逻辑卷
34 | ```
35 | 
36 | 输出信息如下:
37 | 
38 | ```shell
39 | Logical volume "lvol0" created
40 | ```
41 | 
42 | 说明:创建成功后,新的逻辑卷"lvol0",将通过设备文件`/dev/vg1000/lvol0`进行访问。
43 | 
44 | 
45 | 


--------------------------------------------------------------------------------
/command/lvdisplay.md:
--------------------------------------------------------------------------------
 1 | lvdisplay
 2 | ===
 3 | 
 4 | 显示逻辑卷属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvdisplay命令** 用于显示LVM逻辑卷空间大小、读写状态和快照信息等属性。如果省略"逻辑卷"参数,则lvdisplay命令显示所有的逻辑卷属性。否则,仅显示指定的逻辑卷属性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvdisplay(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 逻辑卷:指定要显示属性的逻辑卷对应的设备文件。
19 | 
20 | ###  实例
21 | 
22 | 使用lvdisplay命令显示指定逻辑卷的属性。在命令行中输入下面的命令:
23 | 
24 | ```shell
25 | [root@localhost ~]# lvdisplay /dev/vg1000/lvol0     #显示逻辑卷属性
26 | ```
27 | 
28 | 输出信息如下:
29 | 
30 | ```shell
31 |   --- Logical volume ---  
32 |   LV Name                /dev/vg1000/lvol0  
33 | ......省略部分输出内容......  
34 |   Block device           253:0
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/lvextend.md:
--------------------------------------------------------------------------------
 1 | lvextend
 2 | ===
 3 | 
 4 | 扩展逻辑卷空间
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvextend命令** 用于在线扩展逻辑卷的空间大小,而不中断应用程序对逻辑卷的访问。使用lvextend命令动态在线扩展磁盘空间,整个空间扩展过程对于应用程序来说是完全透明的。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvextend(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
20 | -l:指定逻辑卷的大小(LE数)。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 逻辑卷:指定要扩展空间的逻辑卷。
26 | 
27 | ###  实例
28 | 
29 | 使用lvextend命令为逻辑卷`/dev/vg1000/lvol0`增加100M空间。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | [root@localhost ~]# lvextend -L +100M /dev/vg1000/lvol0    #为了解决增加100M空间
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | Extending logical volume lvol0 to 300.00 MB  
39 | Logical volume lvol0 successfully resized
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/lvreduce.md:
--------------------------------------------------------------------------------
 1 | lvreduce
 2 | ===
 3 | 
 4 | 收缩逻辑卷空间
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvreduce命令** 用于减少LVM逻辑卷占用的空间大小。使用lvreduce命令收缩逻辑卷的空间大小有可能会删除逻辑卷上已有的数据,所以在操作前必须进行确认。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvreduce(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
20 | -l:指定逻辑卷的大小(LE数)。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 逻辑卷:指定要操作的逻辑卷对应的设备文件。
26 | 
27 | ###  实例
28 | 
29 | 使用lvreduce命令减少指定的逻辑卷的空间大小。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | [root@localhost ~]# lvreduce -L -50M /dev/vg1000/lvol0     #将逻辑卷的空间大小减少50M
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | ......省略部分输出内容......  
39 | Do you really want to reduce lvol0? [y/n]: y  #确认操作  
40 |   Reducing logical volume lvol0 to 252.00 MB  
41 |   Logical volume lvol0 successfully resized
42 | ```
43 | 
44 | 
45 | 


--------------------------------------------------------------------------------
/command/lvremove.md:
--------------------------------------------------------------------------------
 1 | lvremove
 2 | ===
 3 | 
 4 | 删除指定LVM逻辑卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvremove命令** 用于删除指定LVM逻辑卷。如果逻辑卷已经使用mount命令加载,则不能使用lvremove命令删除。必须使用umount命令卸载后,逻辑卷方可被删除。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvremove(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:强制删除。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 逻辑卷:指定要删除的逻辑卷。
25 | 
26 | ###  实例
27 | 
28 | 使用lvremove命令删除指定的逻辑卷。在命令行中输入下面的命令:
29 | 
30 | ```shell
31 | [root@localhost ~]# lvremove /dev/vg1000/lvol0    #删除逻辑卷"lvol0"
32 | ```
33 | 
34 | 输出信息如下:
35 | 
36 | ```shell
37 | Do you really want to remove active logical 
38 | volume "lvol0"? [y/n]: y    #确认删除
39 |   Logical volume "lvol0" successfully removed
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/lvresize.md:
--------------------------------------------------------------------------------
 1 | lvresize
 2 | ===
 3 | 
 4 | 调整逻辑卷空间大小
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvresize命令** 用于调整LVM逻辑卷的空间大小,可以增大空间和缩小空间。使用lvresize命令调整逻辑卷空间大小和缩小空间时需要谨慎,因为它有可能导致数据丢失。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvresize(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -L:指定逻辑卷的大小,单位为“kKmMgGtT”字节;
20 | -l:指定逻辑卷的大小(LE数)。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 逻辑卷:指定要删除的逻辑卷。
26 | 
27 | ###  实例
28 | 
29 | 使用lvresize命令调整最大的逻辑卷大小。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | [root@localhost ~]# lvresize -L +200M /dev/vg1000/lvol0     #将逻辑卷空间增加200M
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | Extending logical volume lvol0 to 280.00 MB
39 | Logical volume lvol0 successfully resized
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/lvscan.md:
--------------------------------------------------------------------------------
 1 | lvscan
 2 | ===
 3 | 
 4 | 扫描逻辑卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **lvscan命令** 用于扫描当前系统中存在的所有的LVM逻辑卷。使用lvscan指令可以发现系统中的所有逻辑卷,及其对应的设备文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | lvscan(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:显示逻辑卷的主设备和次设备号。
20 | ```
21 | 
22 | ###  实例
23 | 
24 | 使用lvscan命令扫描系统中的所有逻辑卷。在命令行中输入下面的命令:
25 | 
26 | ```shell
27 | [root@localhost ~]# lvscan     #扫描所有的逻辑卷
28 | ```
29 | 
30 | 输出信息如下:
31 | 
32 | ```shell
33 | ACTIVE          '/dev/vg1000/lvol0' [200.00 MB] inherit
34 | ```
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/mailq.md:
--------------------------------------------------------------------------------
 1 | mailq
 2 | ===
 3 | 
 4 | 显示待发送的邮件队列
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mailq命令** 用户显示待发送的邮件队列,显示的每一个条目包括邮件队列id、邮件大小、加入队列时间、邮件发送者和接受者。如果邮件最后一次尝试后还没有将邮件投递出去,则显示发送失败的原因。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mailq(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:显示详细的信息。
20 | ```
21 | 
22 | ###  实例
23 | 
24 | ```shell
25 | [root@localhost ~]# mailq -v
26 | /var/spool/mqueue is empty
27 |                 Total requests: 0
28 | ```
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/mailstat.md:
--------------------------------------------------------------------------------
 1 | mailstat
 2 | ===
 3 | 
 4 | 显示到达的邮件状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mailstat命令** 用来显示到达的邮件状态。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mailstat(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -k:保持邮件日志文件的完整性,不清空日志文件;
20 | -l:使用长格式显示邮件状态;
21 | -m:合并任何错误信息到一行中显示;
22 | -o:使用老的邮件日志邮件;
23 | -t:使用简洁的格式显示邮件状态;
24 | -s:如果没有邮件则不输出任何信息。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 邮件日志文件:指定要读取邮件日志文件。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/mesg.md:
--------------------------------------------------------------------------------
 1 | mesg
 2 | ===
 3 | 
 4 | 设置当前终端的写权限
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mesg命令** 用于设置当前终端的写权限,即是否让其他用户向本终端发信息。将mesg设置y时,其他用户可利用write命令将信息直接显示在您的屏幕上。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mesg(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | y/n:y表示运行向当前终端写信息,n表示禁止向当前终端写信息。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | [root@localhost ~]# mesg y    #允许系统用户将信息直接显示在你的屏幕上。
24 | [root@localhost ~]# mesg n    #不允许系统用户将信息直接显示在你的屏幕上。
25 | ```
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/mkbootdisk.md:
--------------------------------------------------------------------------------
 1 | mkbootdisk
 2 | ===
 3 | 
 4 | 可建立目前系统的启动盘
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mkbootdisk命令** 用来为当前运行的系统创建能够单独使用的系统引导软盘,以便在系统出现故障时能够启动操作进行适当的修复工作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mkbootdisk(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --device<设备>:指定设备;
20 | --mkinitrdargs<参数>:设置mkinitrd的参数;
21 | --noprompt:不会提示用户插入磁盘;
22 | --verbose:执行时显示详细的信息;
23 | --version:显示版本信息。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | 内核:指定内核版本。
29 | 
30 | ###  实例
31 | 
32 | ```shell
33 | mkbootdisk --device /dev/fd0 `uname -r`
34 | ```
35 | 
36 | 其中,``uname -r``是目前Linux 系统所使用的核心版本,如果你有多个核心版本的话,你以可以直接输入核心版本。例如在这个网页中所使用的核心有两个版本,一个是2.2.12-20,另一个是2.2.18,若要以2.2.18设定开机的话,可以使用:
37 | 
38 | ```shell
39 | mkbootdisk --device /dev/fd0 2.2.18
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/mke2fs.md:
--------------------------------------------------------------------------------
 1 | mke2fs
 2 | ===
 3 | 
 4 | 创建磁盘分区上的“etc2/etc3”文件系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mke2fs命令** 被用于创建磁盘分区上的“etc2/etc3”文件系统。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mke2fs(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b<区块大小>:指定区块大小,单位为字节;
20 | -c;检查是否有损坏的区块;
21 | -f<不连续区段大小>:指定不连续区段的大小,单位为字节;
22 | -F:不管指定的设备为何,强制执行mke2fs;
23 | -i<字节>:指定"字节/inode"的比例;
24 | -N<inode数>:指定要建立的inode数目;
25 | -l<文件>:从指定的文件中,读取文件西中损坏区块的信息;
26 | -L<标签>:设置文件系统的标签名称;
27 | -m<百分比值>:指定给管理员保留区块的比例,预设为5%;
28 | -M:记录最后一次挂入的目录;
29 | -q:执行时不显示任何信息;
30 | -r:指定要建立的ext2文件系统版本;
31 | -R=<区块数>:设置磁盘阵列参数;
32 | -S:仅写入superblock与group descriptors,而不更改inode able inode bitmap以及block bitmap;
33 | -v:执行时显示详细信息;
34 | -V:显示版本信息。
35 | ```
36 | 
37 | ###  参数
38 | 
39 | *   设备文件:指定要创建的文件系统的分区设备文件名;
40 | *   块数:指定要创建的文件系统的磁盘块数量。
41 | 
42 | ###  实例
43 | 
44 | 创建指定的ext2文件系统。
45 | 
46 | ```shell
47 | mke2fs -q /dev/hda1
48 | ```
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/mkfs.md:
--------------------------------------------------------------------------------
 1 | mkfs
 2 | ===
 3 | 
 4 | 用于在设备上创建Linux文件系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mkfs命令** 用于在设备上(通常为硬盘)创建Linux文件系统。mkfs本身并不执行建立文件系统的工作,而是去调用相关的程序来执行。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mkfs(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | fs:指定建立文件系统时的参数;
20 | -t<文件系统类型>:指定要建立何种文件系统;
21 | -v:显示版本信息与详细的使用方法;
22 | -V:显示简要的使用方法;
23 | -c:在制做档案系统前,检查该partition是否有坏轨。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | *   文件系统:指定要创建的文件系统对应的设备文件名;
29 | *   块数:指定文件系统的磁盘块数。
30 | 
31 | ###  实例
32 | 
33 | 在`/dev/hda5`上建一个msdos的档案系统,同时检查是否有坏轨存在,并且将过程详细列出来:
34 | 
35 | ```shell
36 | mkfs -V -t msdos -c /dev/hda5
37 | 
38 | mkfs -t ext3 /dev/sda6     //将sda6分区格式化为ext3格式
39 | mkfs -t ext2 /dev/sda7     //将sda7分区格式化为ext2格式
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/mktemp.md:
--------------------------------------------------------------------------------
 1 | mktemp
 2 | ===
 3 | 
 4 | 创建临时文件供shell脚本使用
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mktemp命令** 被用来创建临时文件供shell脚本使用。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mktemp(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -q:执行时若发生错误,不会显示任何信息;
20 | -u:暂存文件会在mktemp结束前先行删除;
21 | -d:创建一个目录而非文件。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定创建的临时文件。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/more.md:
--------------------------------------------------------------------------------
 1 | more
 2 | ===
 3 | 
 4 | 显示文件内容,每次显示一屏
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **more命令** 是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。
 9 | 
10 | 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:
11 | 
12 | *   按 `Space` 键:显示文本的下一屏内容。
13 | *   按 `Enter` 键:只显示文本的下一行内容。
14 | *   按斜线符`|`:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
15 | *   按H键:显示帮助屏,该屏上有相关的帮助信息。
16 | *   按B键:显示上一屏内容。
17 | *   按Q键:退出more命令。
18 | 
19 | ###  语法
20 | 
21 | ```shell
22 | more(语法)(参数)
23 | ```
24 | 
25 | ###  选项
26 | 
27 | ```shell
28 | -<数字>:指定每屏显示的行数;
29 | -d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
30 | -c:不进行滚屏操作。每次刷新这个屏幕;
31 | -s:将多个空行压缩成一行显示;
32 | -u:禁止下划线;
33 | +<数字>:从指定数字的行开始显示。
34 | ```
35 | 
36 | ###  参数
37 | 
38 | 文件:指定分页显示内容的文件。
39 | 
40 | ###  实例
41 | 
42 | 显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完成的百分比。
43 | 
44 | ```shell
45 | more -dc file
46 | ```
47 | 
48 | 显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
49 | 
50 | ```shell
51 | more -c -10 file
52 | ```
53 | 
54 | 
55 | 
56 | 


--------------------------------------------------------------------------------
/command/mtools.md:
--------------------------------------------------------------------------------
 1 | mtools
 2 | ===
 3 | 
 4 | 显示mtools支持的指令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mtools命令** 显示mtools支持的指令,mtools为MS-DOS文件系统的工具程序,可模拟许多MS-DOS的指令。这些指令都是mtools的符号连接,因此会有一些共同的特性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mtools(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:长文件名重复时自动更改目标文件的长文件名;
20 | -A:短文件名重复但长文件名不同时自动更改目标文件的短文件名;
21 | -o:长文件名重复时,将目标文件覆盖现有的文件;
22 | -O:短文件名重复但长文件名不同时,将目标文件覆盖现有的文件;
23 | -r:长文件名重复时,要求用户更改目标文件的长文件名;
24 | -R:短文件名重复但长文件名不同时,要求用户更改目标文件的短文件名;
25 | -s:长文件名重复时,则不处理该目标文件;
26 | -S:短文件名重复但长文件名不同时,则不处理该目标文件;
27 | -v:执行时显示详细的说明;
28 | -V:显示版本信息。
29 | ```
30 | 
31 | ###  实例
32 | 
33 | 使用mtools命令显示其支持的所有的指令,输入如下命令:
34 | 
35 | ```shell
36 | [root@localhost ~]# mtools     #显示所有支持的指令名称
37 | Supported commands:
38 | mattrib, mbadblocks, mcat, mcd, mclasserase, mcopy, mdel, mdeltree
39 | mdir, mdoctorfat, mdu, mformat, minfo, mlabel, mmd, mmount
40 | mpartition, mrd, mread, mmove, mren, mshowfat, mtoolstest, mtype
41 | mwrite, mzip
42 | ```
43 | 
44 | 如上所示,其显示的所有命令均为mtools工具所支持的。
45 | 
46 | 
47 | 


--------------------------------------------------------------------------------
/command/mysql.md:
--------------------------------------------------------------------------------
 1 | mysql
 2 | ===
 3 | 
 4 | MySQL服务器客户端工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mysql命令** 是MySQL数据库服务器的客户端工具,它工作在命令行终端中,完成对远程MySQL数据库服务器的操作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mysql(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:MySQL服务器的ip地址或主机名;
20 | -u:连接MySQL服务器的用户名;
21 | -e:执行mysql内部命令;
22 | -p:连接MySQL服务器的密码。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 数据库:指定连接服务器后自动打开的数据库。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/mysqladmin.md:
--------------------------------------------------------------------------------
 1 | mysqladmin
 2 | ===
 3 | 
 4 | MySQL服务器管理客户端
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mysqladmin命令** 是mysql服务器管理任务的客户端工具,它可以检查mytsql服务器的配置和当前工作状态,创建和删除数据库,创建用户和修改用户密码等操作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mysqladmin(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -h:MySQL服务器主机名或ip地址;
20 | -u:连接MySQL服务器的用户名;
21 | -p:连接MySQL服务器的密码;
22 | --help:显示帮助信息。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 管理命令:需要在MySQL服务器上执行的管理命令。
28 | 
29 |  **mysqladmin支持下列命令:** 
30 | 
31 | ```shell
32 | create databasename:创建一个新数据库;
33 | drop databasename:删除一个数据库及其所有表;
34 | extended-status:给出服务器的一个扩展状态消息;
35 | flush-hosts:清空所有缓存的主机;
36 | flush-logs:清空所有日志;
37 | flush-tables:清空所有表;
38 | flush-privileges:再次装载授权表(同reload);
39 | kill id,id,...:杀死mysql线程;
40 | password 新口令:将老密码改为新密码;
41 | ping:检查mysqld是否活着;
42 | processlist:显示服务其中活跃线程列表;
43 | reload:重载授权表;
44 | refresh:清空所有表并关闭和打开日志文件;
45 | shutdown:关掉服务器;
46 | status:给出服务器的简短状态消息;
47 | variables:打印出可用变量;
48 | version:得到服务器的版本信息。
49 | ```
50 | 
51 | 
52 | 


--------------------------------------------------------------------------------
/command/mysqlimport.md:
--------------------------------------------------------------------------------
 1 | mysqlimport
 2 | ===
 3 | 
 4 | 为MySQL服务器用命令行方式导入数据
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mysqlimport命令** 为mysql数据库服务器提供了一种命令行方式导入数据工具,它从特定格式的文本文件中读取数据插入MySQL数据库表中。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | mysqlimport(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -D:导入数据前清空表;
20 | -f:出现错误时继续处理剩余的操作;
21 | -h:MySQL服务器的ip地址或主机名;
22 | -u:连接MySQL服务器的用户名;
23 | -p:连接MySQL服务器的密码。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | *   数据库名:指定要导入的数据库名称;
29 | *   文本文件:包含特定格式文本文件。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/mysqlshow.md:
--------------------------------------------------------------------------------
 1 | mysqlshow
 2 | ===
 3 | 
 4 | 显示MySQL中数据库相关信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **mysqlshow命令** 用于显示mysql服务器中数据库、表和列表信息。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | mysqlshow(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -h:MySQL服务器的ip地址或主机名;
20 | -u:连接MySQL服务器的用户名;
21 | -p:连接MySQL服务器的密码;
22 | --count:显示每个数据表中数据的行数;
23 | -k:显示数据表的索引;
24 | -t:显示数据表的类型;
25 | -i:显示数据表的额外信息。
26 | ```
27 | 
28 | ### 参数
29 | 
30 | 数据库信息:指定要显示的数据库信息,可以是一个数据库名,或者是数据库名和表名,或者是数据库名、表名和列名。
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/named-checkzone.md:
--------------------------------------------------------------------------------
 1 | named-checkzone
 2 | ===
 3 | 
 4 | 使用named-checkzone命令可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **named-checkzone命令** 可以进行区域文件有效性检查和转换,必须指定区域名称和区域文件名称。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | named-checkzone [选项] [区域名] [区域文件名]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -q 安静模式
20 | -d 启用调试
21 | -c <类别> 指定区域的类别。如果没指定就使用IN
22 | ```
23 | 
24 | ### 例子
25 | 
26 | 对区域文件/var/named/192.168.0.rev进行有效性检查和转换。
27 | 
28 | ```shell
29 | [root@localhost ~]# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev
30 | zone0.168.192.in-addr.arpa/IN: loaded serial 1268360612
31 | OK
32 | ```
33 | 
34 | 对区域文件/var/named/sh.com.hosts进行有效性检查和转换。
35 | 
36 | ```shell
37 | [root@localhost ~]#  named-checkzone sh.com /var/named/sh.com.hosts
38 | zonesh.com/IN: sh.com/MX 'mail.sh.com' is a CNAME (illegal)
39 | zonesh.com/IN: loaded serial 1268360234
40 | OK
41 | ```
42 | 
43 | 
44 | 


--------------------------------------------------------------------------------
/command/newusers.md:
--------------------------------------------------------------------------------
 1 | newusers
 2 | ===
 3 | 
 4 | 用于批处理的方式一次创建多个命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **newusers命令** 用于批处理的方式一次创建多个命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | newusers(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 用户文件:指定包含用户信息的文本文件,文件的格式要与`/etc/passwd`相同。
19 | 
20 | ###  实例
21 | 
22 | 实用newusers命令批量添加用户:
23 | 
24 | 用法很简单,newusers后面直接跟一个文件,文件格式和`/etc/passwd`的格式相同。
25 | 
26 | ```shell
27 | 用户名1:x:UID:GID:用户说明:用户的家目录:所用SHELL
28 | ```
29 | 
30 | 举例:
31 | 
32 | ```shell
33 | jingang0:x:520:520::/home/jingang0:/sbin/nologin
34 | jingang1:x:521:521::/home/jingang1:/sbin/nologin
35 | ......
36 | ```
37 | 
38 | 值得一提的是关于SHELL类型,查看主机上所有SHELL,可以通过chsh来查看:
39 | 
40 | ```shell
41 | [root@localhost beinan]# chsh --list
42 | /bin/sh
43 | /bin/bash
44 | /sbin/nologin
45 | /bin/ksh
46 | /bin/tcsh
47 | /bin/csh
48 | /bin/zsh
49 | ```
50 | 
51 | 其中除了`/sbin/nologin`,其它类型的SHELL都能登录系统,nologin大多是虚拟用户用的SHELL,也就是说虽然他是系统用户,但他并无登录系统的权限;如果您想添加这类用户,就把他的SHELL设置成`/sbin/nologin`,比如上面的例子。
52 | 
53 | 关于用户名、UID、GID及用户的家目录是怎么回事,您可以读相应的参考文档。
54 | 
55 | 
56 | 


--------------------------------------------------------------------------------
/command/nfsstat.md:
--------------------------------------------------------------------------------
 1 | nfsstat
 2 | ===
 3 | 
 4 | 列出NFS客户端和服务器的工作状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **nfsstat命令** 用于列出NFS客户端和服务器的工作状态。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | nfsstat(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s:仅列出NFS服务器端状态;
20 | -c:仅列出NFS客户端状态;
21 | -n:仅列出NFS状态,默认显示nfs客户端和服务器的状态;
22 | -2:仅列出NFS版本2的状态;
23 | -3:仅列出NFS版本3的状态;
24 | -4:仅列出NFS版本4的状态;
25 | -m:打印以加载的nfs文件系统状态;
26 | -r:仅打印rpc状态。
27 | ```
28 | 
29 | ###  实例
30 | 
31 | 要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息,输入:
32 | 
33 | ```shell
34 | nfsstat -c
35 | ```
36 | 
37 | 要显示和打印与客户机NFS调用相关的信息,输入如下命令:
38 | 
39 | ```shell
40 | nfsstat -cn
41 | ```
42 | 
43 | 要显示和打印客户机和服务器的与RPC调用相关的信息,输入如下命令:
44 | 
45 | ```shell
46 | nfsstat -r
47 | ```
48 | 
49 | 要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息,输入如下命令:
50 | 
51 | ```shell
52 | nfsstat –s
53 | ```
54 | 
55 | 
56 | 


--------------------------------------------------------------------------------
/command/nice.md:
--------------------------------------------------------------------------------
 1 | nice
 2 | ===
 3 | 
 4 | 调整程序执行的优先权等级
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **nice命令** 用于调整进程调度优先级启动其他的程序。
 9 | 
10 | 
11 | ###  语法
12 | 
13 | ```shell
14 | nice [选项] [命令 [参数]...]
15 | ```
16 | 
17 | ###  选项
18 | 
19 | ```shell
20 | -n:指定nice值(整数,-20(最高)~19(最低))。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 指令及选项:需要运行的指令及其他选项。
26 | 
27 | ###  实例
28 | 
29 | 新建一个进程并设置优先级,将当前目录下的documents目录打包,但不希望tar占用太多CPU:
30 | 
31 | ```shell
32 | nice -19 tar zcf pack.tar.gz documents
33 | ```
34 | 
35 | 方法非常简单,即在原命令前加上`nice -19`。很多人可能有疑问了,最低优先级不是19么?那是因为这个“-19”中的“-”仅表示参数前缀;所以,如果希望将当前目录下的documents目录打包,并且赋予tar进程最高的优先级就应该加上`nice --20`:
36 | 
37 | ```shell
38 | nice --20 tar zcf pack.tar.gz documents
39 | ```
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/nisdomainname.md:
--------------------------------------------------------------------------------
 1 | nisdomainname
 2 | ===
 3 | 
 4 | 显示主机NIS的域名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **nisdomainname命令** 用于显示主机NIS的域名。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | nisdomainname(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:详细信息模式。
20 | ```
21 | 
22 | 
23 | 


--------------------------------------------------------------------------------
/command/nm.md:
--------------------------------------------------------------------------------
 1 | nm
 2 | ===
 3 | 
 4 | 显示二进制目标文件的符号表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **nm命令** 被用于显示二进制目标文件的符号表。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | nm(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -A:每个符号前显示文件名;
20 | -D:显示动态符号;
21 | -g:仅显示外部符号;
22 | -r:反序显示符号表。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 目标文件:二进制目标文件,通常是库文件和可执行文件。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/nologin.md:
--------------------------------------------------------------------------------
 1 | nologin
 2 | ===
 3 | 
 4 | 拒绝用户登录系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **nologin命令** 可以实现礼貌地拒绝用户登录系统,同时给出信息。如果尝试以这类用户登录,就在log里添加记录,然后在终端输出This account is currently not available信息,就是这样。一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | nologin
14 | ```
15 | 
16 | ###  实例
17 | 
18 | Linux禁止用户登录:
19 | 
20 | 禁止用户登录后,用户不能登录系统,但可以登录ftp、SAMBA等。我们在Linux下做系统维护的时候,希望个别用户或者所有用户不能登录系统,保证系统在维护期间正常运行。这个时候我们就要禁止用户登录。  
21 | 
22 | 1、禁止个别用户登录,比如禁止lynn用户登录。
23 | 
24 | ```shell
25 | passwd -l lynn
26 | ```
27 | 
28 | 这就话的意思是锁定lynn用户,这样该用户就不能登录了。  
29 | 
30 | ```shell
31 | passwd -u lynn
32 | ```
33 | 
34 | 上面是对锁定的用户lynn进行解锁,用户可登录了。    
35 | 
36 | 2、我们通过修改`/etc/passwd`文件中用户登录的shell
37 | 
38 | ```shell
39 | vi /etc/passwd
40 | ```
41 | 
42 | 更改为:
43 | 
44 | ```shell
45 | lynn:x:500:500::/home/lynn:/sbin/nologin
46 | ```
47 | 
48 | 该用户就无法登录了。  
49 | 
50 | 3、禁止所有用户登录。
51 | 
52 | ```shell
53 | touch /etc/nologin
54 | ```
55 | 
56 | 除root以外的用户不能登录了。
57 | 
58 | 
59 | 


--------------------------------------------------------------------------------
/command/nproc.md:
--------------------------------------------------------------------------------
 1 | nproc
 2 | ===
 3 | 
 4 | 打印可用的处理器单元数量。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | nproc [OPTION]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 打印可用的处理器单元数量。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --all         打印已安装处理器的数量。
20 | --ignore=N    如果可以的情况下,排除 N 个处理单元。
21 | --help        显示帮助信息并退出。
22 | --version     显示版本信息并退出。
23 | ```
24 | 
25 | ## 例子
26 | 
27 | ```shell
28 | [root@localhost ~]# nproc
29 | 8
30 | ```
31 | 
32 | ### 注意
33 | 
34 | 1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 nproc`,`info coreutils 'nproc invocation'`。
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/ntsysv.md:
--------------------------------------------------------------------------------
 1 | ntsysv
 2 | ===
 3 | 
 4 | 集中管理系统的各种服务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ntsysv命令** 提供了一个基于文本界面的菜单操作方式,集中管理系统不同的运行等级下的系统服务启动状态。在RedHat各个发行版,CentOS各个版本,都自带这个工具。它具有互动式操作界面,您可以轻易地利用方向键和空格键等,开启,关闭操作系统在每个执行等级中,所要执行的系统服务。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | ntsysv(选项)
14 | ```
15 | 
16 | ###  选项 
17 | 
18 | ```shell
19 | --leve:指定运行等级;
20 | --back:在互动式界面里,显示Back钮,而非cancel钮。
21 | ```
22 | 
23 | ###  实例 
24 | 
25 | 输入ntsysv命令后,出现一个交互式的管理菜单,如下:
26 | 
27 | ```shell
28 | !ntsysv
29 | ```
30 | 
31 | 使用空格键选择或者取消选项!
32 | 
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/pacman.md:
--------------------------------------------------------------------------------
 1 | pacman
 2 | ===
 3 | 
 4 | Arch Linux 系统及其衍生系统中默认使用的包管理器
 5 | 
 6 | ## 安装
 7 | 
 8 | 在安装 Arch Linux 时,会需要安装 base 包组,其中包括 pacman 包,具体 Arch Linux 安装流程请参见 [Arch Wiki(CN)](https://wiki.archlinuxcn.org/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97)
 9 | 
10 | ## 实例
11 | 
12 | ### 安装软件包
13 | 官方软件包
14 | ```bash
15 | pacman -S p7zip
16 | ```
17 | 
18 | 非官方软件包(用户制作)
19 | ```bash
20 | yay -S package_name1 package_name2 ...
21 | ```
22 | 
23 | ### 查询软件包
24 | 
25 | ```bash
26 | pacman -Ss package_name1 package_name2 ...
27 | ```
28 | 
29 | ### 列出所有软件包
30 | 
31 | ```bash
32 | pacman -Q
33 | ```
34 | 
35 | ### 删除某个软件包
36 | 
37 | ```bash
38 | pacman -R p7zip
39 | ```
40 | 
41 | 或者是同时删除他的依赖
42 | 
43 | ```bash
44 | pacman -Rsc p7zip
45 | ```
46 | 
47 | ### 开始滚动更新
48 | 
49 | ```bash
50 | pacman -Syyu
51 | ```
52 | 
53 | ## 参考资料
54 | 
55 | - Archlinux 中文维基<https://wiki.archlinuxcn.org/zh-hans/Pacman>
56 | 


--------------------------------------------------------------------------------
/command/paste.md:
--------------------------------------------------------------------------------
 1 | paste
 2 | ===
 3 | 
 4 | 将多个文件按列队列合并
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **paste命令** 用于将多个文件按照列队列进行合并。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | paste(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d<间隔字符>或--delimiters=<间隔字符>:用指定的间隔字符取代跳格字符;
20 | -s或——serial串列进行而非平行处理。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件列表:指定需要合并的文件列表。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/pathchk.md:
--------------------------------------------------------------------------------
 1 | pathchk
 2 | ===
 3 | 
 4 | 检查文件中不可移植的部分
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pathchk命令** 用来检查文件中不可移植的部分。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pathchk(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -p:检查大多数的POSIX系统;
20 | -P:检查空名字和“-”开头的文件;
21 | --portability:检查所有的POSIX系统,等同于“-P-p”选项;
22 | --help:显示帮助;
23 | --wersion:显示版本号。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | *   文件:带路径信息的文件;
29 | *   后缀:可选参数,指定要去除的文件后缀字符串。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/perl.md:
--------------------------------------------------------------------------------
 1 | perl
 2 | ===
 3 | 
 4 | perl语言解释器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **perl命令** 是perl语言解释器,负责解释执行perl语言程序。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | perl(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -w:输出有用的警告信息;
20 | -U:允许不安全的操作;
21 | -c:仅检查文件的语法;
22 | -d:在调试下运行脚本程序。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 文件:要运行的perl脚本程序。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/php.md:
--------------------------------------------------------------------------------
 1 | php
 2 | ===
 3 | 
 4 | PHP语言的命令行接口
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **php命令** 是流行的Web开发语言PHP的命令行接口,可以使用PHP语言开发基于命令行的系统管理脚本程序。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | php(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:进入交互模式;
20 | -c:指定“php.ini”的搜索路径。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件:要执行的php脚本。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/pidof.md:
--------------------------------------------------------------------------------
 1 | pidof
 2 | ===
 3 | 
 4 | 查找指定名称的进程的进程号ID号
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pidof命令** 用于查找指定名称的进程的进程号id号。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pidof(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s:仅返回一个进程号;
20 | -c:仅显示具有相同“root”目录的进程;
21 | -x:显示由脚本开启的进程;
22 | -o:指定不显示的进程ID。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 进程名称:指定要查找的进程名称。
28 | 
29 | ###  实例
30 | 
31 | ```shell
32 | pidof nginx
33 | 13312 5371
34 | 
35 | pidof crond
36 | 1509
37 | 
38 | pidof init
39 | 1
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/pkill.md:
--------------------------------------------------------------------------------
 1 | pkill
 2 | ===
 3 | 
 4 | 可以按照进程名杀死进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pkill命令** 可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | pkill(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -o:仅向找到的最小(起始)进程号发送信号;
20 | -n:仅向找到的最大(结束)进程号发送信号;
21 | -P:指定父进程号发送信号;
22 | -g:指定进程组;
23 | -t:指定开启进程的终端。
24 | ```
25 | 
26 | ### 参数
27 | 
28 | 进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
29 | 
30 | ### 实例
31 | 
32 | ```shell
33 | pgrep -l gaim
34 | 2979 gaim
35 | 
36 | pkill gaim
37 | ```
38 | 
39 | 也就是说:kill对应的是PID,pkill对应的是command。
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/poweroff.md:
--------------------------------------------------------------------------------
 1 | poweroff
 2 | ===
 3 | 
 4 | 关闭Linux系统,关闭记录会被写入到/var/log/wtmp日志文件中
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grename命令** 可以重命名卷组的名称。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | poweroff [选项]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -n 关闭之前不同步
20 | -p 当被称为halt时关闭电源
21 | -v 增加输出,包括消息
22 | -q 降低输出错误唯一的消息
23 | -w 并不实际关闭系统,只是写入/var/log/wtmp文件中
24 | -f 强制关机,不调用shutdown
25 | ```
26 | 
27 | ### 例子
28 | 
29 | 关闭Linux系统。
30 | 
31 | ```shell
32 | [root@localhost ~]# poweroff
33 | ```
34 | 
35 | 
36 | 


--------------------------------------------------------------------------------
/command/ppp-off.md:
--------------------------------------------------------------------------------
 1 | ppp-off
 2 | ===
 3 | 
 4 | 关闭ppp连线
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 这是Slackware发行版内附的程序,让用户切断PPP的网络连线。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ppp-off
14 | ```
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/command/protoize.md:
--------------------------------------------------------------------------------
 1 | protoize
 2 | ===
 3 | 
 4 | GNU-C代码转换为ANSI-C代码
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **protoize命令** 属于gcc套件,用于为C语言源代码文件添加函数原型,将GNU-C代码转换为ANSI-C代码。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | protoize(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -d:设置需要转换代码的目录;
20 | -x:转换代码时排除的文件。
21 | ```
22 | 
23 | ### 参数
24 | 
25 | 文件:需要转换代码的C语言源文件。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/pstree.md:
--------------------------------------------------------------------------------
 1 | pstree
 2 | ===
 3 | 
 4 | 以树状图的方式展现进程之间的派生关系
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pstree命令** 以树状图的方式展现进程之间的派生关系,显示效果比较直观。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | pstree(选项)
14 | ```
15 | 
16 | ###  选项 
17 | 
18 | ```shell
19 | -a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;
20 | -c:不使用精简标示法;
21 | -G:使用VT100终端机的列绘图字符;
22 | -h:列出树状图时,特别标明现在执行的程序;
23 | -H<程序识别码>:此参数的效果和指定"-h"参数类似,但特别标明指定的程序;
24 | -l:采用长列格式显示树状图;
25 | -n:用程序识别码排序。预设是以程序名称来排序;
26 | -p:显示程序识别码;
27 | -u:显示用户名称;
28 | -U:使用UTF-8列绘图字符;
29 | -V:显示版本信息。
30 | ```
31 | 
32 | ###  实例 
33 | 
34 | 显示当前所有进程的进程号和进程id
35 | 
36 | ```shell
37 | pstree -p
38 | ```
39 | 
40 | 显示所有进程的所有详细信息,遇到相同的进程名可以压缩显示。
41 | 
42 | ```shell
43 | pstree  -a
44 | ```
45 | 
46 | 获取 SSH 会话的 PID
47 | 
48 | ```shell
49 | pstree -p | grep ssh
50 | 
51 | #  |-sshd(1221)-+-sshd(2768)---bash(2770)-+-grep(2810)
52 | #  |            `-sshd(2807)---sshd(2808)
53 | ```
54 | 
55 | 从上方的输出中,你可以看到 sshd 进程与分支的树形图。sshd 的主进程是 sshd(1221),另两个分支分别为 sshd(2768) 和 sshd(2807)。
56 | 
57 | 
58 | 
59 | 


--------------------------------------------------------------------------------
/command/pvchange.md:
--------------------------------------------------------------------------------
 1 | pvchange
 2 | ===
 3 | 
 4 | 修改物理卷属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvchange命令** 允许管理员改变物理卷的分配许可。如果物理卷出现故障,可以使用pvchange命令禁止分配物理卷上的PE。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | pvchange(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -u:生成新的UUID;
20 | -x:是否允许分配PE。
21 | ```
22 | 
23 | ### 参数
24 | 
25 | 物理卷:指定要修改属性的物理卷所对应的设备文件。
26 | 
27 | ### 实例
28 | 
29 | 使用pvchange命令禁止分配指定物理卷上的PE。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | pvchange -x n /dev/sdb1     #禁止分配"/dev/sdb1"上的PE
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | Physical volume "/dev/sdb1" changed  
39 | 1 physical volume changed / 0 physical volumes not changed
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/pvck.md:
--------------------------------------------------------------------------------
 1 | pvck
 2 | ===
 3 | 
 4 | 检测物理卷的LVM元数据的一致性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvck命令** 用来检测物理卷的LVM元数据的一致性。默认情况下,物理卷中的前4个扇区保存着LVM卷标,可以使用`--labelsector`选项指定其他的位置(例如:数据恢复时)。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pvck(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:调试模式;
20 | -v:详细信息模式;
21 | --labelsector:指定LVE卷标所在扇区。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 物理卷:指定要检查的物理卷对应的设备文件。
27 | 
28 | ###  实例
29 | 
30 | 使用pvck命令检查物理卷`/dev/sdb1`。在命令行中输入下面的命令:
31 | 
32 | ```shell
33 | pvck -v /dev/sdb1    #检查物理卷元数据
34 | Scanning /dev/sdb1  
35 | Found label on /dev/sdb1, sector 1, type=LVM2 001  
36 | Found text metadata area: offset=4096, size=192512 
37 | Found LVM2 metadata record at offset=125952,  
38 | size=70656, offset2=0 size2=0
39 | ```
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/pvdisplay.md:
--------------------------------------------------------------------------------
 1 | pvdisplay
 2 | ===
 3 | 
 4 | 显示物理卷的属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvdisplay命令** 用于显示物理卷的属性。pvdisplay命令显示的物理卷信息包括:物理卷名称、所属的卷组、物理卷大小、PE大小、总PE数、可用PE数、已分配的PE数和UUID。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pvdisplay(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s:以短格式输出;
20 | -m:显示PE到LE的映射。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 物理卷:要显示的物理卷对应的设备文件名。
26 | 
27 | ###  实例
28 | 
29 | 使用pvdisplay命令显示指定的物理卷的基本信息。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | [root@localhost ~]# pvdisplay /dev/sdb1    #显示物理卷基本信息
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | "/dev/sdb1" is a new physical volume of "101.94 MB"  
39 | --- NEW Physical volume ---  
40 | PV Name               /dev/sdb1  
41 | ....省略部分输出内容......  
42 | PV UUID         FOXiS2-Ghaj-Z0Mf- cdVZ-pfpk- dP9p-ifIZXN
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/pvremove.md:
--------------------------------------------------------------------------------
 1 | pvremove
 2 | ===
 3 | 
 4 | 删除一个存在的物理卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvremove命令** 用于删除一个存在的物理卷。使用pvremove指令删除物理卷时,它将LVM分区上的物理卷信息删除,使其不再被视为一个物理卷。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pvremove(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d # 调试模式;
20 | -f # 强制删除;
21 | -y # 对提问回答“yes”。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 物理卷:指定要删除的物理卷对应的设备文件名。
27 | 
28 | ###  实例
29 | 
30 | 使用pvremove指令删除物理卷`/dev/sdb2`。在命令行中输入下面的命令:
31 | 
32 | ```shell
33 | pvremove /dev/sdb2 # 删除物理卷
34 | Labels on physical volume "/dev/sdb2" successfully wiped
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/pvs.md:
--------------------------------------------------------------------------------
 1 | pvs
 2 | ===
 3 | 
 4 | 输出物理卷信息报表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvs命令** 用于输出格式化的物理卷信息报表。使用pvs命令仅能得到物理卷的概要信息,如果要得到更加详细的信息可以使用pvdisplay命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pvs(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --noheadings:不输出标题头;
20 | --nosuffix:不输出空间大小的单位。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 物理卷:要显示报表的物理卷列表。
26 | 
27 | ###  实例
28 | 
29 | 使用pvs命令显示系统中所有物理卷的信息报表。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | pvs # 输出物理卷信息报表 
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 | PV         VG     fmt  Attr PSize   PFree  
39 | /dev/sdb1  vg1000 lvm2 --   100.00M 100.00M  
40 | /dev/sdb2         lvm2 --   101.98M 101.98M
41 | ```
42 | 
43 | 
44 | 


--------------------------------------------------------------------------------
/command/pvscan.md:
--------------------------------------------------------------------------------
 1 | pvscan
 2 | ===
 3 | 
 4 | 扫描系统中所有硬盘的物理卷列表
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pvscan命令** 会扫描系统中连接的所有硬盘,列出找到的物理卷列表。使用pvscan命令的`-n`选项可以显示硬盘中的不属于任何卷组的物理卷,这些物理卷是未被使用的。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pvscan(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:调试模式;
20 | -e:仅显示属于输出卷组的物理卷;
21 | -n:仅显示不属于任何卷组的物理卷;
22 | -s:短格式输出;
23 | -u:显示UUID。
24 | ```
25 | 
26 | ###  实例
27 | 
28 | 使用pvscan命令扫描当前系统中所有硬盘的物理卷,在命令行中输入下面的命令:
29 | 
30 | ```shell
31 | [root@localhost ~]# pvscan     #扫描所有硬盘上的物理卷 
32 | ```
33 | 
34 | 输出信息如下:
35 | 
36 | ```shell
37 | PV /dev/sdb1         lvm2 [101.94 MB]  
38 | PV /dev/sdb2         lvm2 [101.98 MB]  
39 | Total: 2 [203.92 MB] / in use: 0 [0   ] / in no VG: 2 [203.92  
40 | MB] 
41 | ```
42 | 
43 | 说明:本例中,输出了两个物理卷,它们不属于任何卷组,是可被利用的物理卷。
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/pwck.md:
--------------------------------------------------------------------------------
 1 | pwck
 2 | ===
 3 | 
 4 | 用来验证系统认证文件内容和格式的完整性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pwck命令** 用来验证系统认证文件`/etc/passwd`和`/etc/shadow`的内容和格式的完整性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pwck(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -q:仅报告错误信息;
20 | -s:以用户id排序文件“/etc/passwd”和“/etc/shadow”;
21 | -r:只读方式运行指令;
22 | -R:在指定的chroot环境下检查密码文件。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | *   密码文件:指定密码文件的路径;
28 | *   影子文件:指定影子文件的路径。
29 | 
30 | ###  实例
31 | 
32 | ```shell
33 | pwck
34 | user 'ftp': directory '/var/ftp' does not exist
35 | pwck: no changes
36 | ```
37 | 执行`pwck`命令后显示了一些警告,提示有用户`lp`的主目录 `/var/spool/lpd`不存在。为了解决这个问题,你有几个选项:
38 | 1. 如果你确定这些用户不会被使用,你可以考虑使用`userdel`命令来删除这些用户。
39 | 2. 如果这些用户需要被使用,你应该创建相应的目录。例如,你可以使用以下命令:
40 | 
41 | ```shell
42 | # 创建目录
43 | sudo mkdir /var/ftp
44 | # 将目录的所有权赋给相应的用户
45 | sudo chown ftp:ftp /var/ftp
46 | ```
47 | 3. 如果这些用户对应的软件包还未安装,你可以考虑安装它们。软件包管理器(如`yum`或`apt`)通常会自动创建必要的用户和目录。
48 | 


--------------------------------------------------------------------------------
/command/pwconv.md:
--------------------------------------------------------------------------------
 1 | pwconv
 2 | ===
 3 | 
 4 | 用来开启用户的投影密码
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pwconv命令** 用来开启用户的投影密码。Linux系统里的用户和群组密码,分别存放在名称为passwd和group的文件中, 这两个文件位于`/etc`目录下。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在`/etc`目录下的shadow和gshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符,有效的强化了系统的安全性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pwconv
14 | ```
15 | 
16 | ###  实例
17 | 
18 | ```shell
19 | cat /etc/passwd | grep test
20 | test:x:3001:3001::/home/test:/bin/sh
21 | ```
22 | 
23 | 此时可以发现密码段是x
24 | 
25 | ```shell
26 | cat /etc/shadow | grep test
27 | test:$6$nYOEWamm$bz07nlv/.RgJufb3FAqJJeULfwybzgxmrWqbk7O4vI0KsT6N.ujrh6dDIUcAJdfjksyuyAFDPIngZeD3cgcf.0:15022:0:99999:7:::
28 | ```
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/pwdx.md:
--------------------------------------------------------------------------------
 1 | pwdx
 2 | ===
 3 | 
 4 | 用于显示指定进程的当前工作目录
 5 | 
 6 | ## 内建命令
 7 | 
 8 | 
 9 | ### 概要
10 | 
11 | ```shell
12 | pwdx [进程ID]
13 | ```
14 | 
15 | ### 参数说明
16 | 
17 | - `进程ID`:要查询的进程ID,可以使用 `ps` 命令查看。
18 | 
19 | ## 示例
20 | 
21 | 
22 | 下面示例中,使用 `ps` 命令查看 `nginx` 进程的信息,然后使用 `pwdx` 命令查询进程ID为 `5678` 的进程的当前工作目录。
23 | 
24 | ```bash
25 | $ ps -ef | grep nginx
26 | # root      1234     1  0 10:00 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
27 | # www-data  5678  1234  0 10:01 ?        00:00:00 nginx: worker process
28 | 
29 | $ pwdx 5678
30 | # 5678: /var/www/html
31 | ```
32 | 
33 | 查看当前进程的工作目录:
34 | 
35 | ```bash
36 | $ pwdx $
37 | ```
38 | 
39 | 查看指定进程的工作目录:
40 | 
41 | ```bash
42 | $ pwdx 1234
43 | ```
44 | 
45 | 批量查看多个进程的工作目录:
46 | 
47 | ```bash
48 | $ ps aux | awk '{print $2}' | xargs pwdx
49 | ```
50 | 
51 | 结合其他命令,查看某个进程的工作目录和命令行:
52 | 
53 | ```bash
54 | $ ps -p 1234 -o cmd | tail -n 1 | awk '{print $1}' | xargs pwdx
55 | ```
56 | 
57 | 查看所有进程的工作目录:
58 | 
59 | ```bash
60 | $ ps -eo pid | xargs pwdx
61 | ```


--------------------------------------------------------------------------------
/command/pwunconv.md:
--------------------------------------------------------------------------------
 1 | pwunconv
 2 | ===
 3 | 
 4 | 用来关闭用户的投影密码
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **pwunconv命令** 与pwconv功能相反,用来关闭用户的投影密码。它会把密码从shadow文件内,重回存到passwd文件里。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | pwunconv
14 | ```
15 | 
16 | ###  实例
17 | 
18 | ```shell
19 | pwunconv     # 关闭影子密码
20 | cat /etc/passwd | grep test     # 发现密码已经在passwd文件中了
21 | test:$6$nYOEWamm$bz07nlv/.RgJufb3FAqJJeULfwybzgxmrWqbk7O4vI0KsT6N.ujrh6dDIUcAJdfjksyuyAFDPIngZeD3cgcf.0:3001:3001::/home/test:/bin/sh
22 | 
23 | ls /etc/shadow     # 查看影子文件,提示没有这个文件或目录
24 | ls: cannot access /etc/shadow: No such file or directory
25 | ```
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/quotaoff.md:
--------------------------------------------------------------------------------
 1 | quotaoff
 2 | ===
 3 | 
 4 | 关闭Linux内核中指定文件系统的磁盘配额功能
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **quotaoff命令** 用于关闭Linux内核中指定文件系统的磁盘配额功能。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | quotaoff(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:关闭在/etc/fstab文件里,有加入quota设置的分区的空间限制;
20 | -g:关闭群组的磁盘空间限制;
21 | -u:关闭用户的磁盘空间限制;
22 | -v:显示指令执行过程。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 文件系统:指定要关闭磁盘配额功能的文件系统。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/quotaon.md:
--------------------------------------------------------------------------------
 1 | quotaon
 2 | ===
 3 | 
 4 | 激活Linux内核中指定文件系统的磁盘配额功能
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **quotaon命令** 执行quotaon指令可开启磁盘对用户和群组的空间使用限制,但在开启前,各分区的文件系统根目录必须存在通过quotacheck命令创建的quota配置文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | quotaon(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:开启在/ect/fstab文件里,有加入quota设置的分区的空间限制;
20 | -g:开启群组的磁盘空间限制;
21 | -u:开启用户的磁盘空间限制;
22 | -v:显示指令指令执行过程。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 文件系统:指定要激活磁盘配额功能的文件系统。
28 | 
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/rcconf.md:
--------------------------------------------------------------------------------
 1 | rcconf
 2 | ===
 3 | 
 4 | Debian Linux下的运行等级服务配置工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rcconf命令** 是Debian Linux下的运行等级服务配置工具,用以设置在特定的运行等级下系统服务的启动配置。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rcconf(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --help:打印帮助信息;
20 | --dialog:使用对话命令显示菜单;
21 | --notermcheck:不按照终端属性来设置窗口尺寸。
22 | ```
23 | 
24 | 
25 | 


--------------------------------------------------------------------------------
/command/reboot.md:
--------------------------------------------------------------------------------
 1 | reboot
 2 | ===
 3 | 
 4 | 重新启动正在运行的Linux操作系统
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **reboot命令** 用来重新启动正在运行的Linux操作系统。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | reboot(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
20 | -f:强制重新开机,不调用shutdown指令的功能;
21 | -i:在重开机之前,先关闭所有网络界面;
22 | -n:重开机之前不检查是否有未结束的程序;
23 | -w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
24 | ```
25 | 
26 | ### 实例
27 | 
28 | ```shell
29 | reboot        //重开机。
30 | reboot -w     //做个重开机的模拟(只有纪录并不会真的重开机)。
31 | ```
32 | 
33 | 
34 | 


--------------------------------------------------------------------------------
/command/reject.md:
--------------------------------------------------------------------------------
 1 | reject
 2 | ===
 3 | 
 4 | 指示打印系统拒绝发往指定目标打印机的打印任务
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **reject命令** 属于CUPS套件,用于指示打印系统拒绝发往指定目标打印机的打印任务。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | reject(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -E:当连接到服务器时强制使用加密;
20 | -U:指定连接服务器时使用的用户名;
21 | -h:指定连接服务器名和端口号;
22 | -r:指定拒绝打印任务的原因。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 目标:指定目标打印机。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/renice.md:
--------------------------------------------------------------------------------
 1 | renice
 2 | ===
 3 | 
 4 | 修改正在运行的进程的调度优先级
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **renice命令** 可以修改正在运行的进程的调度优先级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | renice(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -g:指定进程组id;
20 | -p<程序识别码>:改变该程序的优先权等级,此参数为预设值。
21 | -u:指定开启进程的用户名。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 进程号:指定要修改优先级的进程。
27 | 
28 | ###  实例
29 | 
30 | 将行程id为987及32的行程与行程拥有者为daemon及root的优先序号码加1:
31 | 
32 | ```shell
33 | renice 1 987 -u daemon root -p 32
34 | ```
35 | 
36 | 注意:每一个行程都有一个唯一的id。
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/repquota.md:
--------------------------------------------------------------------------------
 1 | repquota
 2 | ===
 3 | 
 4 | 报表的格式输出磁盘空间限制的状态
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **repquota命令** 以报表的格式输出指定分区,或者文件系统的磁盘配额信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | repquota(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:列出在/etc/fstab文件里,有加入quota设置的分区的使用状况,包括用户和群组;
20 | -g:列出所有群组的磁盘空间限制;
21 | -u:列出所有用户的磁盘空间限制;
22 | -v:显示该用户或群组的所有空间限制。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | 文件系统:要打印报表的文件系统或者对应的设备文件名。
28 | 
29 | ###  实例
30 | 
31 | 显示所有文件系统的磁盘使用情况
32 | 
33 | ```shell
34 | repquota -a
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/resize.md:
--------------------------------------------------------------------------------
 1 | resize
 2 | ===
 3 | 
 4 | 命令设置终端机视窗的大小
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **resize命令** 命令设置终端机视窗的大小。执行resize指令可设置虚拟终端机的视窗大小。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | resize [-cu][-s <列数> <行数>]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c  就算用户环境并非C Shell,也用C Shell指令改变视窗大小。
20 | -s <列数> <行数>  设置终端机视窗的垂直高度和水平宽度。
21 | -u  就算用户环境并非Bourne Shell,也用Bourne Shell指令改变视窗大小。
22 | ```
23 | 
24 | ### 实例
25 | 
26 | 使用 C shell
27 | 
28 | ```shell
29 | [root@localhost ~]# resize -c
30 | set noglob;
31 | setenv COLUMNS '99';
32 | setenv LINES '34';
33 | unset noglob;
34 | ```
35 | 
36 | 
37 | 使用 Bourne shell
38 | 
39 | ```shell
40 | [root@localhost ~]# resize -u
41 | COLUMNS=99;
42 | LINES=34;
43 | export COLUMNS LINES;
44 | ```
45 | 
46 | 设置指定大小
47 | 
48 | ```shell
49 | [root@localhost ~]# resize -s 80 160
50 | ```
51 | 
52 | 
53 | 
54 | 


--------------------------------------------------------------------------------
/command/restore.md:
--------------------------------------------------------------------------------
 1 | restore
 2 | ===
 3 | 
 4 | 所进行的操作和dump指令相反
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **restore命令** 是dump命令的逆过程,用于还原dump命令生成的备份文件。倾倒操作可用来备份文件,而还原操作则是写回这些已备份的文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | restore(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b<区块大小>:设置区块大小,单位为Byte;
20 | -c:不检查倾倒操作的备份格式,仅准许读取使用旧格式的备份文件;
21 | -C:使用对比模式,将备份的文件与现行的文件相互对比;
22 | -D<文件系统>:允许用户指定文件系统的名称;
23 | -f<备份文件>:从指定的文件中读取备份数据,进行还原操作;
24 | -h:仅解除目录而不包括与该目录相关的所有文件;
25 | -i:使用互动模式,在进行还原操作时,restore指令将依序询问用户;
26 | -m:解开符合指定的inode编号的文件或目录而非用文件名称指定;
27 | -r:进行还原操作;
28 | -R:全面还原文件系统时,检查应从何处开始进行;
29 | -s<文件编号>:当备份数据超过一卷磁带时,用户可以指定备份文件的编号;
30 | -t:指定文件名称,若该文件已存在备份文件中,则列出它们的名称;
31 | -v:显示指令执行过程;
32 | -x:设置文件名称,且从指定的存储媒体里读入它们,若该文件已存在在备份文件中,则将其还原到文件系统内;
33 | -y:不询问任何问题,一律以同意回答并继续执行指令。
34 | ```
35 | 
36 | ###  实例
37 | 
38 | ```shell
39 | dump -9 -u -f /dev/hda3 /home/frank/
40 | ```
41 | 
42 | 用restore命令来恢复备份:
43 | 
44 | ```shell
45 | restore rf /dev/hda3 /home/frank
46 | ```
47 | 
48 | 用restore命令来查看备份文件里的文件列表:
49 | 
50 | ```shell
51 | restore ft /dev/hda3
52 | ```
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/command/return.md:
--------------------------------------------------------------------------------
 1 | return
 2 | ===
 3 | 
 4 | 从函数中退出并返回数值。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | return [n]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 使得shell函数退出并返回数值,如果没有指定n的值,则默认为函数最后一条命令执行的返回状态。
15 | 
16 | ## 参数
17 | 
18 | n(可选):整数。
19 | 
20 | ## 返回值
21 | 
22 | 返回值为你指定的参数n的值,如果你指定的参数大于255或小于0,那么会通过加或减256的方式使得返回值总是处于0到255之间。
23 | 
24 | 在函数外执行return语句会返回失败。
25 | 
26 | ## 例子
27 | 
28 | ```shell
29 | #!/usr/bin/env bash
30 | # 定义一个返回值大于255的函数
31 | example() {
32 |   return 259
33 | }
34 | # 执行函数
35 | example
36 | # 显示3
37 | echo $?
38 | ```
39 | 
40 | ### 注意
41 | 
42 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
43 | 
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/rlogin.md:
--------------------------------------------------------------------------------
 1 | rlogin
 2 | ===
 3 | 
 4 | 从当前终端登录到远程Linux主机
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rlogin命令** 用于从当前终端登录到远程Linux主机。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rlogin(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -8:允许输入8位字符数据;
20 | -e脱离字符>:设置脱离字符;
21 | -E:滤除脱离字符;
22 | -l用户名称>:指定要登入远端主机的用户名称;
23 | -L:使用litout模式进行远端登入阶段操作。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | 远程主机:指定要登录的远程主机(ip地址或者域名)。
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/rmmod.md:
--------------------------------------------------------------------------------
 1 | rmmod
 2 | ===
 3 | 
 4 | 从运行的内核中移除指定的内核模块
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rmmod命令** 用于从当前运行的内核中移除指定的内核模块。执行rmmod指令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。你可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | rmmod(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -v:显示指令执行的详细信息;
20 | -f:强制移除模块,使用此选项比较危险;
21 | -w:等待着,直到模块能够被除时在移除模块;
22 | -s:向系统日志(syslog)发送错误信息。
23 | ```
24 | 
25 | ### 参数
26 | 
27 | 模块名:要移除的模块名称。
28 | 
29 | ### 实例
30 | 
31 | 用rmmod命令主要用于卸载正在使用的Linux内核模块,与`modprobe -r`命令相似,如下所示:
32 | 
33 | ```shell
34 | [root@localhost boot]# lsmod | grep raid1
35 | raid1                  25153  0
36 | 
37 | [root@localhost boot]# rmmod raid1
38 | [root@localhost boot]# lsmod | grep raid1
39 | ```
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/rpm2cpio.md:
--------------------------------------------------------------------------------
 1 | rpm2cpio
 2 | ===
 3 | 
 4 | 将RPM软件包转换为cpio格式的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpm2cpio命令** 用于将rpm软件包转换为cpio格式的文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpm2cpio(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定要转换的rpm包的文件名。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | rpm2cpio ../libstdc++-4.3.0-8.i386.rpm | cpio -idv
24 | ```
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/rpmbuild.md:
--------------------------------------------------------------------------------
 1 | rpmbuild
 2 | ===
 3 | 
 4 | 创建RPM的二进制软件包和源码软件包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpmbuild命令** 被用于创建rpm的二进制软件包和源码软件包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpmbuild(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --initdb:初始化RPM数据库;
20 | --rebuilddb:从已安装的包头文件,方向重建RPM数据库;
21 | -ba:创建二进制和源代码包;
22 | -bb:创建二进制代码包;
23 | -bs:创建源代码包。
24 | ```
25 | 
26 | ###  实例
27 | 
28 | ```shell
29 | rpmbuild -ba 'spec文件路径'
30 | ```
31 | 
32 | build完后,可以在`/usr/src/redhat/RPMS/`下找到二进制rpm包,rpm包按照其对应的cpu体系结构分类,通常在`/usr/src/redhat/RPMS/i386`目录下。`/usr/src/redhat/SRPMS/`下找到源码rpm包,此时由于是源代码,所以无须按体系结构分类。
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/rpmdb.md:
--------------------------------------------------------------------------------
 1 | rpmdb
 2 | ===
 3 | 
 4 | 初始化和重建RPM数据库
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpmdb命令** 用于初始化和重建rpm数据库。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpmdb(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --initdb:初始化RPM数据库;
20 | --rebuilddb:从已安装的包头文件,反向重建RPM数据库。
21 | ```
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/rpmquery.md:
--------------------------------------------------------------------------------
 1 | rpmquery
 2 | ===
 3 | 
 4 | 从RPM数据库中查询软件包信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpmquery命令** 使用多种依据从rpm数据库中查询软件包信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpmquery(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -qf:查询指定的文件所属的软件包;
20 | -q:查询指定的软件包是否被安装;
21 | -qc:查询软件包中的配置文件;
22 | -qd:查询软件包中的文档文件;
23 | -qi:查询软件包的基本信息。
24 | ```
25 | 
26 | ###  实例
27 | 
28 | 使用rpmquery命令查询指定文件所属的软件包:
29 | 
30 | ```shell
31 | [root@localhost ~]# rpmquery -qf /usr/bin/htpasswd
32 | httpd-2.2.3-81.el5.centos
33 | ```
34 | 
35 | 
36 | 


--------------------------------------------------------------------------------
/command/rpmsign.md:
--------------------------------------------------------------------------------
 1 | rpmsign
 2 | ===
 3 | 
 4 | 使用RPM软件包的签名管理工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpmsign命令** 使用rpm软件包的签名管理工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpmsign(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --addsign:为自动软件包添加签名;
20 | --checksig:验证软件包签名;
21 | --delsign:删除软件包签名;
22 | --import:导入公钥;
23 | --resign:重新签名软件包;
24 | --nodigest:不验证软件包摘要;
25 | --nosignature:不验证软件包签名。
26 | ```
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/rpmverify.md:
--------------------------------------------------------------------------------
 1 | rpmverify
 2 | ===
 3 | 
 4 | 验证已安装的RPM软件包的正确性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rpmverify命令** 用来验证已安装的rpm软件包的正确性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rpmverify(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -Va:验证所有软件包;
20 | -V<软件包>f:验证指定软件包;
21 | --nomd5:不验证软件包的md5摘要。
22 | ```
23 | 
24 | 
25 | 


--------------------------------------------------------------------------------
/command/rsh.md:
--------------------------------------------------------------------------------
 1 | rsh
 2 | ===
 3 | 
 4 | 连接远程主机并执行命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **rsh命令** 用于连接到远程的指定主机并执行指定的命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | rsh(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:使用Socket层级的排错功能;
20 | -l<用户名称>:指定要登入远端主机的用户名称;
21 | -n:把输入的指令号向代号为/dev/null的特殊外围设备。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | *   远程主机:指定要连接的远程主机;
27 | *   指令:指定要在远程主机上执行的命令。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/runlevel.md:
--------------------------------------------------------------------------------
 1 | runlevel
 2 | ===
 3 | 
 4 | 打印当前Linux系统的运行等级
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **runlevel命令** 用于打印当前Linux系统的运行等级。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | runlevel
14 | ```
15 | 
16 | ###  知识扩展
17 | 
18 | linux操作系统自从开始启动至启动完毕需要经历几个不同的阶段,这几个阶段就叫做runlevel,同样,当linux操作系统关闭时也要经历另外几个不同的runlevel,下面我们就准备详细介绍一下runlevel,并向您展示一些小技巧来让您的linux系统避免不必要的重启动。
19 | 
20 | runlevel可以认为是系统状态,形象一点,您可以认为runlevel有点象微软的windows操作系统中的Normal,safemode,和command prompt only。进入每个runlevel都需要启动或关闭相应的一系列服务(services),这些服务(services)以初始化脚本的方式放置于目录`/etc/rc.d/rc?.d/`或者`/etc/rc?.d`下面(?代表runlevel的对应序号)。
21 | 
22 | 在大多数的linux发行版本中,通常有8个runlevel:
23 | 
24 | ```shell
25 | 0 停机
26 | 1 单用户模式
27 | 2 多用户,没有 NFS
28 | 3 完全多用户模式
29 | 4 没有用到
30 | 5 图形界面
31 | 6 重新启动
32 | S s Single user mode
33 | ```
34 | 
35 | 多数的桌面的linux系统缺省的runlevel是5,用户登陆时是图形界面,而多数的服务器版本的linux系统缺省的runlevel是3,用户登陆时是字符界面,runlevel 1和2除了调试之外很少使用,runlevel s和S并不是直接给用户使用,而是用来为Single user mode作准备。
36 | 
37 | linux的运行模式比起windows的启动模式的优势在于:你可以在系统空闲时使用init命令切换你现在使用的runlevel,另外,当你关闭或者启动linux系统时你已经不知不觉中切换你的runlevel,系统关机进程需要调用runlevel(0或6)来关闭所有正在运行中的进程。
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/seinfo.md:
--------------------------------------------------------------------------------
 1 | seinfo
 2 | ===
 3 | 
 4 | 查询SELinux的策略提供多少相关规则
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **seinfo命令** 是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | seinfo(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。
20 | -t:列出SELinux所有类型(type)的种类。
21 | -r:列出SELinux所有角色(role)的种类。
22 | -u:列出SELinux所有身份识别(user)的种类。
23 | -b:列出所有规则的种类(布尔值)。
24 | ```
25 | 
26 | ###  实例
27 | 
28 | 列出与httpd有关的规则:
29 | 
30 | ```shell
31 | seinfo -b | grep httpd
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/sendmail.md:
--------------------------------------------------------------------------------
 1 | sendmail
 2 | ===
 3 | 
 4 | 著名电子邮件服务器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sendmail命令** 是一款著名的电子邮件传送代理程序,也就是平常说的电子邮件服务器,它基于标准的简单邮件传输协议(SMTP)。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | sendmail(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -bd:以守护进程方式运行指令;
20 | -bD:以前台运行方式运行;
21 | -bi:初始化别名数据库;
22 | -bm:以常规发送电子邮件;
23 | -bp:显示邮件的发送队列;
24 | -C:指定配置文件;
25 | -D:将调试的输出信息保存到日志文件,而不显示在标准输出设备上;
26 | -F:指定邮件发送者全名;
27 | -n:禁止使用邮件别名功能;
28 | -f:指定发件人的名字;
29 | -q:设置处理邮件队列中邮件的时间间隔。
30 | ```
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/sesearch.md:
--------------------------------------------------------------------------------
 1 | sesearch
 2 | ===
 3 | 
 4 | 查询SELinux策略的规则详情
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 使用seinfo命令可以查询SELinux的策略提供多少相关规则,如果查到的相关类型或者布尔值,想要知道详细规则时,使用 **sesearch命令** 查询。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:列出该类型或布尔值的所有相关信息
20 | -t:后面还要接类型,例如 -t httpd_t
21 | -b:后面还要接布尔值的规则,例如 -b httpd_enable_ftp_server
22 | ```
23 | 
24 | ###  实例
25 | 
26 | 找出目标文件资源类型为`httpd_sys_content_t`的有关信息:
27 | 
28 | ```shell
29 | sesearch -a -t httpd_sys_content_t
30 | ```
31 | 
32 | 找出主体进程为`httpd_t`且目标文件类型为httpd相关的所有信息:
33 | 
34 | ```shell
35 | sesearch -s httpd_t -t httpd_* -a
36 | ```
37 | 
38 | 查看布尔值`httpd_enable_homedirs`设置了多少规则
39 | 
40 | ```shell
41 | sesearch -b httpd_enable_homedirs -a
42 | ```
43 | 
44 | 
45 | 


--------------------------------------------------------------------------------
/command/setsid.md:
--------------------------------------------------------------------------------
 1 | setsid
 2 | ===
 3 | 
 4 | 在新的会话中运行程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **setsid命令** 子进程从父进程继承了:SessionID、进程组ID和打开的终端。子进程如果要脱离这些,代码中可通过调用setsid来实现。,而命令行或脚本中可以通过使用命令setsid来运行程序实现。setsid帮助一个进程脱离从父进程继承而来的已打开的终端、隶属进程组和隶属的会话。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | setsid[options] <program> [arguments ...]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c, --ctty   将控制终端设置为当前控制终端
20 | -f, --fork   总是 fork
21 | -w, --wait   等待程序退出,并使用相同的返回
22 | ```
23 | 
24 | 
25 | ### 实例
26 | 
27 | 可见 setsid 的使用也是非常方便的,也只需在要处理的命令前加上 setsid 即可
28 | 
29 | ```shell
30 | [root@root ~]# setsid ping www.ibm.com
31 | [root@root ~]# ps -ef |grep www.ibm.com
32 | root 31094 1 0 07:28 ? 00:00:00 ping www.ibm.com
33 | root 31102 29217 0 07:29 pts/4 00:00:00 grep www.ibm.com
34 | [root@root ~]#
35 | ```
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/sftp-server.md:
--------------------------------------------------------------------------------
 1 | sftp-server
 2 | ===
 3 | 
 4 | sftp协议的服务器端程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sftp-server命令** 是一个“sftp”协议的服务器端程序,它使用加密的方式进行文件传输。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sftp-server
14 | ```
15 | 
16 | 
17 | 


--------------------------------------------------------------------------------
/command/sftp.md:
--------------------------------------------------------------------------------
 1 | sftp
 2 | ===
 3 | 
 4 | 交互式的文件传输程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sftp命令** 是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sftp(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -B:指定传输文件时缓冲区的大小;
20 | -l:使用ssh协议版本1;
21 | -b:指定批处理文件;
22 | -C:使用压缩;
23 | -o:指定ssh选项;
24 | -F:指定ssh配置文件;
25 | -R:指定一次可以容忍多少请求数;
26 | -v:升高日志等级。
27 | ```
28 | 
29 | ###  参数
30 | 
31 | 目标主机:指定sftp服务器ip地址或者主机名。
32 | 
33 | ###  实例
34 | 
35 | 建立联接
36 | 
37 | ```shell
38 | $ sftp username@1.1.1.1 # 回车输入密码
39 | ```
40 | 
41 | 获取文件下载到指定路径
42 | 
43 | ```shell
44 | sftp> get /export/sftp/test.csv /Users/my/Downloads
45 | Fetching /export/sftp/test.csv to /Users/my/Downloads/test.csv
46 | /export/sftp/test.csv            100%  133     0.3KB/s   00:00
47 | ```
48 | 
49 | 上传本地文件到服务器指定路径
50 | 
51 | ```shell
52 | sftp> put /Users/my/Downloads/re-produce.gif /export/sftp
53 | Uploading /Users/my/Downloads/re-produce.gif to /export/sftp/re-produce.gif
54 | /Users/my/Downloads/re-produce.gif            100%  257KB  86.6KB/s   00:02
55 | ```
56 | 
57 | 


--------------------------------------------------------------------------------
/command/shift.md:
--------------------------------------------------------------------------------
 1 | shift
 2 | ===
 3 | 
 4 | 移动位置参数。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | shift [n]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 将位置参数`$n, $n+1...`重命名为`$1, $2...`。
15 | 
16 | ## 参数
17 | 
18 | n(可选):大于等于1且小于等于参数个数的整数,默认为1。
19 | 
20 | ## 返回值
21 | 
22 | 返回成功除非n大于参数个数或n小于1以及其他非法值。
23 | 
24 | ## 例子
25 | 
26 | 假设我们的脚本文件(test.sh)如下:
27 | 
28 | ```shell
29 | #!/usr/bin/env bash
30 | # 显示前三个位置参数。
31 | echo "$1 $2 $3"
32 | # 移除前两个位置参数,并将$3重命名为$1,之后的以此类推。
33 | shift 2
34 | echo "$1 $2 $3"
35 | ```
36 | 
37 | 在终端执行该脚本:
38 | 
39 | ```shell
40 | sh test.sh q w e r t
41 | ```
42 | 
43 | 返回信息如下:
44 | 
45 | ```shell
46 | q w e
47 | e r t
48 | ```
49 | 
50 | ### 注意
51 | 
52 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
53 | 
54 | 
55 | 
56 | 


--------------------------------------------------------------------------------
/command/showmount.md:
--------------------------------------------------------------------------------
 1 | showmount
 2 | ===
 3 | 
 4 | 显示NFS服务器加载的信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **showmount命令** 查询“mountd”守护进程,以显示NFS服务器加载的信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | showmount(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:仅显示已被NFS客户端加载的目录;
20 | -e:显示NFS服务器上所有的共享目录。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | NFS服务器:指定NFS服务器的ip地址或者主机名。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/shutdown.md:
--------------------------------------------------------------------------------
 1 | shutdown
 2 | ===
 3 | 
 4 | 用来执行系统关机的命令
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **shutdown命令** 用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | shutdown(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
20 | -f:重新启动时不执行fsck;
21 | -F:重新启动时执行fsck;
22 | -h:将系统关机;
23 | -k:只是送出信息给所有用户,但不会实际关机;
24 | -n:不调用init程序进行关机,而由shutdown自己进行;
25 | -r:shutdown之后重新启动;
26 | -t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
27 | ```
28 | 
29 | ###  参数
30 | 
31 | *   [时间]:设置多久时间后执行shutdown指令;
32 | *   [警告信息]:要传送给所有登入用户的信息。
33 | 
34 | ###  实例
35 | 
36 | 指定现在立即关机:
37 | 
38 | ```shell
39 | shutdown -h now
40 | ```
41 | 
42 | 指定5分钟后关机,同时送出警告信息给登入用户:
43 | 
44 | ```shell
45 | shutdown +5 "System will shutdown after 5 minutes"
46 | ```
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/sleep.md:
--------------------------------------------------------------------------------
 1 | sleep
 2 | ===
 3 | 
 4 | 将目前动作延迟一段时间
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sleep命令** 暂停指定的时间。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sleep(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 时间:指定要暂停时间的长度, 包括如下: 
19 | 
20 | * `2s`: 2秒
21 | * `2m`: 2分钟
22 | * `2h`: 2小时
23 | * `2d`: 2天
24 | * `infinity`: 永久
25 | 
26 | ###  实例
27 | 
28 | 有时在写一些以循环方式运行的监控脚本,设置时间间隔是必不可少的,下面是一个Shell进度条的脚本演示在脚本中生成延时。
29 | 
30 | ```shell
31 | #!/bin/bash
32 | 
33 | b=''
34 | for ((i=0;$i<=100;i++))
35 |  do
36 |  printf "Progress:[%-100s]%d%%\r" $b $i
37 |  sleep 0.1
38 |  b=#$b
39 |  done
40 | echo
41 | ```
42 | 
43 | 


--------------------------------------------------------------------------------
/command/slocate.md:
--------------------------------------------------------------------------------
 1 | slocate
 2 | ===
 3 | 
 4 | 命令查找文件或目录
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **slocate命令** 是一个命令查找文件或目录。slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | slocate [-u][--help][--version][-d <目录>][查找的文件]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d<目录>或--database=<目录>  指定数据库所在的目录。
20 | -u  更新slocate数据库。
21 | --help  显示帮助。
22 | --version  显示版本信息。
23 | ```
24 | 
25 | ### 实例
26 | 
27 | 使用指令"slocate"显示文件名中含有关键字"fdisk"的文件路径信息,输入如下命令:
28 | 
29 | ```shell
30 | $ slocate fdisk #显示文件名中含有fdisk关键字的文件的路径信息 
31 | ```
32 | 
33 | 执行以上命令后,指令执行的输出信息如下:
34 | 
35 | ```shell
36 | $ slocate fdisk #显示文件名中含有fdisk 关键字的文件的路径信息  
37 | /root/cfdisk        #搜索到的文件路径列表  
38 | /root/fdisk  
39 | /root/sfdisk  
40 | /usr/include/grub/ieee1275/ofdisk.h  
41 | /usr/share/doc/util-Linux/README.cfdisk  
42 | /usr/share/doc/util-Linux/README.fdisk.gz  
43 | /usr/share/doc/util-Linux/examples/sfdisk.examples.gz  
44 | ```
45 | 
46 | 
47 | 


--------------------------------------------------------------------------------
/command/smbpasswd.md:
--------------------------------------------------------------------------------
 1 | smbpasswd
 2 | ===
 3 | 
 4 | samba用户和密码管理工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **smbpasswd命令** 属于samba套件,能够实现添加或删除samba用户和为用户修改密码。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | smbpasswd(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:向smbpasswd文件中添加用户;
20 | -c:指定samba的配置文件;
21 | -x:从smbpasswd文件中删除用户;
22 | -d:在smbpasswd文件中禁用指定的用户;
23 | -e:在smbpasswd文件中激活指定的用户;
24 | -n:将指定的用户的密码置空。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 用户名:指定要修改SMB密码的用户。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/source.md:
--------------------------------------------------------------------------------
 1 | source
 2 | ===
 3 | 
 4 | 在当前Shell环境中从指定文件读取和执行命令。
 5 | 
 6 | ### 概要
 7 | 
 8 | source filename [arguments]
 9 | 
10 | ### 主要用途
11 | 
12 | - 执行文件并从文件中加载变量及函数到执行环境
13 | 
14 | #### 参数
15 | 
16 | filename:要执行的文件
17 | 
18 | arguments(可选):传递给文件的参数
19 | 
20 | #### 返回值
21 | 
22 | source返回文件最后一个命令的返回值,如果文件不能读取则会失败
23 | 
24 | #### 错误用法
25 | 
26 | - 文件在`$PATH`中找不到。
27 | 
28 | - 文件未给出。
29 | 
30 | ### 例子
31 | 
32 | - 在一些工具的执行过程中,会把环境变量设置以"export XXX=XXXXXX"或"declare XXX=XXXXXX"的形式导出到
33 | 一个文件中,然后用source加载该文件内容到执行环境中。
34 | 
35 | - 读取和执行/root/.bash_profile文件。
36 | 
37 | ```shell
38 | [root@localhost ~]# source ~/.bash_profile
39 | ```
40 | 
41 | ### Q&A
42 | 
43 | Q:`source`和`sh`在执行文件方面有什么区别?
44 | 
45 | A:`sh`的执行是在子shell中,`source`会使得被执行文件的变量及函数加载进当前终端环境内(除去函数内local修饰的变量等);建议您参考`export`命令的 **知识点** 部分
46 | 
47 | 
48 | ### 注意
49 | 
50 | 1. 该命令是bash内建命令,相关的帮助信息请查看 `help` 命令。
51 | 
52 | 
53 | 
54 | 
55 | 


--------------------------------------------------------------------------------
/command/spell.md:
--------------------------------------------------------------------------------
 1 | spell
 2 | ===
 3 | 
 4 | 对文件进行拼写检查
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **spell命令** 对文件进行拼写检查,并把拼写错误的单词输出。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | spell(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件:指定需要进行拼写检查的文件。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/squid.md:
--------------------------------------------------------------------------------
 1 | squid
 2 | ===
 3 | 
 4 | squid服务器守护进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **squid命令** 高性能的Web客户端代理缓存服务器套件“squid”的服务器守护进程。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | squid(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:将指定调试等级的信息发送到标准错误设备;
20 | -f:使用指定的配置文件。而不使用默认配置文件;
21 | -k:向squid服务器发送指令;
22 | -s:启用syslog日志;
23 | -z:创建缓存目录;
24 | -C:不捕获致命信号;
25 | -D:不进行DNS参数测试;
26 | -N:以非守护进程模式运行;
27 | -X:强制进入完全调试模式。
28 | ```
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/squidclient.md:
--------------------------------------------------------------------------------
 1 | squidclient
 2 | ===
 3 | 
 4 | squid服务器的客户端管理工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **squidclient命令** 使用squid服务器的客户端管理工具,它可以查看squid服务器的详细运行信息和管理squid服务器。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | squidclient(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:不包含“accept:header”;
20 | -r:强制缓存重新加载URL;
21 | -s:安静模式,不输出信息到标准输出设备;
22 | -h:从指定主机获取url
23 | -l:指定一个本地ip地址进行绑定;
24 | -p:端口号,默认为3128;
25 | -m:指定发送请求的方法;
26 | -u:代理认证用户名。
27 | ```
28 | 
29 | ###  参数
30 | 
31 | URL:指定操作缓存中的URL。
32 | 
33 | 
34 | 


--------------------------------------------------------------------------------
/command/ssh-add.md:
--------------------------------------------------------------------------------
 1 | ssh-add
 2 | ===
 3 | 
 4 | 把专用密钥添加到ssh-agent的高速缓存中
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ssh-add命令** 是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在`/usr/bin/ssh-add`。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ssh-add [-cDdLlXx] [-t life] [file ...]
14 | ssh-add -s pkcs11
15 | ssh-add -e pkcs11
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -D:删除ssh-agent中的所有密钥.
22 | -d:从ssh-agent中的删除密钥
23 | -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
24 | -s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
25 | -L:显示ssh-agent中的公钥
26 | -l:显示ssh-agent中的密钥
27 | -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
28 | -X:对ssh-agent进行解锁
29 | -x:对ssh-agent进行加锁
30 | ```
31 | 
32 | ###  实例
33 | 
34 | 1、把专用密钥添加到 ssh-agent 的高速缓存中:
35 | 
36 | ```shell
37 | ssh-add ~/.ssh/id_dsa
38 | ```
39 | 
40 | 2、从ssh-agent中删除密钥:
41 | 
42 | ```shell
43 | ssh-add -d ~/.ssh/id_xxx.pub
44 | ```
45 | 
46 | 3、查看ssh-agent中的密钥:
47 | 
48 | ```shell
49 | ssh-add -l
50 | ```
51 | 
52 | 
53 | 


--------------------------------------------------------------------------------
/command/ssh-agent.md:
--------------------------------------------------------------------------------
 1 | ssh-agent
 2 | ===
 3 | 
 4 | ssh密钥管理器
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ssh-agent命令** 是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。
 9 | 
10 | 其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]]
16 | ssh-agent [-c | -s] -k
17 | ```
18 | 
19 | ###  选项
20 | 
21 | ```shell
22 | -a bind_address:bind the agent to the UNIX-domain socket bind_address.
23 | -c:生成C-shell风格的命令输出。
24 | -d:调试模式。
25 | -k:把ssh-agent进程杀掉。
26 | -s:生成Bourne shell 风格的命令输出。
27 | -t life:设置默认值添加到代理人的身份最大寿命。
28 | ```
29 | 
30 | ###  实例
31 | 
32 | 运行ssh-agent:
33 | 
34 | ```shell
35 | ssh-agent
36 | ```
37 | 
38 | 运行ssh-agent,它会打印出来它使用的环境和变量。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/ssh-copy-id.md:
--------------------------------------------------------------------------------
 1 | ssh-copy-id
 2 | ===
 3 | 
 4 | 把本地的ssh公钥文件安装到远程主机对应的账户下
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ssh-copy-id命令** 可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和`~/.ssh`, 和`~/.ssh/authorized_keys`设置合适的权限。
 9 | 
10 | **ssh-copy-id** 使用ssh登陆远程服务器,一般是通过密码校验用户身份,所以在sshd的配制中应该启用密码校验方式:
11 |   将/etc/ssh/sshd_config中的PasswordAuthentication设置为yes,之后重启sshd
12 | ###  语法
13 | 
14 | ```shell
15 | ssh-copy-id [-i [identity_file]] [user@]machine
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -i:指定公钥文件
22 | ```
23 | 
24 | ###  实例
25 | 
26 | 1、把本地的ssh公钥文件安装到远程主机对应的账户下:
27 | 
28 | ```shell
29 | ssh-copy-id user@server
30 | ssh-copy-id -i ~/.ssh/id_rsa.pub user@server
31 | ```
32 | 
33 | 
34 | 


--------------------------------------------------------------------------------
/command/ssh-keygen.md:
--------------------------------------------------------------------------------
 1 | ssh-keygen
 2 | ===
 3 | 
 4 | 为ssh生成、管理和转换认证密钥
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ssh-keygen命令** 用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ssh-keygen(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:指定密钥长度;
20 | -e:读取openssh的私钥或者公钥文件;
21 | -C:添加注释;
22 | -f:指定用来保存密钥的文件名;
23 | -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
24 | -l:显示公钥文件的指纹数据;
25 | -N:提供一个新密语;
26 | -P:提供(旧)密语;
27 | -q:静默模式;
28 | -t:指定要创建的密钥类型。
29 | -y: 读取私钥输出公钥。
30 | ```
31 | 
32 | 


--------------------------------------------------------------------------------
/command/ssh-keyscan.md:
--------------------------------------------------------------------------------
 1 | ssh-keyscan
 2 | ===
 3 | 
 4 | 收集主机公钥的使用工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ssh-keyscan命令** 是一个收集大量主机公钥的使用工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ssh-keyscan(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -4:强制使用IPv4地址;
20 | -6:强制使用IPv6地址;
21 | -f:从指定文件中读取“地址列表/名字列表”;
22 | -p:指定连接远程主机的端口;
23 | -T:指定连接尝试的超时时间;
24 | -t:指定要创建的密钥类型;
25 | -v:信息模式,打印调试信息。
26 | ```
27 | 
28 | ###  参数
29 | 
30 | 主机列表:指定要收集公钥的主机列表。
31 | 
32 | 
33 | 


--------------------------------------------------------------------------------
/command/sshd.md:
--------------------------------------------------------------------------------
 1 | sshd
 2 | ===
 3 | 
 4 | openssh软件套件中的服务器守护进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sshd命令** 是openssh软件套件中的服务器守护进程。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sshd(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -4:强制使用IPv4地址;
20 | -6:强制使用IPv6地址;
21 | -D:以后台守护进程方式运行服务器;
22 | -d:调试模式;
23 | -e:将错误发送到标准错误设备,而不是将其发送到系统日志;
24 | -f:指定服务器的配置文件;
25 | -g:指定客户端登录时的过期时间,如果在此期限内,用户没有正确认证,则服务器断开次客户端的连接;
26 | -h:指定读取主机key文件;
27 | -i:ssh以inetd方式运行;
28 | -o:指定ssh的配置选项;
29 | -p:静默模式,没有任何信息写入日志;
30 | -t:测试模式。
31 | ```
32 | 
33 | 
34 | 


--------------------------------------------------------------------------------
/command/strings.md:
--------------------------------------------------------------------------------
 1 | strings
 2 | ===
 3 | 
 4 | 在对象文件或二进制文件中查找可打印的字符串
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **strings命令** 在对象文件或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符结束。 strings命令对识别随机对象文件很有用。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | strings [ -a ] [ - ] [ -o ] [ -t Format ] [ -n Number ] [ -Number ]  [file ... ]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a --all:扫描整个文件而不是只扫描目标文件初始化和装载段
20 | -f –print-file-name:在显示字符串前先显示文件名
21 | -n –bytes=[number]:找到并且输出所有NUL终止符序列
22 | - :设置显示的最少的字符数,默认是4个字符
23 | -t --radix={o,d,x} :输出字符的位置,基于八进制,十进制或者十六进制
24 | -o :类似--radix=o
25 | -T --target= :指定二进制文件格式
26 | -e --encoding={s,S,b,l,B,L} :选择字符大小和排列顺序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
27 | @ :读取中选项
28 | ```
29 | 
30 | ###  实例
31 | 
32 | 列出ls中所有的ASCII文本:
33 | 
34 | ```shell
35 | strings /bin/ls
36 | ```
37 | 
38 | 列出ls中所有的ASCII文本:
39 | 
40 | ```shell
41 | cat /bin/ls | strings
42 | ```
43 | 
44 | 查找ls中包含libc的字符串,不区分大小写:
45 | 
46 | ```shell
47 | strings /bin/ls | grep -i libc
48 | ```
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/su.md:
--------------------------------------------------------------------------------
 1 | su
 2 | ===
 3 | 
 4 | 用于切换当前用户身份到其他用户身份
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **su命令** 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | su(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
20 | -f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
21 | -l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
22 | -m,-p或--preserve-environment:变更身份时,不要变更环境变量;
23 | -s<shell>或--shell=<shell>:指定要执行的shell;
24 | --help:显示帮助;
25 | --version;显示版本信息。
26 | ```
27 | 
28 | ###  参数
29 | 
30 | 用户:指定要切换身份的目标用户。
31 | 
32 | ###  实例
33 | 
34 | 变更帐号为root并在执行ls指令后退出变回原使用者:
35 | 
36 | ```shell
37 | su -c ls root
38 | ```
39 | 
40 | 变更帐号为root并传入`-f`选项给新执行的shell:
41 | 
42 | ```shell
43 | su root -f
44 | ```
45 | 
46 | 变更帐号为test并改变工作目录至test的家目录:
47 | 
48 | ```shell
49 | su - test
50 | ```
51 | 
52 | 
53 | 


--------------------------------------------------------------------------------
/command/sum.md:
--------------------------------------------------------------------------------
 1 | sum
 2 | ===
 3 | 
 4 | 计算文件的校验码和显示块数
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sum命令** 用于计算并显示指定文件的校验和与文件所占用的磁盘块数。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | sum(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -r:使用BSD的校验和算法,块大小为1k;
20 | -s:使用system V的校验和算法,块大小为512字节。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件列表:需要计算和与磁盘块数的文件列表。
26 | 
27 | ###  实例
28 | 
29 | 计算文件校验码:
30 | 
31 | ```shell
32 | [root@localhost ~]# sum insert.sql
33 | 00827    12
34 | ```
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/supervisord.md:
--------------------------------------------------------------------------------
 1 | supervisord
 2 | ===
 3 | 
 4 | 配置后台服务/常驻进程的进程管家工具
 5 | 
 6 | ## 安装
 7 | 
 8 | ```shell
 9 | # 安装 supervisord
10 | apt-get install supervisor
11 | ```
12 | 
13 | ## 实例
14 | 
15 | 生成配置文件 `/etc/supervisord.conf`
16 | 
17 | ```shell
18 | [program:app]
19 | command=/usr/bin/gunicorn -w 1 wsgiapp:application
20 | directory=/srv/www
21 | user=www-data
22 | ```
23 | 
24 | supervisord: 启动 supervisor 服务
25 | 
26 | ```shell
27 | supervisorctl start app
28 | supervisorctl stop app
29 | supervisorctl reload # 修改/添加配置文件需要执行这个
30 | ```
31 | 
32 | ## 下载地址
33 | 
34 | https://pypi.python.org/pypi/meld3  
35 | https://pypi.python.org/pypi/supervisor  


--------------------------------------------------------------------------------
/command/suspend.md:
--------------------------------------------------------------------------------
 1 | suspend
 2 | ===
 3 | 
 4 | 挂起shell的执行。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | suspend [-f]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 挂起shell的执行,直到收到`SIGCONT`信号。
15 | 
16 | - 除非使用`-f`选项,否则无法对`login shell`使用。
17 | 
18 | 
19 | ## 选项
20 | 
21 | ```shell
22 | -f    对login shell执行挂起操作。
23 | ```
24 | 
25 | ## 返回值
26 | 
27 | 返回成功除非未开启作业控制或发生了错误。
28 | 
29 | ## 例子
30 | 
31 | ```shell
32 | # 打开一个终端,首先获取PID。
33 | echo $
34 | # 执行挂起命令
35 | suspend
36 | ```
37 | 
38 | ```shell
39 | # 再打开一个终端,发送SIGCONT命令
40 | kill -s SIGCONT PID
41 | # 此时之前的终端结束挂起状态,可以正常交互。
42 | ```
43 | 
44 | ### 注意
45 | 
46 | 1. `bash`的作业控制命令包括`bg fg kill wait disown suspend`。
47 | 2. 该命令需要`set`选项`monitor`处于开启状态时才能执行;查看作业控制状态:输入`set -o`查看`monitor`行;执行`set -o monitor`或`set -m`开启该选项。
48 | 3. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
49 | 
50 | 
51 | 
52 | 


--------------------------------------------------------------------------------
/command/swapoff.md:
--------------------------------------------------------------------------------
 1 | swapoff
 2 | ===
 3 | 
 4 | 关闭指定的交换空间
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **swapoff命令** 用于关闭指定的交换空间(包括交换文件和交换分区)。swapoff实际上为swapon的符号连接,可用来关闭系统的交换区。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | swapoff(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:关闭配置文件“/etc/fstab”中所有的交换空间。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件。
25 | 
26 | ###  实例
27 | 
28 | 关闭交换分区
29 | 
30 | ```shell
31 | swapoff /dev/sda2
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/swapon.md:
--------------------------------------------------------------------------------
 1 | swapon
 2 | ===
 3 | 
 4 | 激活Linux系统中交换空间
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **swapon命令** 用于激活Linux系统中交换空间,Linux系统的内存管理必须使用交换区来建立虚拟内存。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | swapon(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区;
20 | -h:显示帮助;
21 | -p<优先顺序>:指定交换区的优先顺序;
22 | -s:显示交换区的使用状况;
23 | -V:显示版本信息。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | 交换空间:指定需要激活的交换空间,可以是交换文件和交换分区,如果是交换分区则指定交换分区对应的设备文件。
29 | 
30 | ###  实例
31 | 
32 | ```shell
33 | mkswap -c /dev/hdb4 (-c是检查有无坏块)
34 | swapon -v /dev/hdb4
35 | swapon -s
36 | Filename                                type            Size    Used    Priority
37 | /dev/hda5                               partition       506008 96      -1
38 | /dev/hdb4                               partition       489972 0       -2
39 | ```
40 | 
41 | 
42 | 


--------------------------------------------------------------------------------
/command/sync.md:
--------------------------------------------------------------------------------
 1 | sync
 2 | ===
 3 | 
 4 | 用于强制被改变的内容立刻写入磁盘
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **sync命令** 用于强制被改变的内容立刻写入磁盘,更新超块信息。
 9 | 
10 | 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写 入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | sync(选项)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -d, --data             只同步文件数据,不同步不必要的元数据
22 | -f, --file-system      同步包含这些文件的文件系统
23 | --help:显示帮助;
24 | --version:显示版本信息。
25 | ```
26 | 
27 | ###  buffer与cache
28 | 
29 | *   buffer:为了解决写磁盘的效率
30 | *   cache:为了解决读磁盘的效率
31 | 
32 | linux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。
33 | 
34 | sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。
35 | 
36 | 如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。
37 | 
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/syslog.md:
--------------------------------------------------------------------------------
 1 | syslog
 2 | ===
 3 | 
 4 | 系统默认的日志守护进程
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **syslog** 是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。
 9 | 
10 | 几乎所有的网络设备都可以通过syslog协议,将日志信息以用户数据报协议(UDP)方式传送到远端服务器,远端接收日志服务器必须通过syslogd监听UDP 端口514,并根据 syslog.conf配置文件中的配置处理本机,接收访问系统的日志信息,把指定的事件写入特定文件中,供后台数据库管理和响应之用。意味着可以让任何事件都登录到一台或多台服务器上,以备后台数据库用off-line(离线) 方法分析远端设备的事件。
11 | 
12 | 通常,syslog 接受来自系统的各种功能的信息,每个信息都包括重要级。/etc/syslog.conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息。
13 | 
14 | ### 使用方法
15 | 
16 | 在/var/log中创建并写入日志信息是由syslog协议处理的,是由守护进程sylogd负责执行。每个标准的进程都可以用syslog记录日志。可以使用logger命令通过syslogd记录日志。
17 | 
18 | 要向syslog文件/var/log/messages中记录日志信息:
19 | 
20 | ```shell
21 | logger this is a test log line
22 | 
23 | 输出:
24 | tail -n 1 messages
25 | Jan  5 10:07:03 localhost root: this is a test log line
26 | ```
27 | 
28 | 如果要记录特定的标记(tag)可以使用:
29 | 
30 | ```shell
31 | logger -t TAG this is a test log line
32 | 
33 | 输出:
34 | tail -n 1 messages
35 | Jan  5 10:37:14 localhost TAG: this is a test log line
36 | ```
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/tailf.md:
--------------------------------------------------------------------------------
 1 | tailf
 2 | ===
 3 | 
 4 | 在屏幕上显示指定文件的末尾若干行内容,通常用于日志文件的跟踪输出
 5 | 
 6 | ## 补充说明
 7 | 
 8 | tailf命令几乎等同于`tail -f`,严格说来应该与`tail --follow=name`更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与`tail -f`不同的是,如果文件不增长,它不会去访问磁盘文件。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令。
 9 | 
10 | tailf和tail -f的区别
11 | 
12 | 1. tailf 总是从文件开头一点一点的读, 而tail -f 则是从文件尾部开始读
13 | 2. tailf check文件增长时,使用的是文件名, 用stat系统调用;而tail -f 则使用的是已打开的文件描述符; 注:tail 也可以做到类似跟踪文件名的效果; 但是tail总是使用fstat系统调用,而不是stat系统调用;结果就是:默认情况下,当tail的文件被偷偷删除时,tail是不知道的,而tailf是知道的。
14 | 
15 | ###  语法
16 | 
17 | ```shell
18 | tailf logfile # 动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容。
19 | ```
20 | 
21 | ###  选项
22 | 
23 | ```shell
24 | -n, --lines NUMBER  # 输出最后数行
25 | -NUMBER             # 与NUMBER相同 `-n NUMBER'
26 | -V, --version       # 输出版本信息并退出
27 | -h, --help          # 显示帮助并退出
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 目标:指定目标日志。
33 | 
34 | ### 实例
35 | 
36 | ```shell
37 | tailf log/WEB.LOG 
38 | tailf -n 5 log2014.log   # 显示文件最后5行内容
39 | ```
40 | 
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/telinit.md:
--------------------------------------------------------------------------------
 1 | telinit
 2 | ===
 3 | 
 4 | 切换当前正在运行系统的运行等级
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **telinit命令** 用于切换当前正在运行的Linux系统的运行等级。
 9 | 
10 | _RUNLEVEL_ 参数应该是多用户运行级别 `2-5` 之一,`0` 用于停止系统,`6` 用于重新启动系统,或 `1` 用于使系统进入单用户模式。
11 | 
12 | 通常您会使用 `shutdown(8)` 工具来停止或重新启动系统,或者将其降低到单用户模式。
13 | 
14 | _RUNLEVEL_ 也可能是 S 或 s ,这会将系统直接置于单用户模式,而无需先实际停止进程,您可能不希望这样。
15 | 
16 | 通过发出 `runlevel(7)` 事件来更改运行级别,该事件包括 _RUNLEVEL_ 环境变量中的新运行级别以及 PREVLEVEL 变量中的先前运行级别(从环境或 `/var/run/utmp` 获得)。
17 | 
18 | **telinit** 会将新的运行级别写入 `/var/run/utmp` 并将新条目附加到 `/var/log/wtmp`。
19 | 
20 | ###  语法
21 | 
22 | ```shell
23 | telint(选项)(参数)
24 | telinit [OPTION]... RUNLEVEL
25 | ```
26 | 
27 | ###  选项
28 | 
29 | ```shell
30 | -t:指定等待的秒数。
31 | -e 键=值
32 | ```
33 | 
34 | 这指定了与 _RUNLEVEL_ 和 _PREVLEVEL_ 一起包含在事件中的附加环境变量。
35 | 
36 | ###  参数
37 | 
38 | 运行等级:指定要切换的运行等级。
39 | 
40 | ### Environment
41 | 
42 | RUNLEVEL
43 | 
44 | 如果设置优先于从 `/var/run/utmp` 读取,`telinit` 将从该环境变量读取当前运行级别
45 | 
46 | ### Files
47 | 
48 | - `/var/run/utmp` 将从哪里读取当前运行级别; 此文件也将使用新的运行级别进行更新。
49 | - `/var/log/wtmp` 新的运行级别记录将附加到此文件中以获取新的运行级别。
50 | 
51 | 


--------------------------------------------------------------------------------
/command/tempfile.md:
--------------------------------------------------------------------------------
 1 | tempfile
 2 | ===
 3 | 
 4 | shell中给临时文件命名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 有时候在写Shell脚本的时候需要一些临时存储数据的才做,最适合存储临时文件数据的位置就是`/tmp`,因为该目录中所有的内容在系统重启后就会被清空。下面是两种方法为临时数据生成标准的文件名。
 9 | 
10 | ###  tempfile命令
11 | 
12 | `tempfile命令`只有在基于Debian的发行版中才默认自带,比如Ubuntu,其他发行版没有这个命令。
13 | 
14 | 用tempfile命令为一个临时文件命名:
15 | 
16 | ```shell
17 | temp_file_name=$(tempfile)
18 | ```
19 | 
20 | 用一个加带了随机数的文件名作为临时文件命名:
21 | 
22 | ```shell
23 | temp_file_name="/tmp/file_$RANDOM"
24 | ```
25 | 
26 | $RANDOM是一个返回随机数的环境变量。
27 | 
28 | ###  $变量
29 | 
30 | 如果没有tempfile命令的Linux发行版,也可以使用自己的临时文件名:
31 | 
32 | ```shell
33 | temp_file_name="/tmp/file.
quot;
34 | ```
35 | 
36 | `$`是系统预定义变量,显示当前所在进程的进程号,用`.$`作为添加的后缀会被扩展成当前运行脚本的进程id。
37 | 
38 | 
39 | 


--------------------------------------------------------------------------------
/command/times.md:
--------------------------------------------------------------------------------
 1 | times
 2 | ===
 3 | 
 4 | 显示进程累计时间。
 5 | 
 6 | ## 主要用途
 7 | 
 8 | - 打印出shell及其子进程累计使用的用户时间和系统时间。
 9 | 
10 | ## 返回值
11 | 
12 | 总是返回成功。
13 | 
14 | ## 例子
15 | 
16 | ```shell
17 | # 执行命令
18 | times
19 | # 返回结果
20 | 0m0.037s 0m0.009s
21 | 0m0.010s 0m0.024s
22 | # 根据times(2)的man手册,对应关系如下:
23 | # 用户时间        | 系统时间
24 | # 子进程的用户时间 | 子进程的系统时间
25 | ```
26 | 
27 | ### 注意
28 | 
29 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/tload.md:
--------------------------------------------------------------------------------
 1 | tload
 2 | ===
 3 | 
 4 | 显示系统负载状况
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **tload命令** 以图形化的方式输出当前系统的平均负载到指定的终端。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | tload(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -s:指定闲时的刻度;
20 | -d:指定间隔的时间(秒)。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 终端:指定显示信息的终端设备文件。
26 | 
27 | ###  实例
28 | 
29 | 使用tload命令查看系统负载情况:
30 | 
31 | ```shell
32 | tload -d 1
33 | 0.08, 0.02,0.01
34 | 0.04, 0.01, 0.00
35 | 0.04, 0.01, 0.00
36 | 0.04, 0.01,0.00
37 | 0.06, 0.02, 0.00
38 | ```
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/touch.md:
--------------------------------------------------------------------------------
 1 | touch
 2 | ===
 3 | 
 4 | 创建新的空文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **touch命令** 有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | touch(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:或--time=atime或--time=access或--time=use  只更改存取时间;
20 | -c:或--no-create  不建立任何文件;
21 | -d:<时间日期> 使用指定的日期时间,而非现在的时间;
22 | -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
23 | -m:或--time=mtime或--time=modify  只更改变动时间;
24 | -r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
25 | -t:<日期时间>  使用指定的日期时间,而非现在的时间;
26 | --help:在线帮助;
27 | --version:显示版本信息。
28 | ```
29 | 
30 | ###  参数
31 | 
32 | 文件:指定要设置时间属性的文件列表。
33 | 
34 | ###  实例
35 | 
36 | ```shell
37 | touch ex2
38 | ```
39 | 
40 | 在当前目录下建立一个空文件ex2,然后,利用`ls -l`命令可以发现文件ex2的大小为0,表示它是空文件。
41 | 
42 | 批量创建文件
43 | 
44 | ```shell
45 | touch file{1..5}.txt
46 | ```
47 | 
48 | 创建 `job1.md` 文件,并写入 `job 1`
49 | 
50 | ```shell
51 | echo "job 1" > job1.md
52 | ```
53 | 


--------------------------------------------------------------------------------
/command/true.md:
--------------------------------------------------------------------------------
 1 | true
 2 | ===
 3 | 
 4 | 返回状态为成功。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | true
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 用于和其他命令进行逻辑运算。
15 | 
16 | ## 返回值
17 | 
18 | 返回状态总是成功;返回值为0。
19 | 
20 | ## 例子
21 | 
22 | ```shell
23 | # 当你的脚本设置set -e时,任何返回值为失败的命令都会使得脚本退出。
24 | set -e
25 | # 如何临时跳过呢?下面的语句使用逻辑或操作符连接true,返回值一定为真。
26 | some_command || true
27 | 
28 | # 当然,和python的pass一样,也可以用作条件语句临时占位。
29 | ```
30 | 
31 | 
32 | ### 注意
33 | 
34 | 1. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
35 | 
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/tty.md:
--------------------------------------------------------------------------------
 1 | tty
 2 | ===
 3 | 
 4 | 显示连接到当前标准输入的终端设备文件名
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | tty [option] ...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 显示连接到当前标准输入的终端设备文件名,当标准输入不是终端时打印 "not a tty"。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | -s, --silent, --quiet    不打印任何信息,只返回退出状态。
20 | --help                   显示帮助信息并退出。
21 | --version                显示版本信息并退出。
22 | ```
23 | 
24 | ## 返回值
25 | 
26 | 当使用 `-s, --silent, --quiet` 时,返回码为 0 表示标准输入是终端,返回码为 1 表示标准输入不是终端,返回码为 2 表示选项错误,返回码为 3 表示有写错误发生。
27 | 
28 | ## 例子
29 | 
30 | 显示连接到当前标准输入的终端设备文件名。
31 | 
32 | ```shell
33 | [root@localhost ~]# tty
34 | /dev/pts/2
35 | ```
36 | 
37 | 查找终端关联的进程(假设是 pts/2)
38 | 
39 | ```shell
40 | # 注意是筛选 TTY 列。
41 | ps -ef | egrep "pts/2 " | grep -v grep
42 | ```
43 | 
44 | ### 注意
45 | 
46 | 1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 tty`,`info coreutils 'tty invocation'`。
47 | 
48 | 
49 | 


--------------------------------------------------------------------------------
/command/unalias.md:
--------------------------------------------------------------------------------
 1 | unalias
 2 | ===
 3 | 
 4 | 删除由alias设置的别名
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | unalias [-a] name [name ...]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 删除一个或多个别名。
15 | - 删除全部已定义的别名。
16 | 
17 | ## 选项
18 | 
19 | ```shell
20 | -a:删除全部已定义的别名。
21 | ```
22 | 
23 | ## 参数
24 | 
25 | name:指定要删除的一个或多个已定义的别名。
26 | 
27 | ### 返回值
28 | 
29 | unalias返回true除非您要删除的别名未定义。
30 | 
31 | ## 例子
32 | 
33 | ```shell
34 | # 删除全部已定义的别名
35 | unalias -a
36 | 
37 | # 删除已定义的别名(假设当前环境存在以下别名)
38 | unalias vi
39 | unalias ls grep
40 | ```
41 | 
42 | ## 错误用法
43 | 
44 | - 要删除的别名未定义。
45 | 
46 | - 不使用-a选项时没有传递name参数。
47 | 
48 | 
49 | ### 注意
50 | 
51 | 1. **执行脚本时请注意:**
52 | 
53 | > 使用`source`命令执行的bash脚本如果执行了`alias`或`unalias`命令,那么有可能会对终端环境的别名设置产生影响;终端环境的别名设置也可能改变运行结果;
54 | >
55 | > 通过`sh`方式调用的bash脚本或直接运行当前用户有执行权限的脚本不受终端环境的别名影响。
56 | 
57 | 2. 查看及设置别名,请查看`alias`命令。
58 | 
59 | 3. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
60 | 
61 | 
62 | 


--------------------------------------------------------------------------------
/command/unarj.md:
--------------------------------------------------------------------------------
 1 | unarj
 2 | ===
 3 | 
 4 | 解压缩由arj命令创建的压缩包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **unarj命令** 用来解压缩由arj命令创建的压缩包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | unarj(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | e:解压缩.arj文件;
20 | l:显示压缩文件内所包含的文件;
21 | t:检查压缩文件是否正确;
22 | x:解压缩时保留原有的路径。
23 | ```
24 | 
25 | ###  参数
26 | 
27 | .arj压缩包:指定要解压缩的.arj压缩包。
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/uncompress.md:
--------------------------------------------------------------------------------
 1 | uncompress
 2 | ===
 3 | 
 4 | 用来解压.Z文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **uncompress命令** 用来解压缩由compress命令压缩后产生的“.Z”压缩包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | uncompress(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:不提示用户,强制覆盖掉目标文件;
20 | -c:将结果送到标准输出,无文件被改变;
21 | -r:递归的操作方式。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定要压缩的“.Z”压缩包。
27 | 
28 | ###  实例
29 | 
30 | 先创建一个.Z压缩文件
31 | 
32 | ```shell
33 | compress FileName
34 | ```
35 | 
36 | 解压:
37 | 
38 | ```shell
39 | uncompress FileName.Z
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/unexpand.md:
--------------------------------------------------------------------------------
 1 | unexpand
 2 | ===
 3 | 
 4 | 将文件的空白字符转换为制表符
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **unexpand命令** 用于将给定文件中的空白字符(space)转换为制表符(TAB),并把转换结果显示在标准输出设备(显示终端)。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | unexpand(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a或--all:转换文件中所有的空白字符;
20 | --first-only:仅转换开头的空白字符;
21 | -t<N>:指定TAB所代表的N个(N为整数)字符数,默认N值是8。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定要转换空白为TAB的文件列表。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/unlink.md:
--------------------------------------------------------------------------------
 1 | unlink
 2 | ===
 3 | 
 4 | 系统调用函数unlink去删除指定的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **unlink命令** 用于系统调用函数unlink去删除指定的文件。和rm命令作用一样,都是删除文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | unlink(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | --help:显示帮助;
20 | --version:显示版本号。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件:指定要删除的文件。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/unprotoize.md:
--------------------------------------------------------------------------------
 1 | unprotoize
 2 | ===
 3 | 
 4 | 删除C语言源代码文件中的函数原型
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **unprotoize命令** 属于gcc套件,用于删除C语言源代码文件中的函数原型。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | unprotoize(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:设置需要转换代码的目录;
20 | -x:转换代码时排除的文件。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 文件:需要转换代码的C语言源文件。
26 | 
27 | 
28 | 


--------------------------------------------------------------------------------
/command/updatedb.md:
--------------------------------------------------------------------------------
 1 | updatedb
 2 | ===
 3 | 
 4 | 创建或更新slocate命令所必需的数据库文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **updatedb命令** 用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。
 9 | 
10 | 补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
11 | 
12 | ###  语法
13 | 
14 | ```shell
15 | updatedb(选项)
16 | ```
17 | 
18 | ###  选项
19 | 
20 | ```shell
21 | -o<文件>:忽略默认的数据库文件,使用指定的slocate数据库文件;
22 | -U<目录>:更新指定目录的slocate数据库;
23 | -v:显示执行的详细过程。
24 | ```
25 | 
26 | ###  实例
27 | 
28 | 实用updatedb命令的`-U`选项可以指定要更新slocate数据库的目录。
29 | 
30 | ```shell
31 | updatedb -U /usr/local/  更新指定命令的slocate数据库
32 | ```
33 | 
34 | 
35 | 


--------------------------------------------------------------------------------
/command/uptime.md:
--------------------------------------------------------------------------------
 1 | uptime
 2 | ===
 3 | 
 4 | 查看Linux系统负载信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **uptime命令** 能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | uptime(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -V:显示指令的版本信息。
20 | ```
21 | 
22 | ###  实例
23 | 
24 | 使用uptime命令查看系统负载:
25 | 
26 | ```shell
27 | [root@LinServ-1 ~]# uptime -V    #显示uptime命令版本信息
28 | procps version 3.2.7
29 | 
30 | [root@LinServ-1 ~]# uptime
31 |  15:31:30 up 127 days,  3:00,  1 user,  load average: 0.00, 0.00, 0.00
32 | ```
33 | 
34 |  **显示内容说明:** 
35 | 
36 | ```shell
37 | 15:31:30             # 系统当前时间
38 | up 127 days,  3:00   # 主机已运行时间,时间越大,说明你的机器越稳定。
39 | 1 user               # 用户连接数,是总连接数而不是用户数
40 | load average: 0.00, 0.00, 0.00         #  系统平均负载,统计最近1,5,15分钟的系统平均负载
41 | ```
42 | 
43 | 那么什么是系统平均负载呢? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。
44 | 
45 | 如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。
46 | 
47 | 如果你的linux主机是1个双核CPU的话,当Load Average 为6的时候说明机器已经被充分使用了。
48 | 
49 | 
50 | 


--------------------------------------------------------------------------------
/command/userdel.md:
--------------------------------------------------------------------------------
 1 | userdel
 2 | ===
 3 | 
 4 | 用于删除给定的用户以及与用户相关的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **userdel命令** 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | userdel(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:强制删除用户,即使用户当前已登录;
20 | -r:删除用户的同时,删除与用户相关的所有文件。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 用户名:要删除的用户名。
26 | 
27 | ###  实例
28 | 
29 | userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于`/var`目录中,现在我们来删除这个用户:
30 | 
31 | ```shell
32 | userdel linuxde       # 删除用户linuxde,但不删除其家目录及文件;
33 | userdel -r linuxde    # 删除用户linuxde,其家目录及文件一并删除;
34 | ```
35 | 
36 | 请不要轻易用`-r`选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。
37 | 
38 | 其实也有最简单的办法,但这种办法有点不安全,也就是直接在`/etc/passwd`中删除您想要删除用户的记录;但最好不要这样做,`/etc/passwd`是极为重要的文件,可能您一不小心会操作失误。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/usernetctl.md:
--------------------------------------------------------------------------------
 1 | usernetctl
 2 | ===
 3 | 
 4 | 被允许时操作指定的网络接口
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **usernetctl命令** 在用于被允许时操作指定的网络接口。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | usernetctl(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | *   网络接口:被操纵的网络接口;
19 | *   up:激活网络接口;
20 | *   down:禁用网络接口;
21 | *   report:报告网络接口状态。
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/users.md:
--------------------------------------------------------------------------------
 1 | users
 2 | ===
 3 | 
 4 | 打印当前主机所有登陆用户的名称。
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | users [OPTION]... [FILE]
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 每个显示的用户名对应一个登录会话;如果一个用户有不止一个登录会话,那他的用户名将显示相同的次数。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --help       显示帮助信息并退出。
20 | --version    显示版本信息并退出。
21 | ```
22 | 
23 | ## 参数
24 | 
25 | FILE(可选):记录用户当前登录情况的文件;默认使用 `/var/run/utmp` 、`/var/log/wtmp`。
26 | 
27 | ## 返回值
28 | 
29 | 返回0表示成功,返回非0值表示失败。
30 | 
31 | ## 例子
32 | 
33 | ```shell
34 | [root@localhost ~]# users
35 | root root
36 | ```
37 | 
38 | ### 注意
39 | 
40 | 1. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 users`,`info coreutils 'users invocation'`。
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/uupick.md:
--------------------------------------------------------------------------------
 1 | uupick
 2 | ===
 3 | 
 4 | 命令处理传送进来的文件
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **uupick命令** 处理传送进来的文件。 当其他主机通过UUCP将文件传送进来时,可利用uupick指令取出这些文件。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | uupick [-v][-I<配置文件>][-s<主机>][-x<层级>][--help]
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -I<配置文件>或--config<配置文件> 指定配置文件。
20 | -s<主机>或--system<主机> 处理由指定主机传送过来的文件。
21 | -v或--version 显示版本信息。
22 | --help 显示帮助。
23 | ```
24 | 
25 | ### 例子
26 | 
27 | 处理由主机localhost传送过来的文件。在命令行直接输入如下命令:
28 | 
29 | ```shell
30 | uupick-s localhost
31 | ```
32 | 
33 | 该命令通常没有输出。
34 | 
35 | 
36 | 


--------------------------------------------------------------------------------
/command/uuto.md:
--------------------------------------------------------------------------------
 1 | uuto
 2 | ===
 3 | 
 4 | 将文件传送到远端的UUCP主机
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **uuto命令** 为script文件,它实际上会执行uucp,用来将文件传送到远端UUCP主机,并在完成工作后,以邮件通知远端主机上的用户。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | uuto [文件][目的]
14 | ```
15 | 
16 | 
17 | ### 例子
18 | 
19 | 将文件传送到远程 UUCP 主机 localhost 的 tmp 目录,在命令提示符中直接输入如下命令:
20 | 
21 | ```shell
22 | uuto./testfile localhost/tmp # 将文件传送到远程UUCP 主机localhost的tmp目录 
23 | ```
24 | 
25 | 该命令通常没有输出。
26 | 
27 | 


--------------------------------------------------------------------------------
/command/vgchange.md:
--------------------------------------------------------------------------------
 1 | vgchange
 2 | ===
 3 | 
 4 | 修改卷组属性
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgchange命令** 用于修改卷组的属性,经常被用来设置卷组是处于活动状态或非活动状态。处于活动状态的卷组无法被删除,必须使用vgchange命令将卷组设置为非活动状态后才能删除。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgchange(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:设置卷组的活动状态。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 卷组:指定要设置属性的卷组。
25 | 
26 | ###  实例
27 | 
28 | 使用vgchange命令将卷组状态改为活动的。在命令行中输入下面的命令:
29 | 
30 | ```shell
31 | [root@localhost ~]# vgchange -ay vg1000     #将卷组"vg1000"设置为活动状态
32 | ```
33 | 
34 | 输出信息如下:
35 | 
36 | ```shell
37 | 1 logical volume(s) in volume group "vg1000" now active
38 | ```
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/vgconvert.md:
--------------------------------------------------------------------------------
 1 | vgconvert
 2 | ===
 3 | 
 4 | 转换卷组元数据格式
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgconvert命令** 用于转换指定LVM卷组的元数据格式,通常将“LVM1”格式的卷组转换为“LVM2”格式。转换卷组元数据前必须保证卷组处于非活动状态,否则无法完成转换操作。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgconvert(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -M:要转换的卷组格式。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 卷组:指定要转换格式的卷组。
25 | 
26 | ###  实例
27 | 
28 | 转换卷组元数据格式前,使用vgchange命令将卷组设置为非活动状态。在命令行中输入下面的命令:
29 | 
30 | ```shell
31 | [root@localhost lvm]# vgchange -an vg1000    #设置卷组状态为非活动状态
32 | 0 logical volume(s) in volume group "vg1000" now active 
33 | 
34 | ```shell
35 | 
36 | 使用vgconvert命令将卷组"vg1000"从"LVM1"格式转换为"LVM2"格式。在命令行中输入下面的命令:
37 | 
38 | ```shell
39 | [root@localhost lvm]# vgconvert -M2 vg1000    #转换卷组为"LVM2"格式
40 | Volume group vg1000 successfully converted
41 | ```
42 | 
43 | 使用vgchange命令将卷组设置为活动状态。在命令行中输入下面的命令:
44 | 
45 | ```shell
46 | [root@localhost lvm]# vgchange -ay vg1000     #设置卷组状态为活动状态
47 | 0 logical volume(s) in volume group "vg1000" now active
48 | ```
49 | 
50 | 
51 | 


--------------------------------------------------------------------------------
/command/vgcreate.md:
--------------------------------------------------------------------------------
 1 | vgcreate
 2 | ===
 3 | 
 4 | 用于创建LVM卷组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgcreate命令** 用于创建LVM卷组。卷组(Volume Group)将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgcreate(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -l:卷组上允许创建的最大逻辑卷数;
20 | -p:卷组中允许添加的最大物理卷数;
21 | -s:卷组上的物理卷的PE大小。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | *   卷组名:要创建的卷组名称;
27 | *   物理卷列表:要加入到卷组中的物理卷列表。
28 | 
29 | ###  实例
30 | 
31 | 使用vgcreate命令创建卷组 "vg1000",并且将物理卷`/dev/sdb1`和`/dev/sdb2`添加到卷组中。在命令行中输入下面的命令:
32 | 
33 | ```shell
34 | [root@localhost ~]# vgcreate vg1000 /dev/sdb1 /dev/sdb2  #创建卷组"vg1000"
35 | ```
36 | 
37 | 输出信息如下:
38 | 
39 | ```shell
40 | Volume group "vg1000" successfully created
41 | ```
42 | 
43 | 
44 | 


--------------------------------------------------------------------------------
/command/vgdisplay.md:
--------------------------------------------------------------------------------
 1 | vgdisplay
 2 | ===
 3 | 
 4 | 显示LVM卷组的信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgdisplay命令** 用于显示LVM卷组的信息。如果不指定"卷组"参数,则分别显示所有卷组的属性。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgdisplay(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -A:仅显示活动卷组的属性;
20 | -s:使用短格式输出的信息。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | 卷组:要显示属性的卷组名称。
26 | 
27 | ###  实例
28 | 
29 | 使用vgdisplay命令显示存在的卷组"vg1000"的属性。在命令行中输入下面的命令:
30 | 
31 | ```shell
32 | [root@localhost ~]# vgdisplay vg1000     #显示卷组"vg1000"的属性
33 | ```
34 | 
35 | 输出信息如下:
36 | 
37 | ```shell
38 |   --- Volume group ---  
39 |   VG Name               vg1000  
40 | ......省略部分输出内容......  
41 |   free  PE / Size       50 / 200.00 MB  
42 |   VG UUID  ICprwg-ZmhA-JKYF-WYuy-jNHa-AyCN-ZS5F7B
43 | ```
44 | 
45 | 
46 | 


--------------------------------------------------------------------------------
/command/vgextend.md:
--------------------------------------------------------------------------------
 1 | vgextend
 2 | ===
 3 | 
 4 | 向卷组中添加物理卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgextend命令** 用于动态扩展LVM卷组,它通过向卷组中添加物理卷来增加卷组的容量。LVM卷组中的物理卷可以在使用vgcreate命令创建卷组时添加,也可以使用vgextend命令动态的添加。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgextend(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -d:调试模式;
20 | -t:仅测试。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | *   卷组:指定要操作的卷组名称;
26 | *   物理卷列表:指定要添加到卷组中的物理卷列表。
27 | 
28 | ###  实例
29 | 
30 | 使用vgextend命令向卷组"vg2000"中添加物理卷。在命令行中输入下面的命令:
31 | 
32 | ```shell
33 | [root@localhost ~]# vgextend vg2000 /dev/sdb2     #将物理卷"/dev/sdb2"加入卷组"vg2000"
34 | ```
35 | 
36 | 输出信息如下:
37 | 
38 | ```shell
39 | Volume group "vg2000" successfully extended
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/vgreduce.md:
--------------------------------------------------------------------------------
 1 | vgreduce
 2 | ===
 3 | 
 4 | 从卷组中删除物理卷
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgreduce命令** 通过删除LVM卷组中的物理卷来减少卷组容量。不能删除LVM卷组中剩余的最后一个物理卷。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | vgreduce(选项)(参数)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -a:如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷;
20 | --removemissing:删除卷组中丢失的物理卷,使卷组恢复正常状态。
21 | ```
22 | 
23 | ### 参数
24 | 
25 | *   卷组:指定要操作的卷组名称;
26 | *   物理卷列表:指定要删除的物理卷列表。
27 | 
28 | ### 实例
29 | 
30 | 使用vgreduce命令从卷组"vg2000"中移除物理卷`/dev/sdb2`。在命令行中输入下面的命令:
31 | 
32 | ```shell
33 | [root@localhost ~]# vgreduce vg2000 /dev/sdb2    #将物理卷"/dev/sdb2"从卷组"vg2000"中删除
34 | ```
35 | 
36 | 输出信息如下:
37 | 
38 | ```shell
39 | Removed "/dev/sdb2" from volume group "vg2000"
40 | ```
41 | 
42 | 
43 | 


--------------------------------------------------------------------------------
/command/vgremove.md:
--------------------------------------------------------------------------------
 1 | vgremove
 2 | ===
 3 | 
 4 | 用于用户删除LVM卷组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgremove命令** 用于用户删除LVM卷组。当要删除的卷组上已经创建了逻辑卷时,vgremove命令需要进行确认删除,防止误删除数据。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | vgremove(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:强制删除。
20 | ```
21 | 
22 | ###  参数
23 | 
24 | 卷组:指定要删除的卷组名称。
25 | 
26 | ###  实例
27 | 
28 | 使用vgremove命令删除LVM卷组"vg1000"。在命令行中输入下面的命令:
29 | 
30 | ```shell
31 | [root@localhost ~]# vgremove vg1000    #删除卷组"vg1000"
32 | Volume group "vg1000" successfully removed
33 | ```
34 | 
35 | 
36 | 


--------------------------------------------------------------------------------
/command/vgrename.md:
--------------------------------------------------------------------------------
 1 | vgrename
 2 | ===
 3 | 
 4 | 使用vgrename命令可以重命名卷组的名称
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **grename命令** 可以重命名卷组的名称。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | vgrename [选项] [旧卷组路径|旧卷组名称|旧卷组UUID] [新卷组路径|新卷组名称]
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -d 启用调试模式
20 | -t 启用测试模式
21 | ```
22 | 
23 | ### 例子
24 | 
25 | 重命名卷组/dev/vg1为/dev/vg2。
26 | 
27 | ```shell
28 | [root@localhost ~]# vgrename /dev/vg1 /dev/vg2
29 |   Volume group "vg1" successfullyrenamed to "vg2"
30 | ```
31 | 
32 | 重命名卷组vg1为vg2。
33 | 
34 | ```shell
35 | [root@localhost ~]# vgrename vg1 vg2
36 |   Volume group "vg1" successfully renamed to "vg2"
37 | ```
38 | 
39 | 
40 | 


--------------------------------------------------------------------------------
/command/vgscan.md:
--------------------------------------------------------------------------------
 1 | vgscan
 2 | ===
 3 | 
 4 | 扫描并显示系统中的卷组
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **vgscan命令** 查找系统中存在的LVM卷组,并显示找到的卷组列表。vgscan命令仅显示找到的卷组的名称和LVM元数据类型,要得到卷组的详细信息需要使用vgdisplay命令。
 9 | 
10 | ### 语法
11 | 
12 | ```shell
13 | vgscan(选项)
14 | ```
15 | 
16 | ### 选项
17 | 
18 | ```shell
19 | -d:调试模式;
20 | --ignorerlockingfailure:忽略锁定失败的错误。
21 | ```
22 | 
23 | ### 实例
24 | 
25 | 使用vgscan命令扫描系统中所有的卷组。在命令行中输入下面的命令:
26 | 
27 | ```shell
28 | [root@localhost ~]# vgscan     #扫描并显示LVM卷组列表
29 | ```
30 | 
31 | 输出信息如下:
32 | 
33 | ```shell
34 | Found volume group "vg2000" using metadata type lvm2  
35 | Found volume group "vg1000" using metadata type lvm2 
36 | ```
37 | 
38 | 说明:本例中,vgscan指令找到了两个LVM2卷组"vg1000"和"vg2000"。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/volname.md:
--------------------------------------------------------------------------------
 1 | volname
 2 | ===
 3 | 
 4 | 显示指定的ISO-9660格式的设备的卷名称
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **volname命令** 用于显示指定的“ISO-9660”格式的设备的卷名称,通常这种格式的设备为光驱。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | volname(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 设备文件名:指定要显示卷名称的设备。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/w.md:
--------------------------------------------------------------------------------
 1 | w
 2 | ===
 3 | 
 4 | 显示目前登入系统的用户信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **w命令** 用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | w(选项)(参数)
14 | ```
15 | 
16 | ###  选项 
17 | 
18 | ```shell
19 |  -h, --no-header     不打印头信息;
20 |  -u, --no-current    当显示当前进程和cpu时间时忽略用户名;
21 |  -s, --short         使用短输出格式;
22 |  -f, --from          显示用户从哪登录;
23 |  -o, --old-style     老式输出
24 |  -i, --ip-addr       显示IP地址而不是主机名(如果可能)
25 | 
26 |      --help     显示此帮助并退出
27 |  -V, --version  显示版本信息。
28 | ```
29 | 
30 | ###  参数 
31 | 
32 | 用户:仅显示指定用户。
33 | 
34 | ###  实例 
35 | 
36 | ```shell
37 | w
38 |  20:39:37 up 136 days,  3:58,  1 user,  load average: 0.00, 0.00, 0.00
39 | USER     TTY      FROM              login@   IDLE   JCPU   PCPU WHAT
40 | root     pts/0    222.94.97.122    20:39    1.00s  0.00s  0.00s w
41 | ```
42 | 
43 | 
44 | 
45 | 


--------------------------------------------------------------------------------
/command/wait.md:
--------------------------------------------------------------------------------
 1 | wait
 2 | ===
 3 | 
 4 | 等待进程执行完后返回
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **wait命令** 用来等待指令的指令,直到其执行完毕后返回终端。该指令常用于shell脚本编程中,待指定的指令执行完成后,才会继续执行后面的任务。该指令等待作业时,在作业标识号前必须添加百分号"%"。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | wait(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 进程或作业标示:指定进程号或者作业号。
19 | 
20 | ###  实例
21 | 
22 | 使用命令wait等待作业号为1的作业完成后再返回,输入如下命令:
23 | 
24 | 运行一个sleep进程
25 | 
26 | ```shell
27 | sleep 10s &
28 | [1] 27156
29 | ```
30 | 
31 | 指定作业号
32 | 
33 | ```shell
34 | wait %1       #等待作业号为1的作业完成 
35 | [1]+  Done                    sleep 10s
36 | ```
37 | 
38 | 指定进程号
39 | 
40 | ```shell
41 | wait 27156
42 | [1]+  Done                    sleep 10s
43 | ```
44 | 
45 | 输出当前存在作业号的指令,如下所示:
46 | 
47 | [jobs](./jobs.md)
48 | 


--------------------------------------------------------------------------------
/command/wall.md:
--------------------------------------------------------------------------------
 1 | wall
 2 | ===
 3 | 
 4 | 向系统当前所有打开的终端上输出信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **wall命令** 用于向系统当前所有打开的终端上输出信息。通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | wall(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 消息:指定广播消息。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | [root@localhost ~]# wall this is a test line
24 | 
25 | Broadcast message from root (pts/1) (Fri Dec 20 11:36:51 2013):
26 | 
27 | this is a test line
28 | ```
29 | 
30 | 
31 | 


--------------------------------------------------------------------------------
/command/which.md:
--------------------------------------------------------------------------------
 1 | which
 2 | ===
 3 | 
 4 | 查找并显示给定命令的绝对路径
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **which命令** 用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
 9 | 
10 | ###  语法 
11 | 
12 | ```shell
13 | which(选项)(参数)
14 | ```
15 | 
16 | ###  选项 
17 | 
18 | ```shell
19 | -n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
20 | -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
21 | -w:指定输出时栏位的宽度;
22 | -V:显示版本信息。
23 | ```
24 | 
25 | ###  参数 
26 | 
27 | 指令名:指令名列表。
28 | 
29 | ###  实例 
30 | 
31 | 查找文件、显示命令路径:
32 | 
33 | ```shell
34 | [root@localhost ~]# which pwd
35 | /bin/pwd
36 | 
37 | [root@localhost ~]# which adduser
38 | /usr/sbin/adduser
39 | ```
40 | 
41 | 说明:which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
42 | 
43 | 用 which 去找出 cd
44 | 
45 | ```shell
46 | [root@localhost ~]# which cd
47 | cd: shell built-in command
48 | ```
49 | cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!
50 | 
51 | 
52 | 


--------------------------------------------------------------------------------
/command/whoami.md:
--------------------------------------------------------------------------------
 1 | whoami
 2 | ===
 3 | 
 4 | 打印当前有效的用户ID对应的名称
 5 | 
 6 | ## 概要
 7 | 
 8 | ```shell
 9 | whoami [OPTION]...
10 | ```
11 | 
12 | ## 主要用途
13 | 
14 | - 打印当前有效的用户ID对应的名称。
15 | 
16 | ## 选项
17 | 
18 | ```shell
19 | --help       显示帮助信息并退出。
20 | --version    显示版本信息并退出。
21 | ```
22 | 
23 | ## 返回值
24 | 
25 | 返回0表示成功,返回非0值表示失败。
26 | 
27 | ## 例子
28 | 
29 | ```shell
30 | [root@localhost ~]# whoami
31 | root
32 | ```
33 | 
34 | ### 注意
35 | 
36 | 1. 该命令等价于 `id -un`。
37 | 2. 注意区分 `whoami` 和 `logname` 这两个命令;比如我们以用户 `root` 打开的终端,然后切换到了用户 `user2`。此时, `whoami`返回的是当前用户 `user2`, `logname` 返回的是 `root`,大家可以自行实践验证一下。
38 | 3. 该命令是`GNU coreutils`包中的命令,相关的帮助信息请查看`man -s 1 whoami`,`info coreutils 'whoami invocation'`。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/write.md:
--------------------------------------------------------------------------------
 1 | write
 2 | ===
 3 | 
 4 | 向指定登录用户终端上发送信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **write命令** 用于向指定登录用户终端上发送信息。通过write命令可传递信息给另一位登入系统的用户,当输入完毕后,键入EOF表示信息结束,write命令就会将信息传给对方。如果接收信息的用户不只登入本地主机一次,你可以指定接收信息的终端机编号。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | write(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | ```shell
19 | 用户:指定要接受信息的登录用户;
20 | 登陆终端:指定接收信息的用户的登录终端。
21 | ```
22 | 
23 | ###  实例
24 | 
25 | 传信息给Rollaend,此时Rollaend只有一个连线 : 
26 | 
27 | ```shell
28 | write Rollaend
29 | ```
30 | 
31 | 接下来就是将信息打上去,结束请Ctrl+C:
32 | 
33 | 传信息给Rollaend、Rollaend的连线有pts/2、pts/3:
34 | 
35 | ```shell
36 | write Rollaend pts/2
37 | ```
38 | 
39 | 接下来就是将信息打上去,结束请Ctrl+C:
40 | 
41 | 若对方设定`mesg n`,则此时信息将无法传给对方。
42 | 
43 | 
44 | 


--------------------------------------------------------------------------------
/command/xauth.md:
--------------------------------------------------------------------------------
 1 | xauth
 2 | ===
 3 | 
 4 | 显示和编辑被用于连接X服务器的认证信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xauth命令** 用于显示和编辑被用于连接X服务器的认证信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xauth(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:不使用默认的认证文件,而使用指定的认证文件;
20 | -q:安静模式,不打印未请求的状态信息;
21 | -v:详细模式,打印指定的各种操作信息;
22 | -i:忽略认证文件锁定;
23 | -b:执行任何操作,终端认证文件锁定。
24 | ```
25 | 
26 | ###  参数
27 | 
28 | *   add:添加认证条目到认证文件中;
29 | *   extract:将指定的设备内容加入到指定的密码文件中;
30 | *   info:显示授权文件相关信息;
31 | *   exit:退出交互模式;
32 | *   list:列出给定的显示设备的内容;
33 | *   merge:合并多个授权文件内容;
34 | *   extract:将指定设备内容写入指定的授权文件;
35 | *   nextrct:将指定设备内容写入指定的授权文件;
36 | *   nmerge:合并多个授权文件内容;
37 | *   remove:删除指定显示设备的授权条目;
38 | *   source:从指定文件读取包含xauth的内容指令。
39 | 
40 | 
41 | 


--------------------------------------------------------------------------------
/command/xclip.md:
--------------------------------------------------------------------------------
 1 | xclip
 2 | ===
 3 | 
 4 | 管理 X 粘贴板
 5 | 
 6 | ## 补充说明
 7 | 
 8 | 在 X 系统里面,从一个窗口复制一段文字到另一个窗口,有两套机制,分别是 Selections 和 cut buffers。
 9 | 
10 | 常用的 copy & paste 是利用的 cut buffers 机制;另外用鼠标选中一段文字,然后在另一个窗口按鼠标中键实现复制,利用的是 selections 机制。selection 又可以分为 master 和 slave selection。
11 | 
12 | 当用鼠标选中一段文件,这段文字就自动被复制到 master selection。然后在另一个地方按鼠标中键,就自动把 master selection 的内容粘贴出来。
13 | 
14 | 当你想复制少量文字的时候,两种方法都是很方便的。但是当复制大段文字的时候就挺麻烦。另外就是你可能会频繁的执行一些复制粘贴工作,不停的用鼠标选中文字,然后再粘贴。这是对手指的折磨。
15 | 
16 | 我忍受不了这种折磨,所以发现了 xclip, 方便的管理 X selections 里面内容的工具。
17 | 
18 | 比如如下命令就把文件 /etc/passwd 的内容复制到 X master selections 里面了。
19 | 
20 | ```shell
21 | xclip -i /etc/passwd
22 | ```
23 | 
24 | 然后到别的地方就能复制出来,利用鼠标中键。或者是更舒服的 shift+insert。 我现在最常用的方法是通过键盘绑定来管理 X master selections 的内容。比如 alt+F1 就能把我的 ~/f1 的内容复制到 X master selections,alt+F2 复制 ~/f2 的内容。这样就能把你需要经常用到的内容方便的进行复制粘贴。比如常用的密码啥的。
25 | 
26 | 
27 | 


--------------------------------------------------------------------------------
/command/xhost.md:
--------------------------------------------------------------------------------
 1 | xhost
 2 | ===
 3 | 
 4 | 制哪些X客户端能够在X服务器上显示
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xhost命令** 是X服务器的访问控制工具,用来控制哪些X客户端能够在X服务器上显示。该命令必须从有显示连接的机器上运行。可以通过使用`-host`参数,从访问列表中除去一个名称。不要从访问列表中除去当前的名称。如果已经这样做了,请在作出任何更改之前注销系统。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xhost(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | * +:关闭访问控制,允许任何主机访问本地的X服务器;
19 | * -:打开访问控制,仅允许授权清单中的主机访问本地的X服务器。
20 | 
21 | 输入无变量的xhost命令将显示访问X服务器的当前主机名,并显示一条消息表明访问是否已启用。
22 | 
23 | 为了安全起见,只能从控制主机运行影响访问控制的选项。对于工作站来说,这台机器也就是服务器。对于X终端来说,这台机器是登录主机。
24 | 
25 | 要在缺省情况下启用远程名称,可以在`/etc/X?.hosts`文件中定义名称,其中`?`为启用访问的显示器号。
26 | 
27 | 例如,显示器`jeanne:0`可以由使用jeanne的缺省主机名的系统上的`/etc/X0.hosts`文件中定义的系统访问。在显示名称和文件名中,0表明已定义的远程系统允许通过增强X-Windows访问的显示器号。
28 | 
29 | 注意:`-name`参数,定义要从X服务器访问列表中除去的主机名。已有的连接没有被中断,但将拒绝新的连接请求。注意:可以除去当前的机器;然而,不允许进行进一步的连接(包括试图将其添加回来)。再一次启用本地连接的唯一方法就是将服务器复位(因此也会中断所有连接)。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/command/xinit.md:
--------------------------------------------------------------------------------
 1 | xinit
 2 | ===
 3 | 
 4 | 是Linux下X-Window系统的初始化程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xinit命令** 是Linux下X-Window系统的初始化程序,主要完成X服务器的初始化设置。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xinit(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | * 客户端选项:客户端指令及选项;
19 | * --:用于区分客户端选项和服务器端选项;
20 | * 服务器端选项:服务器端选项指令及选项。
21 | 
22 | 
23 | 


--------------------------------------------------------------------------------
/command/xlsatoms.md:
--------------------------------------------------------------------------------
 1 | xlsatoms
 2 | ===
 3 | 
 4 | 列出X服务器内部所有定义的原子成分
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xlsatoms命令** 用于列出X服务器内部所有定义的原子成分,每个原子成分都有自身的编号。可利用参数设置列表范围,或直接指定欲查询的成分名称。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xlsatoms(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | * -display<显示器编号>:指定X Server连接的显示器编号,该编号由"0"开始计算,依序递增;
19 | * -format<输出格式>:设置成分清单的列表格式,您可使用控制字符改变显示样式;
20 | * -name<成分名称>:列出指定的成分;
21 | * -range<列表范围>:设置成分清单的列表范围。
22 | 
23 | 
24 | 


--------------------------------------------------------------------------------
/command/xlsclients.md:
--------------------------------------------------------------------------------
 1 | xlsclients
 2 | ===
 3 | 
 4 | 列出显示器中的客户端应用程序
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xlsclients命令** 用来列出显示器中的客户端应用程序。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xlsclients(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -a:列出所有显示器的客户端应用程序信息;
20 | -display<显示器编号>:指定X Server连接的显示器编号,该编号由"0"开始计算,依序递增;
21 | -l:使用详细格式列表;
22 | -m<最大指令长度>:设置显示指令信息的最大长度,单位以字符计算。
23 | ```
24 | 
25 | 
26 | 


--------------------------------------------------------------------------------
/command/xlsfonts.md:
--------------------------------------------------------------------------------
 1 | xlsfonts
 2 | ===
 3 | 
 4 | 列出X Server使用的字体
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xlsfonts命令** 列出X Server使用的字体,也能使用范本样式仅列出的符合条件的字体。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xlsfonts(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -l:除字体名称外,同时列出字体的属性;
20 | -ll:此参数的效果和指定"l"参数类似,但显示更详细的信息;
21 | -lll:此参数的效果和指定"ll"参数类似,但显示更详细的信息;
22 | -m:配合参数"-l"使用时,一并列出字体大小的上下限;
23 | -n<显示栏位数>:设置每列显示的栏位数;
24 | -o:以OpenFont的形式列出字体清单;
25 | -u:列出字体清单时不依照其名称排序;
26 | -w<每列字符数>:设置每列的最大字符数。
27 | ```
28 | 
29 | 
30 | 


--------------------------------------------------------------------------------
/command/xset.md:
--------------------------------------------------------------------------------
 1 | xset
 2 | ===
 3 | 
 4 | 设置X-Window系统中的用户爱好的实用工具
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **xset命令** 是设置X-Window系统中的用户爱好的实用工具。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | xset(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -b:蜂鸣器开关设置;
20 | -c:键盘按键声响设置。
21 | ```
22 | 
23 | ###  参数
24 | 
25 | * c:键盘按键声响设置;
26 | * s:屏幕保护程序设置。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/yes.md:
--------------------------------------------------------------------------------
 1 | yes
 2 | ===
 3 | 
 4 | 重复打印指定字符串
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **yes命令** 在命令行中输出指定的字符串,直到yes进程被杀死。不带任何参数输入yes命令默认的字符串就是y。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | yes(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 字符串:指定要重复打印的字符串。
19 | 
20 | ###  实例
21 | 
22 | ```shell
23 | [root@localhost ~]# yes testline
24 | 
25 | testline
26 | testline
27 | testline
28 | testline
29 | testline
30 | testline
31 | testline
32 | testline
33 | ...一直重复打印 testline,按Ctrl+C结束。
34 | ```
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/ypdomainname.md:
--------------------------------------------------------------------------------
 1 | ypdomainname
 2 | ===
 3 | 
 4 | 显示主机的NIS的域名
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **ypdomainname命令** 显示主机的NIS的域名。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | ypdomainname(选项)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -v:详细信息模式。
20 | ```
21 | 
22 | 
23 | 


--------------------------------------------------------------------------------
/command/zcat.md:
--------------------------------------------------------------------------------
 1 | zcat
 2 | ===
 3 | 
 4 | 显示压缩包中文件的内容
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **zcat命令** 用于不真正解压缩文件,就能显示压缩包中文件的内容的场合。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | zcat(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -S:指定gzip格式的压缩包的后缀。当后缀不是标准压缩包后缀时使用此选项;
20 | -c:将文件内容写到标准输出;
21 | -d:执行解压缩操作;
22 | -l:显示压缩包中文件的列表;
23 | -L:显示软件许可信息;
24 | -q:禁用警告信息;
25 | -r:在目录上执行递归操作;
26 | -t:测试压缩文件的完整性;
27 | -V:显示指令的版本信息;
28 | -l:更快的压缩速度;
29 | -9:更高的压缩比。
30 | ```
31 | 
32 | ###  参数
33 | 
34 | 文件:指定要显示其中文件内容的压缩包。
35 | 
36 | 
37 | 


--------------------------------------------------------------------------------
/command/zfore.md:
--------------------------------------------------------------------------------
 1 | zfore
 2 | ===
 3 | 
 4 | 强制为gzip格式的压缩文件添加.gz后缀
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **zfore命令** 强制为gzip格式的压缩文件添加“.gz”后缀。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | zfore(参数)
14 | ```
15 | 
16 | ###  参数
17 | 
18 | 文件列表:指定要添加“.gz”后缀的gzip压缩文件。
19 | 
20 | 
21 | 


--------------------------------------------------------------------------------
/command/zipinfo.md:
--------------------------------------------------------------------------------
 1 | zipinfo
 2 | ===
 3 | 
 4 | 用来列出压缩文件信息
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **zipinfo命令** 用来列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | zipinfo(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -1:只列出文件名称;
20 | -2:此参数的效果和指定“-1”参数类似,但可搭配“-h”,“-t”和“-z”参数使用;
21 | -h:只列出压缩文件的文件名称;
22 | -l:此参数的效果和指定“-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率;
23 | -m:此参数的效果和指定“-s”参数类似,但多会列出每个文件的压缩率;
24 | -M:若信息内容超过一个画面,则采用类似more指令的方式列出信息;
25 | -s:用类似执行“ls-l”指令的效果列出压缩文件内容;
26 | -t:只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率;
27 | -T:将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出;
28 | -v:详细显示压缩文件内每一个文件的信息;
29 | -x<范本样式>:不列出符合条件的文件的信息;
30 | -z:如果压缩文件内含有注释,就将注释显示出来。
31 | ```
32 | 
33 | ###  参数
34 | 
35 | 文件:指定zip格式的压缩包。
36 | 
37 | 
38 | 


--------------------------------------------------------------------------------
/command/zipsplit.md:
--------------------------------------------------------------------------------
 1 | zipsplit
 2 | ===
 3 | 
 4 | 将较大的zip压缩包分割成各个较小的压缩包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **zipsplit命令** 用于将较大的“zip”压缩包分割成各个较小的“zip”压缩包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | zipsplit(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -n:指定分割后每个zip文件的大小;
20 | -t:报告将要产生的较小的zip文件的大小;
21 | -b:指定分割后的zip文件的存放位置。
22 | ```
23 | 
24 | ###  参数
25 | 
26 | 文件:指定要分割的zip压缩包。
27 | 
28 | 
29 | 


--------------------------------------------------------------------------------
/command/znew.md:
--------------------------------------------------------------------------------
 1 | znew
 2 | ===
 3 | 
 4 | 将.Z压缩包重新转化为gzip命令压缩的.gz压缩包
 5 | 
 6 | ## 补充说明
 7 | 
 8 | **znew命令** 用于将使用compress命令压缩的“.Z”压缩包重新转化为使用gzip命令压缩的“.gz”压缩包。
 9 | 
10 | ###  语法
11 | 
12 | ```shell
13 | znew(选项)(参数)
14 | ```
15 | 
16 | ###  选项
17 | 
18 | ```shell
19 | -f:# 强制执行转换操作,即是目标“.gz”已经存在;
20 | -t:# 删除原文件前测试新文件;
21 | -v:# 显示文件名和每个文件的压缩比;
22 | -9:# 使用最高压缩率,速度较慢;
23 | -P:# 使用管道完成转换操作,以降低磁盘空间使用;
24 | -K:# 当“.Z”文件比“.gz”文件小时,保留“.Z”文件。
25 | ```
26 | 
27 | ###  参数
28 | 
29 | 文件:指定compress指令压缩生成的“.Z”压缩包。
30 | 
31 | 
32 | 


--------------------------------------------------------------------------------
/k8s/helm/charts/linux-command/.helmignore:
--------------------------------------------------------------------------------
 1 | # Patterns to ignore when building packages.
 2 | # This supports shell glob matching, relative path matching, and
 3 | # negation (prefixed with !). Only one pattern per line.
 4 | .DS_Store
 5 | # Common VCS dirs
 6 | .git/
 7 | .gitignore
 8 | .bzr/
 9 | .bzrignore
10 | .hg/
11 | .hgignore
12 | .svn/
13 | # Common backup files
14 | *.swp
15 | *.bak
16 | *.tmp
17 | *.orig
18 | *~
19 | # Various IDEs
20 | .project
21 | .idea/
22 | *.tmproj
23 | .vscode/
24 | 


--------------------------------------------------------------------------------
/k8s/helm/charts/linux-command/templates/service.yaml:
--------------------------------------------------------------------------------
 1 | apiVersion: v1
 2 | kind: Service
 3 | metadata:
 4 |   name: {{ include "linux-command.fullname" . }}-service
 5 |   labels:
 6 |   {{- include "linux-command.labels" . | nindent 4 }}
 7 | spec:
 8 |   type: {{ .Values.service.type }}
 9 |   selector:
10 |     app: linux-command
11 |   {{- include "linux-command.selectorLabels" . | nindent 4 }}
12 |   ports:
13 |     {{- .Values.service.ports | toYaml | nindent 2 }}
14 | 


--------------------------------------------------------------------------------
/k8s/helm/charts/linux-command/values.yaml:
--------------------------------------------------------------------------------
 1 | linuxCommand:
 2 |   linuxCommandContainer:
 3 |     image:
 4 |       repository: wcjiang/linux-command
 5 |       tag: latest
 6 |     imagePullPolicy: IfNotPresent
 7 |     resources:
 8 |       limits:
 9 |         cpu: 100m
10 |         memory: 50Mi
11 |       requests:
12 |         cpu: 100m
13 |         memory: 50Mi
14 |   replicas: 1
15 | service:
16 |   ports:
17 |   - port: 9665
18 |     protocol: TCP
19 |     targetPort: 3000
20 |   type: NodePort
21 | 


--------------------------------------------------------------------------------
/renovate.json:
--------------------------------------------------------------------------------
 1 | {
 2 |   "extends": [
 3 |     "config:base"
 4 |   ],
 5 |   "packageRules": [
 6 |     {
 7 |       "matchPackagePatterns": ["*"],
 8 |       "rangeStrategy": "replace"
 9 |     }
10 |   ]
11 | }
12 | 


--------------------------------------------------------------------------------
/scripts/sitemap.js:
--------------------------------------------------------------------------------
 1 | const path = require('path');
 2 | const fs = require('fs-extra');
 3 | const SitemapGenerator = require('sitemap-generator');
 4 | 
 5 | const xmlFile = path.join(process.cwd(), '.deploy/sitemap.xml')
 6 | const generator = SitemapGenerator('http://192.168.31.69:1987', {
 7 |   maxDepth: 0,
 8 |   filepath: xmlFile,
 9 |   maxEntriesPerFile: 50000,
10 |   stripQuerystring: true,
11 |   decodeResponses: true,
12 | });
13 | 
14 | // register event listeners
15 | generator.on('done', async () => {
16 |   const str = await fs.readFileSync(xmlFile);
17 |   const newStr = str.toString().replace(/http\:\/\/192\.168\.31\.69\:1987/g, 'https://wangchujiang.com/linux-command');
18 |   await fs.outputFile(xmlFile, newStr);
19 |   console.log('sitemaps created!')
20 | });
21 | 
22 | // start the crawler
23 | generator.start();


--------------------------------------------------------------------------------
/template/details.ejs:
--------------------------------------------------------------------------------
 1 | <%- include('partial/header'); %>
 2 | <%- include('widget/search',{type: "list"}); %>
 3 | <script type="text/javascript" src="<%=relative_path%>js/copy-to-clipboard.js"></script>
 4 | 
 5 | <div class="markdown-body">
 6 | <% if(md_path){ %>
 7 | <span class="edit_btn">
 8 | <a target="_blank" href="https://github.com/jaywcjlove/linux-command/edit/master<%=md_path%>">纠正错误</a> 
 9 | <span class="split"></span>
10 | <a target="_blank" href="https://github.com/jaywcjlove/linux-command/edit/master<%=md_path%>">添加实例</a>
11 | </span>
12 | <% } %>
13 | 
14 | <%-mdhtml%>
15 | 
16 | </div>
17 | <%- include('widget/footer',{type: "list"}); %>
18 | <%- include('partial/footer'); %>


--------------------------------------------------------------------------------
/template/hot.ejs:
--------------------------------------------------------------------------------
 1 | <%- include('partial/header'); %>
 2 | <%- include('widget/search',{type: "list"}); %>
 3 | <div class="hotlist">
 4 |   <ul>
 5 |   <%describe.arr.forEach(function(page,item){%>
 6 |     <li><a href="c<%=page.p%>.html"><%=page.n%> - <%=page.d%></a></li>
 7 |   <%});%>
 8 |   </ul>
 9 | </div>
10 | <%- include('widget/footer',{type: "list"}); %>
11 | <%- include('partial/footer'); %>
12 | 


--------------------------------------------------------------------------------
/template/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jaywcjlove/linux-command/d65d44786e403e6778b636a110491cbe52d38819/template/img/favicon.ico


--------------------------------------------------------------------------------
/template/index.ejs:
--------------------------------------------------------------------------------
1 | <%- include('partial/header'); %>
2 | <div class="warpper">
3 | <%- include('widget/search',{type: "home"}); %>
4 | <%- include('widget/footer',{type: "home"}); %>
5 | </div>
6 | <%- include('partial/footer'); %>


--------------------------------------------------------------------------------
/template/list.ejs:
--------------------------------------------------------------------------------
 1 | <%- include('partial/header'); %>
 2 | <%- include('widget/search',{type: "list"}); %>
 3 | <div class="search_list">
 4 |     <ul id="search_list_result">
 5 |         <!-- <li>
 6 |             <a href=""><strong>find</strong> - 指定目录下查找文件。</a>
 7 |             <p>find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。</p>
 8 |         </li> -->
 9 |     </ul>
10 | </div>
11 | 
12 | <%- include('widget/footer',{type: "list"}); %>
13 | <%- include('partial/footer'); %>


--------------------------------------------------------------------------------
/template/partial/footer.ejs:
--------------------------------------------------------------------------------
1 | <script type="text/javascript" src="<%=relative_path%>js/dt.js?v=<%=new Date().getTime()%>"></script>
2 | <script type="text/javascript" src="<%=relative_path%>js/index.js?v=<%=new Date().getTime()%>"></script>
3 | </body>
4 | </html>


--------------------------------------------------------------------------------
/template/styl/mixins/markdown.styl:
--------------------------------------------------------------------------------
 1 | mq-mobile = "screen and (max-width: 479px)"
 2 | 
 3 | .markdown-body .edit_btn {
 4 |   position relative
 5 |   right 20px
 6 |   float right
 7 |   top 16px
 8 |   z-index 2
 9 |   font-size: 14px;
10 |   @media mq-mobile {
11 |     right 15px
12 |   }
13 |   .split {
14 |     display inline-block
15 |     height 13px
16 |     vertical-align middle
17 |     width 1px
18 |     margin -1px 0 0 0
19 |   }
20 |   a {
21 |     text-decoration none
22 |     background #2196F3
23 |     color #fff
24 |     border-radius 3px
25 |     padding 2px 5px
26 |     &:hover {
27 |       color #333
28 |       background #e6e6e6
29 |     }
30 |   }
31 | }
32 | 
33 | .markdown-body .markdown-body {
34 |   padding-top: 0 !important;
35 |   padding-left: 0 !important;
36 |   padding-right: 0 !important;
37 | }
38 | 
39 | .markdown-body {
40 |   margin: 0 auto 0 auto;
41 |   margin-top: 0 !important;
42 |   padding 90px 35px 30px 35px
43 |   max-width 980px
44 |   @media mq-mobile {
45 |     padding: 70px 15px 30px 15px;
46 |   }
47 | }
48 | 


--------------------------------------------------------------------------------
/template/styl/mixins/reset.styl:
--------------------------------------------------------------------------------
 1 | body,html,ul,li,p {
 2 |   margin 0
 3 |   padding 0
 4 | }
 5 | body,html {
 6 |   font-size 12px
 7 |   font-family 'HanHei SC','PingFang SC','Helvetica Neue','Helvetica','STHeitiSC-Light','Arial',sans-serif
 8 | }
 9 | html {
10 |   -webkit-tap-highlight-color rgba(0,0,0,0)
11 | }
12 | a {
13 |   text-decoration none
14 | }
15 | * {
16 |   box-sizing border-box
17 | }
18 | 
19 | $border-color = #8f8f8f7a


--------------------------------------------------------------------------------
/vercel.json:
--------------------------------------------------------------------------------
1 | {
2 |   "outputDirectory": ".deploy"
3 | }
4 | 


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