1.cd命令,进入某个目录
cd /root 进入root目录 cd 或者 cd ~ 进入用户家目录 2.ls命令,展示目录下的文件和目录,我们常用的是展示详细内容的ls -l,也可以写成它的别名 ll,它会展示文件属性、 权限等信息。 -l :列出长数据串,包含文件的属性与权限数据等 -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用) -d :仅列出目录本身,而不是列出目录的文件数据 -h :将文件容量以较易读的方式(GB,kB等)列出来 -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来 3. grep命令,这个命令用于分析一行的信息,一般与管道符匹配使用,对上个命令的执行结果进行筛选、加工等。 -a :将binary文件以text文件的方式查找数据 -c :计算找到‘查找字符串’的次数 -i :忽略大小写的区别,即把大小写视为相同 -v :反向选择,即显示出没有‘查找字符串’内容的那一行 # 例如: # 取出文件/etc/man.config中包含MANPATH的行,并把找到的关键字加上颜色 grep --color=auto 'MANPATH' /etc/man.config # 把ls -l的输出中包含字母file(不区分大小写)的内容输出 ls -l | grep -i file 比如统计当前目录下包含 wang 的字符的数量: ll | grep wang | wc -l 或 ll | grep -c wang 4. find命令,用于查询。可用于查询的参数类别比较多,较为复杂。 find [PATH] [option] [action] # 与时间有关的参数: -mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件; -mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名; -mtime -n : 列出在n天之内(含n天本身)被更改过的文件名; -newer file : 列出比file还要新的文件名 # 例如: find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件 # 与用户或用户组名有关的参数: -user name : 列出文件所有者为name的文件 -group name : 列出文件所属用户组为name的文件 -uid n : 列出文件所有者为用户ID为n的文件 -gid n : 列出文件所属用户组为用户组ID为n的文件 # 例如: find /home/ljianhui -user ljianhui # 在目录/home/ljianhui中找出所有者为ljianhui的文件 # 与文件权限及名称有关的参数: -name filename :找出文件名为filename的文件 -size [+-]SIZE :找出比SIZE还要大(+)或小(-)的文件 -tpye TYPE :查找文件的类型为TYPE的文件,TYPE的值主要有:一般文件(f)、设备文件(b、c)、 目录(d)、连接文件(l)、socket(s)、FIFO管道文件(p); -perm mode :查找文件权限刚好等于mode的文件,mode用数字表示,如0755; -perm -mode :查找文件权限必须要全部包括mode权限的文件,mode用数字表示 -perm +mode :查找文件权限包含任一mode的权限的文件,mode用数字表示 # 例如: find / -name passwd # 查找文件名为passwd的文件 find . -perm 0755 # 查找当前目录中文件权限的0755的文件 find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte 5.mkdir命令,创建文件夹 -m(--mode) 指定文件、目录的权限,注意这里只能赋予当前用户支持的最高权限。如当前用户只支持755,-m指定777,则结果为755。-p(--parents) 递归创建目录,可以一次性创建多级目录 -v(-verbose) 每次创建目录都展示信息 递归创建目录,即一次性创建多级目录:mkdir -p /aaa/bbb 6.rm命令,删除文件、目录,rm不带参数只允许删除空目录,我们一般都使用rm -rf来删除文件,一种习惯。 -f :就是force的意思,忽略不存在的文件,不会出现警告消息 -i :互动模式,在删除前会询问用户是否操作 -r :递归删除,最常用于目录删除,它是一个非常危险的参数 7.cp命令,复制一个文件到一个目录,复制目录需要带-r参数 -a :将文件的特性一起复制 -p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份 -i :若目标文件已经存在时,在覆盖时会先询问操作的进行 -r :递归持续复制,用于目录的复制行为 -u :目标文件与源文件有差异时才会复制 8.mv命令: 1. 剪切一个文件到一个目录 2.如果目录是当前目录,则意味着重名名当前文件 -b 类似--backup 但不接受参数 -f, --force 覆盖前不询问 -i, --interactive 覆盖前询问 -n, --no-clobber 不覆盖已存在文件 如果您指定了-i、-f、-n 中的多个,仅最后一个生效。 9. ps命令:管理当前进程的命令,将某个时刻的当前进程列出来。 -A :所有的进程均显示出来 -a :不与terminal有关的所有进程 -u :有效用户的相关进程 -x :一般与a参数一起使用,可列出较完整的信息 -l :较长,较详细地将PID的信息列出 常用搭配如下: ps aux # 查看系统所有的进程数据 ps ax # 查看不与terminal有关的所有进程 ps -lA # 查看系统所有的进程数据 ps axjf # 查看连同一部分进程树状态 10.file命令:用于查看当前文件的类型,包含文件、目录、硬链接、软连接等~ 命令格式: file 文件名,如 file /home/wang/sb234 11.kill命令:杀死某个进程。 该命令用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用,它的基本语法如下: kill -signal PID signal的常用参数如下: 注:最前面的数字为信号的代号,使用时可以用代号代替相应的信号。 1:SIGHUP,启动被终止的进程 2:SIGINT,相当于输入ctrl+c,中断一个程序的进行 9:SIGKILL,强制中断一个进程的进行 15:SIGTERM,以正常的结束进程方式来终止进程 17:SIGSTOP,相当于输入ctrl+z,暂停一个进程的进行 例如: # 以正常的结束进程方式来终于第一个后台工作,可用jobs命令查看后台中的第一个工作进程 kill -SIGTERM %1 # 重新改动进程ID为PID的进程,PID可用ps命令通过管道命令加上grep命令进行筛选获得 kill -SIGHUP PID 12.killall命令:该命令用于向一个命令启动的进程发送一个信号,它的一般语法如下: killall [-iIe] [command name] 它的参数如下: -i :交互式的意思,若需要删除时,会询问用户 -e :表示后面接的command name要一致,但command name不能超过15个字符 -I :命令名称忽略大小写 # 例如: killall -SIGHUP syslogd # 重新启动syslogd 13.lsblk命令,以树状图的方式整齐的列出除了RAM之外的块设备。 lsblk -l 以非树状图方式展示。 14.uname命令,显示机器名等信息。 uname -a 展示机器内核名、分支名、内核发布版本、内核版本、处理器架构、操作系统名。 如我本地的虚拟机: Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 15.history命令:展示所有执行过的命令,使用CTRL+R可以检索执行过的命令,并可以自动补全。 16.sudo命令:使用超级管理员权限来执行命令。注意:sudo是允许用户借用超级用户的权限,然而“su”是允许用户以root用户登录。所以sudo比su更安全。不建议使用此命令来处理日常用途。 17.touch命令:将文件的访问时间和修改时间改为当前时间,如果文件不存在,则创建一个新文件。我们经常使用这个命令在用户有权限的目录下创建不存在的文件。 18.cal、date等日期相关的命令。 cal以日历的形式展示时间,不带参数展示当前日期,带参数展示指定日期,如:cal 2 5 1830 展示1830年5月2日。 date展示年月日时分秒星期等,也可以设置时间,如 date --set='29 Dec 2015 11:07:00' 将时间设置为2015年12月29日。 19.echo命令: 1.在终端 中输出一段字符串,可以使用引号或者不使用引号。 2. 在文件末尾追加内容。 参数:-n 文字末尾不换行 -e 特殊符号特别处理、 \a 发出警告声;\b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v 与\f相同; \\ 插入\字符; \nnn 插入nnn(八进制)所代表的ASCII字符;
示例: echo -e 'haha\thaha\ 结果:haha haha echo who am i >> \home\wang\sb234 结果向sb234文件末尾追加字符串who am i 20.cat命令这个命令有三大功能。 1.查看文件内容 cat filename 2.创建一个新文件并写入多行内容 ,要以EOF或STOP结束 (这里后面写的是什么,就以什么结束。不一定写成EOF,自己测试的) cat >newfilename <<EOF 3.合并几个文件为一个新文件 cat file1 file2 > newfile 参数: -n 对内容加上行号并展示 -b 对非空行加上行号并展示 -e/E 对每行末尾追加$符号并展示 -s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或 --show-nonprinting 可做操作: 1.将多个文件合并为一个文件 cat sb2 sb3 > sb4 2.将文件内容清空 cat /dev/null > sb234 3.将文件加上行号(可以用-n或-e参数控制空行是否加入行号)并展示到新文件中 cat -n sb > sb400 4.创建不存在的文件并写入内容 cat >sb <<EOF 写入多行内容并以EOF结束 5.向已存在的文件中追加内容 cat >>sb <<EOF 追加多行内容并以EOF结束 6.将多个文件内容追加到一个已存在的文件中 cat sb3 sb4 >> sb5 总的来说>代表创建,>>代表追加。这里一定不要搞错了 21.whereis 命令,是命令的搜索命令。用于定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或者是帮助文件。whereis命令还具有搜索源代码、指定备用搜索路径和搜索不同寻常项的能力。 -b 定位可执行文件。-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
-B 指定搜索可执行文件的路径。
-M 指定搜索帮助文件的路径。
-S 指定搜索源代码文件的路径。
比如:whereis ls 这条命令会列出ls这个命令可执行文件、源代码文件(这个实际结果中没有)、帮助文件在文件系统中的位置 22.whatis命令,这个命令比较有意思,是用于查询一个系统命令是干什么的。比如刚才提到的whereis命令。 执行命令:whatis whereis 查询whereis这个命令是干什么的。 结果: whereis (1) - locate the binary, source, and manual page files for a command 23.which命令,在PATH变量指定的路径中搜索某个命令可执行文件的位置,并返回第一个结果。可以查看某个命令是否存在。 -n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。-p 与-n参数相同,但此处的包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
执行命令:which ll 会查询到ls命令可执行文件的位置,并展示执行命令的详细内容。 结果: alias ll='ls -l --color=auto' /bin/ls 24.locate命令,用于搜索文件。由于其并非遍历整个文件目录,而是从后台数据库中搜索(/var/lib/mlocate/mlocate.db),所有速度最快。但可能会查不到最近新增或修改的文件,需要更新一下后台数据库才行(执行命令updatedb)。 另外注意:locate命令是有搜索限制的,文件位置:/etc/updatedb.conf # 开启搜索限制 PRUNE_BIND_MOUNTS = "yes" #不搜索的文件系统 PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs" #不搜索的文件类型 PRUNENAMES = ".git .hg .svn" #不搜索的文件路径 PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp" -e 将排除在寻找的范围之外。-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
-h 显示辅助讯息
-V 显示程式的版本讯息
25.type命令,用于查看某个命令是shell自带的还是shell外部独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该文件的路径,相当于which命令。 type cd 26.help命令,用于查询系统自带命令的帮助文档 -s 以简短方式展示命令的帮助文档 27.head命令,默认展示行头的10条数据。 28.tail命令,默认展示行尾的10条数据,与head命令相对应。-f 循环读取(监视文件是否动态改变)
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
29.cut命令,为文件中的每一行提取符合条件的字符并输出。 -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除。 针对行操作: -b和-c一个是字节,一个是字符,在英文和数字看来取得的结果没有什么区别,然而当内容为中文时就有区别了。-b可能会乱码,-b的中文,一个中文占用3个字节,-c一个字符就是一个字符。所以,对于中文而言,-b -3等同于-c 1。另外遇到中文这种多字节字符时,可以用-n参数,告诉其不要把多字节字符拆开。(-nb可以,-bn不行,测试发现的) 针对域操作: 这个地方需要举一个例子来说明域的概念,比如/etc/passwd文件中保存的数据不是特别整齐有规律,但是整体是以:隔开的,cut命令支持对于这种文件的操作。需要结合-b和-f,-b代表以什么作为分隔符,-f代表第几块区域。 /etc/passwd文件内容: root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinuucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologingopher:x:13:30:gopher:/var/gopher:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinvcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologinrtkit:x:499:496:RealtimeKit:/proc:/sbin/nologinavahi-autoipd:x:170:170:AvahiIPv4LLStack:/var/lib/avahi-autoipd:/sbin/nologinntp:x:38:38::/etc/ntp:/sbin/nologinsaslauth:x:498:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinhaldaemon:x:68:68:HAL daemon:/:/sbin/nologinpulse:x:497:495:PulseAudioSystemDaemon:/var/run/pulse:/sbin/nologingdm:x:42:42::/var/lib/gdm:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologintcpdump:x:72:72::/:/sbin/nologinwang:x:500:500:wang1:/home/wang:/bin/bashwangftp:x:501:501::/home/wangftp:/sbin/nologinftpadmin:x:502:502::/home/ftpadmin:/sbin/nologin 测试: head -n 5/etc/passwd | cut -d :-f 5 输出结果: rootbindaemonadmlp 30.nl命令,对文件内容指定行号格式化输出。 -b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。
-p 在逻辑定界符处不重新开始计算。
DEMO: #将文件内容非空行标识3位行号,在右方显示(前面可以空行,如果用-n ln的方式(行号在最左侧)和-w是不兼容的,-w指定的值不会生效)。nl -b t -n rz -w 3 test.log #输出结果:001 坎坎伐檀兮, 002 置之河之干兮。 003 河水清且涟猗, 004 不稼不穑, 005 故取禾三百潺兮。 006 两个黄鹂鸣翠柳, 007 一行白鹭上青天。 008 窗含西岭千秋雪, 009 门泊东吴万里船。 来自为知笔记(Wiz)转载于:https://www.cnblogs.com/douJiangYouTiao888/p/6474038.html
相关资源:JAVA上百实例源码以及开源项目