现在的主流Linux发行版中,默认使用Bash解释器作为Shell终端,而Bash作为主流Linux系统的Shell解释器具有相当大的优势。 1.可以使用方向键的上下键调取过去执行的命令; 2.可以使用Tab补全功能,即手动打出前几个字母,若以此字符串进行查询只有一个命令或文件匹配,则补全此命令或文件名;若以此字符串查询有多个命令或文件,则显示查询到的命令列表或文件列表; 3.可以使用glob通配符功能: *:任意个任意字符;?:单个任意字符;[list]:匹配list中的任意字符;[!list]:不匹配list中的任意字符;[c1-c2]:匹配c1-c2中的任意单个字符,如[0-9],[a-z];{string1,string2,...}:匹配{}中的任意一个字符串;{c1..c2}:匹配c1-c2的全部字符,如{1..10}; 4.可以自定义环境变量以满足需求; 5.强大的批处理脚本; 帮助命令 作为自学者,首先需要学会的就是能看懂每个命令的帮助文档,那么第一个需要掌握的Linux命令就应该是man。 man命令 Linux下的帮助指令,通过man命令可以查看Linux中的命令帮助,配置文件帮助和编程帮助等信息。 语法: man [options...] 常用选项: -a:在所有的man手册中搜索; -f:等价于whatis,显示给定关键字的简短信息; -M:指定man手册搜索的路径; -#:指定从#号man手册中进行搜索; 系统相关命令 echo命令 在终端上显示字符串或变量提取出来的值。 语法: echo [options...] [$variable|string] 例如: echo 'Hello Linux'echo $PATH date命令 显示或设置Linux系统时间与日期。 语法: date [options...] [+dateformat] 常用选项: -d<字符串>:显示字符串所指的时间与日期; -s<字符串>:根据字符串设置系统时间与日期; --help:在线帮助; 常用日期格式: %H:小时,24小时制(00-23) %I:小时,12小时制(01-12) %M:分钟,(00-59) %S:秒钟,(00-59) %p:显示am或pm %Y:完整年份 %y:两位年份 %m:月份 %d:一个月的第几天(00-31) %Z:显示时区 %B:完整月份(January-December) %b:缩写月份(Jan-Dec) %A:完整星期几(Sunday- Saturday) %a:缩写星期几(Sun-Sat) %j:一年的第几天(001-365) %W:一年的第几个星期(00-53) %w:一个星期的第几天(0代表星期天) %X:显示的时间格式相当于%H:%M:%S %F:相当于%Y:%m:%d %T:24小时制hh:mm:ss 例如: date -d '1 day ago' +'%Y:%m:%d'(显示一天前的日期)date -d '2017-06-18' +'%Y/%m/%d %H:%M:%S'(日期格式转换,结果为:2017/06/18 00:00:00)date -s '2020-01-01 00:00:00' (设置系统全部时间) ps命令 查看当前系统的进程状态。 常用选项: -a:显示所有进程; -u:用户以及其他信息; -x:显示所有程序,不以终端机区分; Linux进程常见的状态 R:运行,正在运行的进程; S:中断,可中断的睡眠进程; U:不可中断,不可中断的睡眠进程; Z:僵死,进程已终止,但父进程未询问其状态情况; T:停止,当进程收到SIGSTOP,SIGTIN,SIGTSTP,SIGTOU信号时,停止运行; kill命令 根据指定进程号来删除执行中的程序或工作。 常用选项: -l:列出所有的kill可发送的信号 -s:指定要发送的信号 例如: 使用ps查询相应的进程,并使用kill结束进程 ps | grep vimkill 3268 killall命令 根据指定进程名杀死进程,此命令可杀死跟指定进程相关的所有进程。 常用选项: -i:交互式杀死进程,对每个要杀死的进程进行询问; -s:指定要发送的信号 例如: killall vim poweroff命令 用于系统关机。 reboot命令 用于系统重启。 目录和文件相关命令 pwd命令 以绝对路径的形式显示用户当前的工作目录。 mkdir命令 用来创建目录。如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 常用选项: -p:递归创建目录 例如: mkdir -p a/b/c ls命令 用来显示目标列表。Linux中最常用的命令之一。 语法: ls [options...] file 常用选项: -a:显示所有文件,包括隐藏文件; -l:以长格式显示目录下的文件列表,输出的信息从左到右代表的依次为:文件类型,权限模式,硬连接数,属主,属组,文件大小,文件最后修改时间,文件名; 例如: ls -la root(以长格式显示root目录下所有文件列表) cd命令 切换用户的工作目录至指定目录。cd -为Linux中最常用的命令之一。 语法: cd [options...] dir 常见选项: -:当前工作目录将被切换到环境变量'OLDPWD'所表示的工作目录中; 例如: cd(进入当前用户的家目录)cd -(进入上一个工作目录)cd !$(将上一个命令的参数作为cd的参数使用) mv命令 用来移动文件或对文件进行重命名 语法: mv [options...] source target 例如: mv /etc/fstab /etc/fstab.bak(将etc目录下的fstab文件进行重命名为fstab.bak)mv /etc/fstab /tmp(将etc目录下的fstab文件移动到tmp目录下) cp命令 将指定文件复制到指定目录中。(若源文件有多个文件,则目标文件必须是目录) 常用选项: -r/R:递归出来,源文件为目录时使用; -f:强制复制; -v:显示详细信息; 例如: cp /etc/fstab /tmp(将fstab文件复制到tmp目录下)cp /etc/* /tmp/etc.bak/(将etc目录下所有文件复制到tmp的etc.bak目录下) tree命令 以树状形式显示目录结构 touch命令 用于创建新文件或设置文件的时间戳。 常用选项: -a:仅修改文件的“访问时间”(atime) -m:仅修改文件的“修改时间”(mtime) tar命令 用于文件的打包和压缩。 常用选项: -c:创建新的备份文件; -x:从备份文件中还原文件; -f:指定备份文件; -v:显示文件打包或还原详细过程; -z:使用gzip程序对文件进行压缩或解压; -j:使用bzip2程序对文件进行压缩或解压; -t:列出备份文件中的文件列表; 例如: tar -cvf log.tar log.log(仅打包,不压缩)tar -zcvf log.tar.gz log.log(打包后使用gzip工具进行压缩)tar -jcvf log.tar.bz log.log (打包后使用bzip2工具进行压缩)tar -zxvf log.tar.gz (解压缩)tar -ztvf log.tar.gz(查询log.tar.gz中所包含的所有文件列表) 其他压缩工具: gzip,bzip2,zip 对应的解压缩工具: gunzip,bunzip2,unzip grep命令 global search regular and print out the line 强大的文本搜索工具,可以使用标准正则表达式,并把匹配的行打印出来。 语法: grep [options] match_pattern file 常用选项: -n:不仅显示所匹配的行,而且显示所匹配的行号; -v:反转查找; -i:忽略字符大小写; -o:只显示匹配到的字符; --color=auto:查询到的字符颜色高亮显示; -e:使用扩展正则表达式进行搜索; 例如: grep /sbin/nologin /etc/passwd(显示默认bin为/sbin/nologin的所有用户信息)grep -v /sbin/nologin /etc/paswd(显示默认bin不是/sbin/nologin的所有用户信息) find命令 用于在指定目录下查找文件。 -name:匹配文件名; -perm:匹配权限; -user:匹配属主; -group:匹配属组; -atime [-n|+n]:匹配访问时间,“-”代表n天以内,“+”代表n天以前; -mtime [-n|+n]:匹配修改时间,“-”代表n天以内,“+”代表n天以前; --type :匹配文件类型; -exec {} ;:若find命令执行返回true,这执行该命令,{}代表find命令搜索到的所有文件,结尾;为固定形式; 例如: find /home -name '*.txt'(搜索home目录下所有的txt文件)find . -type f -atime -7(搜索7天内被访问过的所有文件)find . -user root -type f(搜索属主为root的所有文件)find . -type f -mtime +30 -name '*.log' -exec cp {} old ;(将30天前的.log文件移动到old目录中) |
|