linux常用指令
? Linux通用的格式 #指令主体(空格) [选项](空格) [操作对象] 这就是 Linux 系统的命令提示符。那么,这个提示符的含义是什么呢? 在[[email?protected] ~]#中 []:这是提示符的分隔符号,没有特殊含义。 root:显示的是当前的登录用户,当前使用的是 root 用户登录。 @:分隔符号,没有特殊含义。 localhost:当前系统的简写主机名(完整主机名是 localhost.localdomain)。 ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。 #:命令提示符,Linux 用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是 #;如果是普通用户,提示符就是 $ ? ? (1)?? ls指令含义:ls (list) 用法1:#ls 含义:列出当前工作目录下的所有文件/文件夹的名称 用法2:#ls 路径 含义:列出指定路径下的所有文件/文件夹的名称 绝对路径指的是从根目录(/)开始写起的文件或目录名称, 相对路径则指的是相对于当前路径的写法。 用法3:#ls 选项 路径 含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。 常见的语法: ?????? #ls -l 路径 ?????? #ls -la 路径 ? 选项解释: -h????? (human)以容易理解的格式列出文件大小 (例如 1K 234M 2G) -S????? (SIZE)根据文件大小排序 -t?????? (time)以文件修改时间排序 -i?????? (inode)显示文件或者目录的inode信息,即索引信息 -a????? (all)列出目录下的所有文件(包阔隐藏文件/文件夹) -l?????? (list)除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来 -R (Recursive)递归列出子目录,等於将该目录下的所有文件都显示出来。 -d????? 仅列出目录本身,而不是列出目录内的文件数据。 ? ?
? 列表中的第一列字符表示文档的类型,其意义如下:
注意:
? ? (2)?? pwd指令用法:#pwd???????????? (print working directory,打印当前工作目录) ? (3)?? cd指令命令:#cd????????? (change directory,改变目录) 作用:用于切换当前的工作目录的 语法:#cd 路径 ? 补充: 在Linux中有一个特殊的符号“~”,表示当前用户的家目录。 [[email?protected] home]# cd [[email?protected] home]# cd ~???????? //直接切换到家目录 [[email?protected] ~]# cd ~user2????????????? //直接切换到指定用户家目录 其他特殊符号:
?(4)?? mkdir指令指令:mkdir??? (make directory,创建目录) 语法1:#mkdir 路径 【路径,可以是文件夹名称也可以是包含名称的一个完整路径】 语法2:#mkdir -p 路径?????? ?????? //-p(parent)如果存在父目录没有错误,根据需要创建父目录 含义:当一次性创建多层不存在的目录的时候,添加-p参数,否则会报错 语法3:#mkdir 路径1 路径2 路径3 …. ?【表示一次性创建多个目录】 #mkdir -v 详细 -p 递归 目录 1 #mkdir /home/dir2 /home/dir3 2 3 #mkdir /home/{dir4,dir5} //这个斜杠不能少 4 5 #mkdir -v /home/{dir6,dir7} //-v表示显示详细信息,遍历 6 7 #mkdir -v /home/dir8/111/22 8 9 #mkdir -pv /home/dir8/111/222 //包括其父母的创建,不会有任何消息输出 10 11 #mkdir -pv /home/{yang/{dir1,111},tianyun} //创建多层多个目录 ? 扩展:
(5)?? touch指令指令:touch?? 作用:创建文件 语法:#touch 文件路径?????? 【路径可以是直接的文件名也可以是路径】 ? 1 #touch file1.txt //无则创建,有则修改时间 2 3 touch file3 file4 4 5 touch /home/file10.txt 6 7 touch /home/file5 file6 //file在/home/目录下,file6在所在的当前路径下 8 9 touch /home/{zhuzhu,gougou} 10 11 touch file{1..20} 12 13 touch file{a..c} //一次性创建若干个文件 14 15 touch youngfit{a,b,c} //{}集合,等价touch youngfita youngfitb youngfitc ? ?? (6)?? cp指令指令:cp??????????? (copy,复制) 作用:复制文件/文件夹到指定的位置 语法:#cp ?原文档路径? 新文档路径 ? 注意:Linux在复制过程中是可以重新对新位置的文件进行重命名的,但是如果不是必须的需要,则建议保持前后名称一致。 ? 案例:使用cp命令来复制一个文件夹 注意:当使用cp命令进行文件夹复制操作的时候需要添加选项“-r”【-r表示递归复制】,否则目录将被忽略 ? ? 1 cp -v install.log /home/dir1 //-v 显示详细信息 2 3 cp -v install.log /home/dir1/yang.txt 4 5 cp -rv /etc /home/dir1 //-r 常用于拷贝目录,表示递归,连同子目录一块拷贝的意思 6 7 cp -rv 源文件1 源文件2 源文件N 目标文件 //将多个文件拷贝到同一个目录,mv(剪切)也有类似操作 8 9 cp -rv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/grub.conf /etc/hosts / //全部拷贝到根目录下 10 11 cp -r /etc /tmp 12 13 cp -rf /etc /tmp //-f,--force 强制 ? (7)?? mv指令指令:mv?? (move,移动,剪切) 作用:移动文档到新的位置 语法:#mv 需要移动的文档路径 需要保存的位置路径 ? 补充:在Linux中重命名的命令也是mv,语法和移动语法一样。 ? ? (8)?? rm指令指令:rm (remove,移除、删除) 作用:移除/删除文档 语法:#rm 选项 需要移除的文档路径 选项: ?????? -f:force,强制删除,不提示是否删除 ?????? -r:表示递归 注意!!
? 案例:删除多个文档 #rm? -rf? a.txt? b.txt? c.txt 案例:要删除一个目录下有公共特性的文档,例如都以Linux开头 #rm? -rf? linux.* 其中*称之为通配符,意思表示任意的字符,Linux*,则表示只要文件以Linux开头,后续字符则不管。 ? (9)?? 输出重定向一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。 ?语法:#正常执行的指令 > / >>?文件的路径 >:覆盖输出,会覆盖掉原先的文件内容 >>:追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加 ? 注意:文件可以不存在,不存在则新建 ? (10) cat指令作用1:cat有直接打开一个文件的功能。 语法1:#cat 文件的路径 ? 作用2:cat还可以对文件进行合并 语法2:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径 例如,合并3个文件,并存到一个文件中【配合输出重定向使用】 ? 扩展:?
? (11)??????????? df指令作用:用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息 语法:#df ?-h???????? -h表示以可读性较高的形式展示大小 ? (12)??????????? free指令作用:查看内存使用情况,可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区 语法:#free ?-m?? -m表示以mb为单位查看 ? 剩余的真实可以用的内存为1694mb。 swap:用于临时内存,当系统真实内存不够用的时候可以临时使用磁盘空间来充当内存。 ? (13)head指令作用:查看一个文件的前n行,如果不指定n,则默认显示前10行。 语法:#head -n 文件路径 ??【n表示数字】 ? ?(14)? tail指令作用1:查看一个文件的未n行,如果n不指定默认显示后10行 语法:#tail -n 文件的路径 ???n同样表示数字 作用2:可以通过tail指令来查看一个文件的动态变化内容【变化的内容不能是用户手动增加的】 语法:#tail -f 文件路径 该命令一般用于查看系统的日志比较多。 ? ?用法:
注意:vim,gedit编辑文件时,索引号会改变 (15)??????????? less/more指令作用:查看文件,以较少的内容进行输出,按下辅助功能键(数字+回车、空格键+上下方向键)查看更多 语法:#less 需要查看的文件路径 less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键 (16)??????????? wc指令作用:统计文件内容信息(包含行数、单词数、字节数) 语法:#wc -lwc 需要统计的文件路径 ?????? -l:表示lines,行数 ?????? -w:表示words,单词数 ??依照空格来判断单词数量 ?????? -c:表示bytes,字节数 ? (17)??????????? date指令(重点)作用:date命令是显示或设置系统时间与日期。 语法1:#date????????????????? 输出的形式:2018年 3月 24日 星期六 15:54:28 语法2:#date? +%F???? (等价于#date? “+%Y-%m-%d” )???? 输出形式:2018-03-24 语法3:#date? “+%F %T”??? 引号表示让“年月日与时分秒”成为一个不可分割的整体 等价操作#date? “+%Y-%m-%d %H:%M:%S” 输出的形式:2018-03-24 16:01:00 ? 语法4:获取之前或者之后的某个时间(备份) #date? -d? “-1 day”? “+%Y-%m-%d %H:%M:%S” 符号的可选值:+(之后) 或者 - (之前) 单位的可选值:day(天)、month(月份)、year(年) ? 设定/修改时间 date -s??????????????????????? //设置当前时间,只有root权限才能设置,其他只能查看 date -s 20120523?????????????? //设置成20120523,这样会把具体时间设置成空00:00:00 date -s 01:01:01?????????????? //设置具体时间,不会对日期做更改 date -s "01:01:01 2012-05-23"? //这样可以设置全部时间 ?
? (18)??????????? cal指令作用:用来操作日历的 语法1:#cal????? ? 等价于 #cal? -1???????? 直接输出当前月份的日历 语法2:#cal? -3?????????????????? 表示输出上一个月+本月+下个月的日历 语法3:#cal? -y 年份 ???????????? 表示输出某一个年份的日历 ? (19)??????????? clear/ctrl + L指令作用:清除终端中已经存在的命令和结果(信息)。 语法:clear????????????? 或者快捷键:ctrl + L ? 需要注意的是,该命令并不是真的清除了之前的信息,而是把之前的信息的隐藏到了最上面,通过滚动条继续查看以前的信息。 (20)??????????? 管道(重要)管道符:| 作用:管道一般可以用于“过滤”,“特殊”,“扩展处理”。 语法:管道不能单独使用,必须需要配合前面所讲的一些指令来一起使用,其作用主要是辅助作用。 ? ①过滤案例(100%使用):需要通过管道查询出根目录下包含“y”字母的文档名称。 #ls / | grep y 针对上面这个命令说明: ①以管道作为分界线,前面的命令有个输出,后面需要先输入,然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入; ? ? (21)??????????? grep指令grep指令:主要用于过滤 基本语法 grep [选项] 查找内容 源文件 常用选项: 案例1: 请在 hello.txt 文件中,查找 "yes" 所在行,并且显示行号 #cat hello.txt |grep -n yes #grep ‘root‘ /etc/passwd //在文件中查找root #grep ‘^root‘ /etc/passwd //在文件中查找在行首的root #grep ‘bash$‘ /etc/passwd #grep ‘failure‘ /var/log/secure ? 忽略匹配样式中的字符大小写: #echo "hello world" | grep -i "HELLO" hello ? 搜索多个文件并查找匹配文本在哪些文件中: #grep -l "text" file1 file2 file3... ? ? ? grep 命令常用选项及含义 -c????? 仅列出文件中包含模式的行数。 -i?????? 忽略字母大小写。 -l?????? 列出带有匹配行的文件名。 -n????? 列出行号。 -v????? 列出没有匹配模式的行。 -w???? 把表达式当做一个完整的单字符来搜寻,忽略那些部分匹配的行 ? grep 命令支持如表所示的这几种正则表达式的元字符(也就是通配符)。
注意!在基本正则表达式中,如通配符 *、+、{、|、( 和 )等,已经失去了它们原本的含义,而若要恢复它们原本的含义,则要在之前添加反斜杠 ,如 *、+、{、|、( 和 )。 ? ②特殊用法案例:通过管道的操作方法来实现less的等价效果(了解) 之前通过less查看一个文件,可以#less 路径 现在通过管道还可以这么:#cat 路径|less ? ③扩展处理:请使用学过的命令,来统计某个目录下的文档的总个数? 答:#ls / | wc -l ? grep指令和 管道符号 | grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。 ? (22)??????????? hostname指令作用:操作服务器的主机名(读取、设置) 语法1:#hostname???????????????? 含义:表示输出完整的主机名 语法2:#hostname? -f?????????????? 含义:表示输出当前主机名中的FQDN(全限定域名) 修改主机名命令: #hostnamectl? set-hostname? 新名字??????? #断开重连,永久修改,重启不恢复 #hostname??? 新名字???????? ??????????????????????????? #断开重连。临时修改,重启后恢复 ? 用于显示和设置系统的主机名称。环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要修改/etc/hostname的相关内容。 在CentOS7中有三种定义的主机名: 静态的(static)、瞬态的(transient)、和灵活的(pretty)。 静态主机名也称为内核主机名,是系统在启动时从/etc/hostname内自动初始化的主机名。 瞬态主机名是在系统运行时临时分配的主机名。 灵活主机名则允许使用特殊字符的主机名。
? (23)??????????? id指令作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。 语法1:#id??????? 默认显示当前执行该命令的用户的基本信息 语法2:#id? 用户名???????????? 显示指定用户的基本信息 ? 验证上述信息是否正确? 验证用户信息:通过文件/etc/passwd 验证用户组信息:通过文件/etc/group (24)??????????? whoami指令作用:“我是谁?”显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志。也可以使用#echo $USER 语法:#whoami ? (25)??????????? du -sh指令作用:显示指定的目录或文件所占用的磁盘空间 语法:#du -sh 目录路径 选项含义: ?????? -s:summaries,只显示汇总的大小 ?????? -h:表示以高可读性的形式进行显示 ? ? (26)??????????? find指令作用:用于查找文件(其参数有55个之多) 语法:#find 路径范围 选项 选项的值 选项: ?????? -name:按照文档名称进行搜索(支持模糊搜索) ?????? -type:按照文档的类型进行搜索 ????????????? 文档类型:“-”表示文件(在使用find的时候需要用f来替换),“d”表示文件夹 ? 按文件名 1 [[email?protected] ~]# find /etc -name "ifcfg-ens33" //以名字的方式查找 2 3 [[email?protected] ~]# find /etc -iname "ifcfg-ens33" //-i忽略大小写 4 5 [[email?protected] ~]# find /etc -iname "ifcfg-ens*" ? 按文件大小 [[email?protected] ~]# find /etc -size +5M //大于5M [[email?protected] ~]# find /etc -size 5M //等于5M [[email?protected] ~]# find /etc -size -5M [[email?protected] ~]# find /etc -size +5M -ls //-ls找到的处理动作,不是平时用的ls ? 按指定查找的目录深度 -maxdepth levels -mindepth levels [[email?protected] ~]# find / -maxdepth 3 -a -name "ifcfg-ens33" //maxdepth 3最大3层 -a要满足2个条件 ? 按时间找(atime,mtime,ctime): 1 [[email?protected] ~]# find /etc -mtime +5 //修改时间超过5天 2 3 [[email?protected] ~]# find /etc -mtime 5 //修改时间等于5天 4 5 [[email?protected] ~]# find /etc -mtime -5 //修改时间5天以内 ? 按文件类型 1 [[email?protected] ~]# find /dev -type f //f普通 2 3 [[email?protected] ~]# find /dev -type d //d目录 4 5 [[email?protected] ~]# find /dev -type l //l链接 6 7 [[email?protected] ~]# find /dev -type b //b块设备 8 9 [[email?protected] ~]# find /dev -type c //c字符设备 10 11 [[email?protected] ~]# find /dev -type s //s套接字 ? 按文件权限 [[email?protected] ~]# find . -perm 644 -ls // .是当前目录,精确查找644 ,*一般都是精确 [[email?protected] ~]# find . -perm -644 -ls //-是包含到意思。 带不带-自己对比一下查看。 带-表示只要有就可以 [[email?protected] ~]# find . -perm -600 -ls [[email?protected] ~]# find . -perm -222 -ls //可写 [[email?protected] ~]# find /usr/bin -perm -4000 -ls //包含set uid [[email?protected] ~]# find /usr/bin -perm -2000 -ls //包含set gid [[email?protected] ~]# find /usr/bin -perm -1000 -ls //包含sticky ? (27)??????????? systemctlsystemctl命令是系统服务管理器指令(CentOS7中),它实际上将?(CentOS 6 中的)service?和?chkconfig?这两个命令组合到一起
? 1 1.启动nfs服务 2 3 systemctl start nfs-server.service 4 5 2.设置开机自启动 6 7 systemctl enable nfs-server.service 8 9 3.停止开机自启动 10 11 systemctl disable nfs-server.service 12 13 4.查看服务当前状态 14 15 systemctl status nfs-server.service 16 17 5.重新启动某服务 18 19 systemctl restart nfs-server.service 20 21 6.查看所有已启动的服务 22 23 systemctl list -units --type=service ? 1 开启防火墙22端口 2 3 iptables -I INPUT -p tcp --dport 22 -j accept 4 5 如果仍然有问题,就可能是SELinux导致的 6 7 关闭SElinux: 8 9 修改/etc/selinux/config文件中的SELINUX=””为disabled,然后重启。 10 11 彻底关闭防火墙: 12 13 systemctl status firewalld.service 14 15 systemctl stop firewalld.service 16 17 systemctl disable firewalld.service 18 19 关闭内核防火墙 20 21 [[email?protected] ~]# setenforce 0 ? ? (28)??????????? ifconfig指令(重点)作用:用于操作网卡相关的指令。 简单语法:#ifconfig????????????? (获取网卡信息) Eth0表示Linux中的一个网卡,eth0是其名称。Lo(loop,本地回还网卡,其ip地址一般都是127.0.0.1)也是一个网卡名称。 注意:inet addr就是网卡的ip地址。 ? (29)??????????? reboot指令作用:重新启动计算机???????? 语法1:#reboot???????????? 重启 语法2:#reboot? -w?? 模拟重启,但是不重启(只写关机与开机的日志信息) ? (30)??????????? shutdown指令作用:关机?????????????? (慎用) 语法1:#shutdown -h now? “关机提示”? 或者 ?#shutdown? -h 15:25? “关机提示” ? 如果想要取消关机计划的话,则可以按照以下方式去尝试: ①针对于centos7.x之前的版本:ctrl+c ②针对于centos7.x(包含)之后的版本:#shutdown? -c ? 除了shutdown关机以外,还有以下几个关机命令: #init 0????????????????? #halt #poweroff???? ????? (31)??????????? uptime指令作用:输出计算机的持续在线时间(计算机从开机到现在运行的时间) 语法:#uptime (32)??????????? uname指令作用:用于获取当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等 语法1:#uname?????????????? 获取操作系统的类型 语法2:#uname? -a???????????? all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划) ? l -a或- -all: 显示全部的信息 l -m或- -machine 显示主机的硬件(CPU)名 l -n或- -nodename 显示主机在网络节点上的名称或主机名称 l -r或- -release 显示linux操作系统内核版本号 l -s或--sysname 显示linux内核名称 l -v 显示显示操作系统是第几个version 版本 l -p或- -processor: 显示处理器类型或unknown l -i或- -hardware-platform: 显示硬件平台类型或unknown l -o或- -operating-system 显示操作系统名 ? ? (33)??????????? netstat -tnlp指令作用:查看网络连接状态 语法:#netstat -tnlp ? 选项说明: ?????? -t:表示只列出tcp协议的连接; ?????? -n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示; ?????? -l:表示过滤出“state(状态)”列中其值为LISTEN(监听)的连接; ?????? -p:表示显示发起连接的进程pid和进程名称; (34)??????????? man指令作用:manual,手册(包含了Linux中全部命令手册,英文) 语法:#man 命令????????????????? (退出按下q键) 案例:通过man命令查询cp指令的用法 #man ?cp #cp? --help (35)??????????? 时间类型访问时间:atime,查看内容 修改时间:mtime,修改内容 改变时间:ctime,文件属性,比如权限 查询示例 # ls -l install.log ls ?-l 文件名 仅看的是文件的修改时间 ? (36)??????????? scp指令作用:scp命令用于在Linux下进行远程拷贝文件的命令 从远处复制文件到本地目录 scp [email?protected]:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/ 从10.10.10.10机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中。 ? 从远处复制到本地 scp -r [email?protected]:/opt/soft/mongodb /opt/soft/ 从10.10.10.10机器上的/opt/soft/中下载mongodb目录到本地的/opt/soft/目录来。 ? 上传本地文件到远程机器指定目录 scp /opt/soft/nginx-0.5.38.tar.gz [email?protected]:/opt/soft/scptest 复制本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程机器10.10.10.10的opt/soft/scptest目录。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |