linux常用命令

mac2022-06-30  114

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上百实例源码以及开源项目
最新回复(0)