diff --git a/codes/bash/README.md b/codes/bash/README.md new file mode 100644 index 0000000..335f7d0 --- /dev/null +++ b/codes/bash/README.md @@ -0,0 +1,4 @@ +# linux-notes `codes/bash` + +> 本目录的代码是和 `docs/shell.md` 相关的示例代码。 +> diff --git a/codes/practice/README.md b/codes/practice/README.md new file mode 100644 index 0000000..08b52c5 --- /dev/null +++ b/codes/practice/README.md @@ -0,0 +1,4 @@ +# linux-notes `codes/practice` + +> 本目录的代码是本人在开发中总结的一些实用代码。 +> diff --git a/codes/practice/system/useradd.sh b/codes/practice/system/useradd.sh new file mode 100644 index 0000000..aefd2b7 --- /dev/null +++ b/codes/practice/system/useradd.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash + +# 创建用户组 +groupadd elk +# 创建新用户,-g elk 设置其用户组为 elk,-p elk 设置其密码为 elk +useradd elk -g elk -p elk +# 更改 /opt 文件夹及内部文件的所属用户及组为 elk:elk +chown -R elk:elk /opt diff --git a/docs/commands/linux-cmd-disk.md b/docs/commands/linux-cmd-disk.md new file mode 100644 index 0000000..99890db --- /dev/null +++ b/docs/commands/linux-cmd-disk.md @@ -0,0 +1,234 @@ +# Linux 常用命令-磁盘管理 + +## cd + +> **功能:切换目录。** +> +> cd 命令用于切换当前工作目录至 dirName(目录参数)。 +> +> 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。 + +### 语法 + +``` +cd [dirName] +``` + +- dirName:要切换的目标目录。 + +### 实例 + +跳到 /usr/bin/ : + +``` +cd /usr/bin +``` + +跳到自己的 home 目录 : + +``` +cd ~ +``` + +跳到目前目录的上上两层 : + +``` +cd ../.. +``` + +## pwd + +> **功能:显示当前目录** +> +> pwd 命令用于显示工作目录。 +> +> 执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。 + +### 语法 + +``` +pwd [--help][--version] +``` + +**参数说明:** + +- --help 在线帮助。 +- --version 显示版本信息。 + +### 实例 + +查看当前所在目录: + +``` +# pwd +/root/test #输出结果 +``` + +## ls + +> **功能:显示目录内容。** +> +> ls 命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。 + +### 语法 + +``` + ls [-alrtAFR] [name...] +``` + +**参数 **: + +- -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) +- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 +- -r 将文件以相反次序显示(原定依英文字母次序) +- -t 将文件依建立时间之先后次序列出 +- -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) +- -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" +- -R 若目录下有文件,则以下之文件亦皆依序列出 + +### 实例 + +列出根目录(\)下的所有目录: + +``` +# ls / +bin dev lib media net root srv upload www +boot etc lib64 misc opt sbin sys usr +home lost+found mnt proc selinux tmp var +``` + +列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 : + +``` +ls -ltr s* +``` + +将 /bin 目录以下所有目录及文件详细资料列出 : + +``` +ls -lR /bin +``` + +列出目前工作目录下所有文件及目录;目录于名称后加 "/", 可执行档于名称后加 "*" : + +``` +ls -AF +``` + +## mkdir + +> **功能:创建目录。** +> +> mkdir 命令用于建立名称为 dirName 之子目录。 + +### 语法 + +``` +mkdir [-p] dirName +``` + +**参数说明**: + +- -p 确保目录名称存在,不存在的就建一个。 + +### 实例 + +在工作目录下,建立一个名为 AAA 的子目录 : + +``` +mkdir AAA +``` + +在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。) + +``` +mkdir -p BBB/Test +``` + +## stat + +> stat 命令用于显示文件/文件系统的详细信息。 + +### 语法 + +``` +stat [文件或目录] +``` + +### 实例 + +查看 testfile 文件的inode内容内容,可以用以下命令: + +``` +# stat testfile #输入命令 + File: `testfile' + Size: 102 Blocks: 8 IO Block: 4096 regular file +Device: 807h/2055d Inode: 1265161 Links: 1 +Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) +Access: 2014-08-13 14:07:20.000000000 +0800 +Modify: 2014-08-13 14:07:07.000000000 +0800 +Change: 2014-08-13 14:07:07.000000000 +0800 +``` + +## mount + +> **功能:挂载文件到一个虚拟盘或虚拟文件夹中。** +> +> mount 命令是经常会使用到的命令,它用于挂载 Linux 系统外的文件。 + +### 语法 + +``` +mount [-hV] +mount -a [-fFnrsvw] [-t vfstype] +mount [-fnrsvw] [-o options [,...]] device | dir +mount [-fnrsvw] [-t vfstype] [-o options] device dir +``` + +**参数说明:** + +- -V:显示程序版本 +- -h:显示辅助讯息 +- -v:显示较讯息,通常和 -f 用来除错。 +- -a:将 /etc/fstab 中定义的所有档案系统挂上。 +- -F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。 +- -f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使用。 +- -n:一般而言,mount 在挂上后会在 /etc/mtab 中写入一笔资料。但在系统中没有可写入档案系统存在的情况下可以用这个选项取消这个动作。 +- -s-r:等于 -o ro +- -w:等于 -o rw +- -L:将含有特定标签的硬盘分割挂上。 +- -U:将档案分割序号为 的档案系统挂下。-L 和 -U 必须在/proc/partition 这种档案存在时才有意义。 +- -t:指定档案系统的型态,通常不必指定。mount 会自动选择正确的型态。 +- -o async:打开非同步模式,所有的档案读写动作都会用非同步模式执行。 +- -o sync:在同步模式下执行。 +- -o atime、-o noatime:当 atime 打开时,系统会在每次读取档案时更新档案的『上一次调用时间』。当我们使用 flash 档案系统时可能会选项把这个选项关闭以减少写入的次数。 +- -o auto、-o noauto:打开/关闭自动挂上模式。 +- -o defaults:使用预设的选项 rw, suid, dev, exec, auto, nouser, and async. +- -o dev、-o nodev-o exec、-o noexec允许执行档被执行。 +- -o suid、-o nosuid: +- 允许执行档在 root 权限下执行。 +- -o user、-o nouser:使用者可以执行 mount/umount 的动作。 +- -o remount:将一个已经挂下的档案系统重新用不同的方式挂上。例如原先是唯读的系统,现在用可读写的模式重新挂上。 +- -o ro:用唯读模式挂上。 +- -o rw:用可读写模式挂上。 +- -o loop=:使用 loop 模式用来将一个档案当成硬盘分割挂上系统。 + +### 实例 + +将 /dev/hda1 挂在 /mnt 之下。 + +``` +#mount /dev/hda1 /mnt +``` + +将 /dev/hda1 用唯读模式挂在 /mnt 之下。 + +``` +#mount -o ro /dev/hda1 /mnt +``` + +将 /tmp/image.iso 这个光碟的 image 档使用 loop 模式挂在 /mnt/cdrom之下。用这种方法可以将一般网络上可以找到的 Linux 光 碟 ISO 档在不烧录成光碟的情况下检视其内容。 + +``` +#mount -o loop /tmp/image.iso /mnt/cdrom +``` \ No newline at end of file diff --git a/docs/commands/linux-cmd-network.md b/docs/commands/linux-cmd-network.md new file mode 100644 index 0000000..9272e78 --- /dev/null +++ b/docs/commands/linux-cmd-network.md @@ -0,0 +1,480 @@ +## ifconfig + +> ifconfig 命令用于显示或设置网络设备。 +> +> ifconfig 可设置网络设备的状态,或是显示目前的设置。 + +### 语法 + +``` +ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<硬件地址>][io_addr][irq][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址] +``` + +**参数说明**: + +- add<地址> 设置网络设备IPv6的IP地址。 +- del<地址> 删除网络设备IPv6的IP地址。 +- down 关闭指定的网络设备。 +- <硬件地址> 设置网络设备的类型与硬件地址。 +- io_addr 设置网络设备的I/O地址。 +- irq 设置网络设备的IRQ。 +- media<网络媒介类型> 设置网络设备的媒介类型。 +- mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。 +- metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。 +- mtu<字节> 设置网络设备的MTU。 +- netmask<子网掩码> 设置网络设备的子网掩码。 +- tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。 +- up 启动指定的网络设备。 +- -broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。 +- -pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。 +- -promisc 关闭或启动指定网络设备的promiscuous模式。 +- [IP地址] 指定网络设备的IP地址。 +- [网络设备] 指定网络设备的名称。 + +### 实例 + +显示网络设备信息 + +``` +# ifconfig +eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C + inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0 + inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link + UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 + RX packets:172220 errors:0 dropped:0 overruns:0 frame:0 + TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:1000 + RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB) + Interrupt:185 Base address:0x2024 + +lo Link encap:Local Loopback + inet addr:127.0.0.1 Mask:255.0.0.0 + inet6 addr: ::1/128 Scope:Host + UP LOOPBACK RUNNING MTU:16436 Metric:1 + RX packets:2022 errors:0 dropped:0 overruns:0 frame:0 + TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0 + collisions:0 txqueuelen:0 + RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB) +``` + +启动关闭指定网卡 + +``` +# ifconfig eth0 down +# ifconfig eth0 up +``` + +为网卡配置和删除IPv6地址 + +``` +# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡诶之IPv6地址 + +# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址 +``` + +用ifconfig修改MAC地址 + +``` +# ifconfig eth0 down //关闭网卡 +# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址 +# ifconfig eth0 up //启动网卡 +# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址 +# ifconfig eth1 up //启动网卡 +``` + +配置IP地址 + +``` +# ifconfig eth0 192.168.1.56 +//给eth0网卡配置IP地址 +# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 +// 给eth0网卡配置IP地址,并加上子掩码 +# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 +// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址 +``` + +启用和关闭ARP协议 + +``` +# ifconfig eth0 arp //开启 +# ifconfig eth0 -arp //关闭 +``` + +设置最大传输单元 + +``` +# ifconfig eth0 mtu 1500 +//设置能通过的最大数据包大小为 1500 bytes +``` + +## ping + +> ping 命令用于检测主机。 +> +> 执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。 + +### 语法 + +``` +ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址] +``` + +**参数说明**: + +- -d 使用Socket的SO_DEBUG功能。 +- -c<完成次数> 设置完成要求回应的次数。 +- -f 极限检测。 +- -i<间隔秒数> 指定收发信息的间隔时间。 +- -I<网络界面> 使用指定的网络界面送出数据包。 +- -l<前置载入> 设置在送出要求信息之前,先行发出的数据包。 +- -n 只输出数值。 +- -p<范本样式> 设置填满数据包的范本样式。 +- -q 不显示指令执行过程,开头和结尾的相关信息除外。 +- -r 忽略普通的Routing Table,直接将数据包送到远端主机上。 +- -R 记录路由过程。 +- -s<数据包大小> 设置数据包的大小。 +- -t<存活数值> 设置存活数值TTL的大小。 +- -v 详细显示指令的执行过程。 + +### 实例 + +检测是否与主机连通 + +``` +# ping www.w3cschool.cc //ping主机 +PING aries.m.alikunlun.com (114.80.174.110) 56(84) bytes of data. +64 bytes from 114.80.174.110: icmp_seq=1 ttl=64 time=0.025 ms +64 bytes from 114.80.174.110: icmp_seq=2 ttl=64 time=0.036 ms +64 bytes from 114.80.174.110: icmp_seq=3 ttl=64 time=0.034 ms +64 bytes from 114.80.174.110: icmp_seq=4 ttl=64 time=0.034 ms +64 bytes from 114.80.174.110: icmp_seq=5 ttl=64 time=0.028 ms +64 bytes from 114.80.174.110: icmp_seq=6 ttl=64 time=0.028 ms +64 bytes from 114.80.174.110: icmp_seq=7 ttl=64 time=0.034 ms +64 bytes from 114.80.174.110: icmp_seq=8 ttl=64 time=0.034 ms +64 bytes from 114.80.174.110: icmp_seq=9 ttl=64 time=0.036 ms +64 bytes from 114.80.174.110: icmp_seq=10 ttl=64 time=0.041 ms + +--- aries.m.alikunlun.com ping statistics --- +10 packets transmitted, 30 received, 0% packet loss, time 29246ms +rtt min/avg/max/mdev = 0.021/0.035/0.078/0.011 ms + +//需要手动终止Ctrl+C +``` + +指定接收包的次数 + +``` +# ping -c 2 www.w3cschool.cc +PING aries.m.alikunlun.com (114.80.174.120) 56(84) bytes of data. +64 bytes from 114.80.174.120: icmp_seq=1 ttl=54 time=6.18 ms +64 bytes from 114.80.174.120: icmp_seq=2 ttl=54 time=15.4 ms + +--- aries.m.alikunlun.com ping statistics --- +2 packets transmitted, 2 received, 0% packet loss, time 1016ms +rtt min/avg/max/mdev = 6.185/10.824/15.464/4.640 ms + +//收到两次包后,自动退出 +``` + +多参数使用 + +``` +# ping -i 3 -s 1024 -t 255 g.cn //ping主机 +PING g.cn (203.208.37.104) 1024(1052) bytes of data. +1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=0 ttl=243 time=62.5 ms +1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=1 ttl=243 time=63.9 ms +1032 bytes from bg-in-f104.1e100.net (203.208.37.104): icmp_seq=2 ttl=243 time=61.9 ms + +--- g.cn ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 6001ms +rtt min/avg/max/mdev = 61.959/62.843/63.984/0.894 ms, pipe 2 +[root@linux ~]# + +//-i 3 发送周期为 3秒 -s 设置发送包的大小 -t 设置TTL值为 255 +``` + +## netstat + +> netstat 命令用于显示网络状态。 +> +> 利用 netstat 指令可让你得知整个Linux系统的网络情况。 + +### 语法 + +``` +netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip] +``` + +**参数说明**: + +- -a或--all 显示所有连线中的Socket。 +- -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。 +- -c或--continuous 持续列出网络状态。 +- -C或--cache 显示路由器配置的快取信息。 +- -e或--extend 显示网络其他相关信息。 +- -F或--fib 显示FIB。 +- -g或--groups 显示多重广播功能群组组员名单。 +- -h或--help 在线帮助。 +- -i或--interfaces 显示网络界面信息表单。 +- -l或--listening 显示监控中的服务器的Socket。 +- -M或--masquerade 显示伪装的网络连线。 +- -n或--numeric 直接使用IP地址,而不通过域名服务器。 +- -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。 +- -o或--timers 显示计时器。 +- -p或--programs 显示正在使用Socket的程序识别码和程序名称。 +- -r或--route 显示Routing Table。 +- -s或--statistice 显示网络工作信息统计表。 +- -t或--tcp 显示TCP传输协议的连线状况。 +- -u或--udp 显示UDP传输协议的连线状况。 +- -v或--verbose 显示指令执行过程。 +- -V或--version 显示版本信息。 +- -w或--raw 显示RAW传输协议的连线状况。 +- -x或--unix 此参数的效果和指定"-A unix"参数相同。 +- --ip或--inet 此参数的效果和指定"-A inet"参数相同。 + +### 实例 + +显示详细的网络状况 + +``` +# netstat -a +``` + +显示当前户籍UDP连接状况 + +``` +# netstat -nu +``` + +显示UDP端口号的使用情况 + +``` +# netstat -apu +Active Internet connections (servers and established) +Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name +udp 0 0 *:32768 *:* - +udp 0 0 *:nfs *:* - +udp 0 0 *:641 *:* 3006/rpc.statd +udp 0 0 192.168.0.3:netbios-ns *:* 3537/nmbd +udp 0 0 *:netbios-ns *:* 3537/nmbd +udp 0 0 192.168.0.3:netbios-dgm *:* 3537/nmbd +udp 0 0 *:netbios-dgm *:* 3537/nmbd +udp 0 0 *:tftp *:* 3346/xinetd +udp 0 0 *:999 *:* 3366/rpc.rquotad +udp 0 0 *:sunrpc *:* 2986/portmap +udp 0 0 *:ipp *:* 6938/cupsd +udp 0 0 *:1022 *:* 3392/rpc.mountd +udp 0 0 *:638 *:* 3006/rpc.statd +``` + +显示网卡列表 + +``` +# netstat -i +Kernel Interface table +Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg +eth0 1500 0 181864 0 0 0 141278 0 0 0 BMRU +lo 16436 0 3362 0 0 0 3362 0 0 0 LRU +``` + +显示组播组的关系 + +``` +# netstat -g +IPv6/IPv4 Group Memberships +Interface RefCnt Group +--------------- ------ --------------------- +lo 1 ALL-SYSTEMS.MCAST.NET +eth0 1 ALL-SYSTEMS.MCAST.NET +lo 1 ff02::1 +eth0 1 ff02::1:ff0a:b0c +eth0 1 ff02::1 +``` + +显示网络统计信息 + +``` +# netstat -s +Ip: + 184695 total packets received + 0 forwarded + 0 incoming packets discarded + 184687 incoming packets delivered + 143917 requests sent out + 32 outgoing packets dropped + 30 dropped because of missing route +Icmp: + 676 ICMP messages received + 5 input ICMP message failed. + ICMP input histogram: + destination unreachable: 44 + echo requests: 287 + echo replies: 345 + 304 ICMP messages sent + 0 ICMP messages failed + ICMP output histogram: + destination unreachable: 17 + echo replies: 287 +Tcp: + 473 active connections openings + 28 passive connection openings + 4 failed connection attempts + 11 connection resets received + 1 connections established + 178253 segments received + 137936 segments send out + 29 segments retransmited + 0 bad segments received. + 336 resets sent +Udp: + 5714 packets received + 8 packets to unknown port received. + 0 packet receive errors + 5419 packets sent +TcpExt: + 1 resets received for embryonic SYN_RECV sockets + ArpFilter: 0 + 12 TCP sockets finished time wait in fast timer + 572 delayed acks sent + 3 delayed acks further delayed because of locked socket + 13766 packets directly queued to recvmsg prequeue. + 1101482 packets directly received from backlog + 19599861 packets directly received from prequeue + 46860 packets header predicted + 14541 packets header predicted and directly queued to user + TCPPureAcks: 12259 + TCPHPAcks: 9119 + TCPRenoRecovery: 0 + TCPSackRecovery: 0 + TCPSACKReneging: 0 + TCPFACKReorder: 0 + TCPSACKReorder: 0 + TCPRenoReorder: 0 + TCPTSReorder: 0 + TCPFullUndo: 0 + TCPPartialUndo: 0 + TCPDSACKUndo: 0 + TCPLossUndo: 0 + TCPLoss: 0 + TCPLostRetransmit: 0 + TCPRenoFailures: 0 + TCPSackFailures: 0 + TCPLossFailures: 0 + TCPFastRetrans: 0 + TCPForwardRetrans: 0 + TCPSlowStartRetrans: 0 + TCPTimeouts: 29 + TCPRenoRecoveryFail: 0 + TCPSackRecoveryFail: 0 + TCPSchedulerFailed: 0 + TCPRcvCollapsed: 0 + TCPDSACKOldSent: 0 + TCPDSACKOfoSent: 0 + TCPDSACKRecv: 0 + TCPDSACKOfoRecv: 0 + TCPAbortOnSyn: 0 + TCPAbortOnData: 1 + TCPAbortOnClose: 0 + TCPAbortOnMemory: 0 + TCPAbortOnTimeout: 3 + TCPAbortOnLinger: 0 + TCPAbortFailed: 3 + TCPMemoryPressures: 0 +``` + +显示监听的套接口 + +``` +# netstat -l +Active Internet connections (only servers) +Proto Recv-Q Send-Q Local Address Foreign Address State +tcp 0 0 *:32769 *:* LISTEN +tcp 0 0 *:nfs *:* LISTEN +tcp 0 0 *:644 *:* LISTEN +tcp 0 0 *:1002 *:* LISTEN +tcp 0 0 *:netbios-ssn *:* LISTEN +tcp 0 0 *:sunrpc *:* LISTEN +tcp 0 0 vm-dev:ipp *:* LISTEN +tcp 0 0 *:telnet *:* LISTEN +tcp 0 0 *:601 *:* LISTEN +tcp 0 0 *:microsoft-ds *:* LISTEN +tcp 0 0 *:http *:* LISTEN +tcp 0 0 *:ssh *:* LISTEN +tcp 0 0 *:https *:* LISTEN +udp 0 0 *:32768 *:* +udp 0 0 *:nfs *:* +udp 0 0 *:641 *:* +udp 0 0 192.168.0.3:netbios-ns *:* +udp 0 0 *:netbios-ns *:* +udp 0 0 192.168.0.3:netbios-dgm *:* +udp 0 0 *:netbios-dgm *:* +udp 0 0 *:tftp *:* +udp 0 0 *:999 *:* +udp 0 0 *:sunrpc *:* +udp 0 0 *:ipp *:* +udp 0 0 *:1022 *:* +udp 0 0 *:638 *:* +Active UNIX domain sockets (only servers) +Proto RefCnt Flags Type State I-Node Path +unix 2 [ ACC ] STREAM LISTENING 10621 @/tmp/fam-root- +unix 2 [ ACC ] STREAM LISTENING 7096 /var/run/acpid.socket +unix 2 [ ACC ] STREAM LISTENING 9792 /tmp/.gdm_socket +unix 2 [ ACC ] STREAM LISTENING 9927 /tmp/.X11-unix/X0 +unix 2 [ ACC ] STREAM LISTENING 10489 /tmp/ssh-lbUnUf4552/agent.4552 +unix 2 [ ACC ] STREAM LISTENING 10558 /tmp/ksocket-root/kdeinit__0 +unix 2 [ ACC ] STREAM LISTENING 10560 /tmp/ksocket-root/kdeinit-:0 +unix 2 [ ACC ] STREAM LISTENING 10570 /tmp/.ICE-unix/dcop4664-1270815442 +unix 2 [ ACC ] STREAM LISTENING 10843 /tmp/.ICE-unix/4735 +unix 2 [ ACC ] STREAM LISTENING 10591 /tmp/ksocket-root/klauncherah3arc.slave-socket +unix 2 [ ACC ] STREAM LISTENING 7763 /var/run/iiim/.iiimp-unix/9010 +unix 2 [ ACC ] STREAM LISTENING 11047 /tmp/orbit-root/linc-1291-0-1e92c8082411 +unix 2 [ ACC ] STREAM LISTENING 11053 /tmp/orbit-root/linc-128e-0-dc070659cbb3 +unix 2 [ ACC ] STREAM LISTENING 8020 /var/run/dbus/system_bus_socket +unix 2 [ ACC ] STREAM LISTENING 58927 /tmp/mcop-root/vm-dev-2c28-4beba75f +unix 2 [ ACC ] STREAM LISTENING 7860 /tmp/.font-unix/fs7100 +unix 2 [ ACC ] STREAM LISTENING 7658 /dev/gpmctl +unix 2 [ ACC ] STREAM LISTENING 10498 @/tmp/dbus-s2MLJGO5Ci +``` + +## telnet + +> telnet 命令用于远端登入。 +> +> 执行telnet指令开启终端机阶段作业,并登入远端主机。 + +### 语法 + +``` +telnet [-8acdEfFKLrx][-b<主机别名>][-e<脱离字符>][-k<域名>][-l<用户名称>][-n<记录文件>][-S<服务类型>][-X<认证形态>][主机名称或IP地址<通信端口>] +``` + +**参数说明**: + +- -8 允许使用8位字符资料,包括输入与输出。 +- -a 尝试自动登入远端系统。 +- -b<主机别名> 使用别名指定远端主机名称。 +- -c 不读取用户专属目录里的.telnetrc文件。 +- -d 启动排错模式。 +- -e<脱离字符> 设置脱离字符。 +- -E 滤除脱离字符。 +- -f 此参数的效果和指定"-F"参数相同。 +- -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。 +- -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。 +- -K 不自动登入远端主机。 +- -l<用户名称> 指定要登入远端主机的用户名称。 +- -L 允许输出8位字符资料。 +- -n<记录文件> 指定文件记录相关信息。 +- -r 使用类似rlogin指令的用户界面。 +- -S<服务类型> 设置telnet连线所需的IP TOS信息。 +- -x 假设主机有支持数据加密的功能,就使用它。 +- -X<认证形态> 关闭指定的认证形态。 + +### 实例 + +登录远程主机 + +``` +# telnet 192.168.0.5 + +//登录IP为 192.168.0.5 的远程主机 +``` \ No newline at end of file diff --git a/docs/commands/linux-cmd-system.md b/docs/commands/linux-cmd-system.md index ed95fbf..6b12cf6 100644 --- a/docs/commands/linux-cmd-system.md +++ b/docs/commands/linux-cmd-system.md @@ -68,58 +68,6 @@ $ useradd -d /home/myd tt $ useradd caojh -u 544 ``` -## passwd 命令 - -> passwd 命令用来更改使用者的密码。 - -### 语法 - -``` -passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] -``` - -**必要参数**: - -- -d 删除密码 -- -f 强制执行 -- -k 更新只能发送在过期之后 -- -l 停止账号使用 -- -S 显示密码信息 -- -u 启用已被停止的账户 -- -x 设置密码的有效期 -- -g 修改群组密码 -- -i 过期后停止用户账号 - -**选择参数**: - -- --help 显示帮助信息 -- --version 显示版本信息 - -### 实例 - -修改用户密码 - -```sh -$ passwd w3cschool //设置w3cschool用户的密码 -Enter new UNIX password: //输入新密码,输入的密码无回显 -Retype new UNIX password: //确认密码 -passwd: password updated successfully -``` - -显示账号密码信息 - -```sh -$ passwd -S w3cschool -w3cschool P 05/13/2010 0 99999 7 -1 -``` - -删除用户密码 - -```sh -$ passwd -d lx138 -passwd: password expiry information changed. -``` - ## userdel 命令 > userdel 命令用于删除用户帐号。 @@ -184,6 +132,60 @@ usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天 # usermod -u 777 root ``` +## passwd 命令 + +> passwd 命令用来更改使用者的密码。 + +### 语法 + +``` +passwd [-k] [-l] [-u [-f]] [-d] [-S] [username] +``` + +**必要参数**: + +- -d 删除密码 +- -f 强制执行 +- -k 更新只能发送在过期之后 +- -l 停止账号使用 +- -S 显示密码信息 +- -u 启用已被停止的账户 +- -x 设置密码的有效期 +- -g 修改群组密码 +- -i 过期后停止用户账号 + +**选择参数**: + +- --help 显示帮助信息 +- --version 显示版本信息 + +### 实例 + +修改用户密码 + +```sh +$ passwd w3cschool //设置w3cschool用户的密码 +Enter new UNIX password: //输入新密码,输入的密码无回显 +Retype new UNIX password: //确认密码 +passwd: password updated successfully +``` + +显示账号密码信息 + +```sh +$ passwd -S w3cschool +w3cschool P 05/13/2010 0 99999 7 -1 +``` + +删除用户密码 + +```sh +$ passwd -d lx138 +passwd: password expiry information changed. +``` + +## + ## su 命令 > su 命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。 @@ -614,3 +616,23 @@ $ kill -l $ kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 $ kill -u hnlinux //方法二 ``` + +## exit 命令 + +> exit 命令用于退出目前的shell。 + +执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。 + +### 语法 + +``` +exit [状态值] +``` + +### 实例 + +退出终端 + +``` +# exit +``` \ No newline at end of file diff --git a/docs/linux.xmind b/docs/linux.xmind index 8a5d1cc..434e1e2 100644 Binary files a/docs/linux.xmind and b/docs/linux.xmind differ diff --git a/docs/resources.md b/docs/resources.md index 9e48082..c750936 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -16,6 +16,7 @@ * [bash-it](https://github.com/Bash-it/bash-it),为你日常使用,开发以及维护 shell 脚本和自定义命令提供了一个可靠的框架 * [dotfiles.github.io](http://dotfiles.github.io/),上面有bash和其它shell的各种dotfiles集合以及shell框架的链接 * [Runoob Shell 教程](http://www.runoob.com/linux/linux-shell.html) +* [shellcheck](https://github.com/koalaman/shellcheck) 一个静态 shell 脚本分析工具,本质上是 bash/sh/zsh 的 lint。 ## Vim