Linux下Shell命令小结(转载自StartOS,【原来的雨林木风】)
本文转载自:StartOS,http://www.startos.org/help_11.html.
今天在看新闻时看到雨林木风操作系统什么更新了啊,改名了啊,这些都没有怎么关注,
就把左边的选项卡一个一个点了下玩玩.结果看到shell命令的总结.在此mark一下.反正Linux通用....
常用 shell 命令:
注:Linux 系统只乎全部命令都有 -h|--help 选项,如遇不记得某命令的选项,使用此选项随时查阅
注:Linux 系统只乎全部命令都有 -h|--help 选项,如遇不记得某命令的选项,使用此选项随时查阅
man 命令手册查看(Manual): 此 man 非彼 man,放在第一个介绍,是因为掌握此命令,以下的命令应用就不那么费劲,在不了解某命 令时,随时查阅其手册即可,相当于该命令的 -h|--help 选项,但信息或许更详细。 注:若 man 命令查阅不出内容,可能需要安装 man-pages 包。 man [选项] 命令 man 命令常用选项: -k keyword 以 "keyword" 作为关键词搜索帮助手册 num num 为具体 1~9 的数字。man 手册分类为 9 部分, 深入了解可查看 man 命令手册(man man) 用法示例: man -K printf man printf man 3 printf type 描述命令类型 type 是 Bash Shell 内建命令,不是独立程序。 type 命令名 用法示例: type mv type -p type # -p 选项是显示命令路径 whereis 定位命令的执行文件,源码以及手册页文件 whereis [选项] 命令名, ... whereis 命令常用选项: -b 仅定位二进制文件 -m 仅定位手册文件 -s 仅定位源码文件 用法示例: whereis mv # 查找出有关 cp 命令的执行文件,源码及手册页位置 cd 改变工作目录(Change working Direcotry) cd [目录路径] # 如果省略 目录路径,则将进入到用户家目录。也是shell 内建命令 用法示例: cd /tmp cd ~ # 进入用户家目录,在 bash shell 中,符号"~"表示用户家目录 cd # 省略路径,也进入用户家目录 cp 文件复制(copy) cp [选项] 源文件 目标文件 cp 命令常用选项: -r 递归复制,即复制整个目录 -v 输出复制过程信息 -i 若目标文件已经存在,默认操作将覆盖目标文件,此选项则请求用户确认 -n 不复制已经存在的文件 -u 只复制比目标文件更新的文件 用法示例: cp filesrc filedst # 复制当前目录下 filesrc 文件成 filedst cp -r dirsrc dirdst # 复制当前目录下 dirsrc 目录 到 dirdst 目录 mv 文件移动(move), 与文件复制命令 cp 相似,不同处是操作完成后源文件将被删除;需要留意:mv 命 令没有递归选项 -r,移动目录跟移动普通文件没有区别 mv [选项] 源文件 目标文件 mv 命令常用选项: -i 默认情况下, mv 将覆盖掉源文件,此选项则请求用户确认 -n 不移动已存在文件 -u 只移动比目标文件更新的文件 -v 显示详细移动过程 用法示例: mv -vi file1 file2 # 交互式移动文件。该命令同目录下移动,实际是重命名文件 touch 创建文本文件, 如果要创建的文件已经存在,则更新文件访问及修改时间为当前时间 touch [选项] 文件名1 ... 用法示例: touch file1 # 若 file1 文件未存在,则建立名为 file1 的文本文件, # 否则更新其访问时间与修改时间 file 文件类型查看: Linux 中不以文件后缀名区分文件,不清楚某一文件类型时,使用此命令即可判断。 file [选项] 文件路径 用法示例: file /dev/sda file /dev/pts/1 rm 删除文件或目录(Remove) rm [选项] 文件或目录 ... rm 命令常用选项: -f 强制模式,永不提示,也不要求用户确认 -i 交互模式,删除文件前请求用户确认 -r 递归删除,即删除整个目录 -v 输出当前操作的详细信息 用法举例: rm -vi file1 # 删除文件 file1 rm -vir dir1 # 删除目录 dir1 find 搜索文件 find 命令非常强大,支持正规表达式(Regular Expression),三言两语难尽述其妙,建议读者使用 中随时查阅其手册 man find。 find 命令常用写法: find [选项] 路径 [其它选项] find 命令常用选项: -P 不跟随符号链接,即无视符号链接指向的文件 -L 跟随符号链接 find 命令常用的其它选项: -type <file_type> 查找指定的文件类型,可以是 f(普通文件),d(目录文件), c(字符设备文件),... -name <file_name> 查找特定文件,文件名大小写敏感 -iname <file_name> 与 -name 相同,不过忽略大小写 -maxdepth level 指定最多搜索的目录级别(目录层数),level 为具体的正数 -mindepth level 指定至少要搜索的目录级别,level 为具体的正的数字 -size [-/+] <file_size> 限定搜索文件的大小,file_size 为具体数字,单位可以 是c w b k M G。数字前导的"-"或"+"号表示文件大小 要“小于”或“大于”此数值,省略表示文件大小严格为此值。 -regex pattern 使用正规表达式搜索文件,pattern 为文件名表达式 -regextype type 限定 find 解析正规表达式的标准,type 可选值为 emacs(默认), posix-awk, posix-egrep, posix-extended -exec 命令 \; 执行命令。-exec 之后的内容都解析成命令的一部分,直至遇到分号 ";", 因为分号在 Bash Shell 中有特殊意义,故使用斜线 "\" 转义 用法示例: find . -type f # 找出 "." 目录(即当前目录)中所有文件 find ~ -name .bashrc # 在用户目录中查找名为 ".bashrc" 的文件 find /usr -type f -iname "*StartOS*" # 在目录 /usr 中忽略大小写找出文件名中含有 "StartOS" 的文件, 注意:该命令中使用 # "*"号时使用了双引号,这是为了防止在 Shell 解析命令行参数阶段就展开 "*" 号, # 在 *inx 类系统众多的 Shell 中,星号 "*" 被解析成匹配所有。在 Shell 解析该 # 命令行的时候,就解析成当前目录所有的内容了,若不使用双引号, "*" 根本没传到 # find 命令中。有兴趣的读者可以去掉双引号看看搜索结果有什么变化 find /usr -size +2k -size -2M -regextype posix-egrep -regex ".*png$" # 在 /usr 目录中,找出大小在 2kB 到 2MB 之间,并且文件名以 png 结尾的文件。 find ~ -type f -size +40M -exec file {} \; # 找出用户目录中 40MB 以上的文件,并使用 file 命令查探其类型。 # "{}" 代表 find 查找到的文件 mkdir 创建目录(Make Directory) 如果要创建的目录已经存在,则什么也不做 mkdir [选项] 目录名1 ... mkdir 命令常用选项: -p|--parents 必要时,建立父目录 -m 设置所建立目录的权限 -v 输出当前操作详细的信息 用法举例: mkdir -pv a/b/c # 将按 a/b/c 层次结构建立 a b c 共 3 个目录, 因使用了 -p 选项, # 所以在 a 或 b 目录不存在时,会自动一起建立。如果不使用 -p, # 则父目录不存在时会报错 mkdir a b c # 在当前目录建立 a b c 三个目录 rmdir 删除空目录(Remove Rirecotry) 如果是非空目录,则报错,并不删除目录 rmdir [选项] 空目录 ... rmdir 常用命令选项: -p|--parents 如果删除目录后,父目录也成为空目录,则一并删除之 -v 输出当前操作详细的信息 用法举例: rmdir -pv a/b/c # 删除空目录 c,之后若 b 目录也为空,则删除 b 目录,... rmdir a b c # 删除 a b c 三个空目录 cat 输出文本文件内容(Concatenate) 如果有多个文件,则依次输出到标准输出,相当于将数个文件的内容连接 cat [选项] 文件1 ... cat 常用选项: -n 显示行号 用法举例: cat /etc/yget.conf # 输出文件 /etc/yget.conf 的内容到标准输出 ls 列出目录内容(List) ls 命令使用频率非常高,这里只是列出最常用的几个选项,想要更大限度发挥 ls 功能,请查看其帮助 页 ls --help ls [选项] 文件或目录 ... ls 命令常用选项: -l 长列表格式输出文件属性 -R 递归列出,会遍历整个目录及其子目录 --color=[WHEN] 根据输出文件的性质(文件或目录类型等),给项目着不同的颜色。 WHEN 的值可以是'always' (默认), 'never', 'auto', 意义分别为:总是,永不,自动 -d 列出目录自身,而不是目录下的内容 -h 人性化输出,如文件大小以 K,M,G 的方式标出 用法示例: ls 列出当前目录的内容 ls -Rl /tmp 列出 /tmp 目录及其子目录下所有文件的详细信息 du 对文件/目录计算大小 du [选项] 目录或文件 ... du 命令常用选项: -h 人性化输出,文件大小以 K,M,G 的方式标示 -s 输出各个目录/文件的总的占用空间大小 用法示例: du -h ~ # 输出用户家目录下所有文件及子目录所占用的空间大小 df 列出文件系统使用情况 df [选项] [文件] ... df 命令常用选项: -a 所有文件系统 -h 人性化输出信息 -t <fs_type> 只输出 fs_type 限定的文件系统类型 -T 输出文件系统类型 用法示例: df -ht ext4 # 只输出类型为 ext4 的文件系统 df -T df -h /dev/sda1 # 只输出第一块硬盘第一个分区的使用情况 mount 挂载文件系统 注:可能需要特权用户权限。另外 StartOS 的文件管理器默认自动挂载所有文件系统;因此练习时命令 有可能报错。 mount [选项] 设备 目标目录 mount 命令常用选项: -t 指定文件系统类型,如 ntfs-3g, ext4 等 -B 挂载目录 用法示例: mount # 列出所有已经挂载的文件系统 mount -t ntfs-3g /dev/sda1 /mnt # 挂载第一块硬盘第一个分区到 /mnt 目录下 mount -B /media /mnt # 这里将目录 /media 挂载到 /mnt 目录下, # 这样无论 /mnt 或 /media 都可访问得到 # /media 目录的内容,建站时或许非常有用 umount 卸载文件系统 注:需要特权用户权限。 umount [选项] 设备或目录 ... umount 命令常用选项: -f 强制卸载目录 用法示例: umount /dev/sda1 # 卸载已经挂载的文件系统 /dev/sda1 top 实时显示进程列表 top 命令一旦运行,按字母“q”键退出。 top [选项] top 命令常用选项: -p pidlist 只显示进程号位于为 pidlist 中的进程动态 -d num 更新间隔时间。num 为时间,单位为秒(s) 用法示例: top -d 1 -p 1,2 # 只监视进程号为 1,2 的两个进程,且每秒更新一次信息 ps 列出当前系统运行的进程 ps 命令接受3种形式的选项,虽然强大,但也使得用户面对选项搭配不知所措,有选项是冲突的,有选项 功能是同一的,增加了使用难度。此处介绍只是 ps 的冰山一角,更详细的内容建 议查看其使用 手册 man ps ps [选项] ps 命令常用选项: -e 显示所有进程 -a 列出除会话首进程及未分配终端的进程外的所有进程 -u userlist 以用户有效 ID 或用户名选择列出进程,ID 或名字位于 userlist 中 -p pidlist 只列出指定进程号位于进程号列表 pidlist 的进程, 此选项可多次使用 --ppid pidlist 只列出进程号位于 pidlist 中的进程的子进程 x 列出属于当前用户的进程 -ax 列出所有进程。此处 'x' 与 'a' 联合使用,再组合其它选项时未必可用 用法示例: ps -ax ps x ps --ppid 1 # 列出父进程为 1 的进程 pstree 列出当前系统所有进程,以树形方式体现其层次关系 pstree [选项] pstree 命令常用选项: -a 命令参数一并列出 用法示例: pstree pidof 根据进程名称查找进程号(pid) pidof [选项] 进程名称 pidof 命令常用选项: -s pidof 会尽可能多地输出某名称的进程号,该选项限定只需要输出一个 用法示例: pidof lightdm kill 向进程发送信号 kill [选项] pidlist kill 命令常用选项: -l 列出信号名 -s signal 指定要发送的信号,默认是 15 用法示例: kill -s 9 <PID> # <PID> 为具体进程号(使用 pidof 命令查找),信号 9 是杀死进程 killall 杀死进程 killall [选项] 进程名称 用法示例: killall firefox # 杀死所有名为 "firefox" 的进程 ping 往网络主机发送数据包 用于网络联通测试。 ping [选项] 主机 ping 命令常用选项: -c 默认 ping 一直运行,直到用户按下 Ctrl-C 中止,该选项则限定 ping 的次数 用法示例: ping localhost # 测试本机 TCP/IP 协议是否正常,localhost 已被配置成代表本机 ifconfig 查看/设置网络(Interface Configure) 注:使用 ifconfig 设置网络时需要特权用户权限,并且设置不会被保存,所有改动重启后消失。 Linux 系统中网络接口可理解成网卡,有线网卡编号为: eth0 eth1 ...;无线网卡编号为: wlan0 wlan1 ... ifconfig [选项] [网络接口] ifconfig 网络接口 [协议地址簇] 选项 地址 ... # 一般协议地址簇可省略,使用默认值 ifconfig 命令常用选项: -a 显示所有网络接口 up 开启网络接口 down 关闭网络接口 netmask 设置掩码 broadcast 设置广播地址 用法示例: ifconfig -a # 显示所有网络接口信息 ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 # 以上命令设置有线网卡 IP 地址为 192.168.1.100, 子网掩码为 255.255.255.0, # 广播地址 192.168.1.255。如果子网掩码设置足以区别出广播地址,则广播地址一般可以 # 省略,由 ifconfig 自动配置 ifconfig eth0 down ifconfig eht0 up # 练习中若配置出错造成无法上网,执行两行命令,分别关闭/开启一次,即可恢复原有设置 netstat 查看网络状态(Network Status) netstat [选项] netstat 常用选项: -p 显示出进程信息 -t 只列出与 tcp 协议有关的条目 -u 只列出与 udp 协议有关的条目 -n 端口,地址等使用数字而不是名称显示 -a 显示所有 -l 仅显示在监听状态的条目 用法示例: netstat -atunp # 显示出所有在使用 tcp 及 udp 协议的进程,及通信双方地址、端口号