A. linux文件内容显示命令
linux中查看文件和目录的命令是:LSLS英文原意:list,命令所在路径:/bin/ls,适用于所有用户权限,主要功能就是以列表形式显示目录文件。其语法: ls 选项【-ald】【文件或目录】其中,-a 显示所有文件,包括隐藏文件;-l 详细信息显示;-d 仅显示目录名,而不显示目录下的内容列表;-h 人性化显示(hommization);-i 查看任意一个文件的i节点(类似于身份证唯一信息);-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件;注意:. 开头的文件除非是目录,否则就是隐藏文件(1)linux分屏显示文件的命令扩展阅读:创建目录命令:mkdir,英文原意:make directories,命令所在路径:/bin/mkdir,适用于所有用户权限,功能在于创建新的目录。其语法: mkdir 【-p】【目录名】-p 递归创建例子:a)创建单个目录:mkdir /tmp/vae.txtb)创建多个目录:mkdir /tmp/a.txt /tmp/b.txt使用时的注意事项:1、创建的目录已经存在, 那么 Linux 会提示我们 Linux 无法创建它。2、不带任何参数运行 mkdir 命令会在当前目录下创建目录。3、不带上-p,如果新建的文件上级目录不存在则不会执行成功这种说法是错误的。加或者不加上 -p 前面的目录没有得都会依次创建。4、创建目录的首要条件是, 在想要创建目录的目标路径下你必须具有访问权限。
B. Linux基本命令-2021-0717
[[email protected] ~]# ls -l 总用量 44 -rw——. 1 —- root —- root ——–1207 1 月14 18:18 anaconda-ks.cfg 权限–引用计数 所有者 — 所属组— 大小– 文件修改时间 文件名
ls [选项] [文件名或目录名] 选项: -a :显示所有文件 –color=when:支持颜色输出 -d :显示目录信息,而不是目录下的文件 -h :人性化显示﹐按照我们习惯的显示文件大小 -i :显示文件的i节点号 -l:长格式显示
pwd 命令是查询当前所在的目录的绝对路径 选项: -L (默认值)打印环境变量”$PWD”的值,可能为符号链接。 -P 打印当前工作目录的物理位置。
mkdir 是创建目录的命令 选项: -Z:设置安全上下文,当使用SELinux时有效; -m或–mode:建立目录的同时设置目录的权限; -p或–parents:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录; rmdir 是删除空目录的命令 -p: 递归删除目录
touch 是 创建空文件或修改文件的时间戳 [[email protected] ~]# touch [选项] 文件名 -a:或–time=atime或–time=access或–time=use 只更改存取时间; -c:或–no-create 不建立任何文件; -d:<时间日期> 使用指定的日期时间,而非现在的时间; -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题; -m:或–time=mtime或–time=modify 只更该变动时间; -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同; -t:<日期时间> 使用指定的日期时间,而非现在的时间; –help:在线帮助; –version:显示版本信息。
stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间戳 选项: -L:支持符号连接; -f:显示文件系统状态而非文件状态; -t:以简洁方式输出信息;
cat 命令用来查看文件内容 选项: -A: 相当于-vET 选项的整合,用于列出所有隐藏符号 -E: 列出每行结尾的回车符$ -n: 显示行号 -T: 把 Tab 键用^I显示出来 -v: 列出特殊字符
more 是分屏显示文件的命令
less 是分行显示文件的命令 用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。 选项: -e:文件内容显示完毕后,自动退出; -f:强制显示文件; -g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度; -l:搜索时忽略大小写的差异; -N:每一行行首显示行号; -s:将连续多个空行压缩成一行显示; -S:在单行显示较长的内容,而不换行显示; -x<数字>:将TAB字符显示为指定个数的空格字符。
head 是用来显示文件开头的命令 选项: -c –bytes=[-]NUM 显示前NUM字节;如果NUM前有”-“,那么会打印除了文件末尾的NUM字节以外的其他内容。 -n, –lines=[-]NUM 显示前NUM行而不是默认的10行;如果NUM前有”-“,那么会打印除了文件末尾的NUM行以外的其他行。 -q, –quiet, –silent 不打印文件名行。 -v, –verbose 总是打印文件名行。 -z, –zero-terminated 行终止符为NUL而不是换行符。
tail 是用来显示文件末尾的命令 选项: -c, –bytes=NUM 输出文件尾部的NUM(NUM为整数)个字节内容。 -f, –follow[={name|descript}] 显示文件最新追加的内容。“name”表示以文件名的方式监视文件的变化。 -F 与 “–follow=name –retry” 功能相同。 -n, –line=NUM 输出文件的尾部NUM(NUM位数字)行内容。 –pid=<进程号> 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令。 -q, –quiet, –silent 当有多个文件参数时,不输出各个文件名。 –retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“–follow=name”连用。 -s, –sleep-interal=<秒数> 与“-f”选项连用,指定监视文件变化时间隔的秒数。 -v, –verbose 当有多个文件参数时,总是输出各个文件名。
ln 是用来为文件创建链接的命令 [[email protected] ~]# ln [选项] 源文件 目标文件 选项: -s: 建立软链接文件。如果不加“-s”选项,则建立硬链接文件 -f: 强制。如果目标文件已经存在,则删除目标文件后再建立链接文件 -d, -F, –directory 创建指向目录的硬链接(只适用于超级用户) -f, –force 强行删除任何已存在的目标文件 -i, –interactive 覆盖既有文件之前先询问用户 -L, –logical 取消引用作为软链接的目标 -n, –no-dereference 把软链接的目的目录视为一般文件 -P, –physical 直接将硬链接到软链接 -r, –relative 创建相对于链接位置的软链接 -s, –symbolic 对源文件建立软链接
硬链接特征: 源文件和硬链接文件拥有相同的 Inode 和 Block 修改任意一个文件,另一个都改变 删除任意一个文件,另一个都能使用 硬链接标记不清,很难确认硬链接文件位置,不建议使用 硬链接不能链接目录 硬链接不能跨分区
软链接特征: 软链接和源文件拥有不同的 Inode 和 Block 两个文件修改任意一个,另一个都改变 删除软链接,源文件不受影响;删除源文件,软链接不能使用 软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变 软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文 件权限 软链接可以链接目录 软链接可以跨分区 软链接特征明显,建议使用软连接
rm 是强大的删除命令,不仅可以删除文件,也可以删除目录 [[email protected] ~]# rm [选项] 文件或目录 选项: d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; -f:强制删除文件或目录; -i:删除已有文件或目录之前先询问用户; -r:递归处理,将指定目录下的所有文件与子目录一并处理; –preserve-root:不对根目录进行递归操作; -v:显示指令的详细执行过程。
cp 是文件或目录用于复制的命令 [[email protected] ~]# cp [选项] 源文件 目标文件 选项: -a:此参数的效果和同时指定”-dpR”参数相同; -d:当复制软链接时,把目标文件或目录也建立为软链接,并指向与源文件或目录连接的原始文件或目录; -f:强行复制文件或目录,不论目标文件或目录是否已存在; -i:覆盖既有文件之前先询问用户; -l:对源文件建立硬连接,而非复制文件; -p:保留源文件或目录的属性; -r:递归处理,将指定目录下的所有文件与子目录一并处理; -s:对源文件建立软链接,而非复制文件; -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件; -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀; -b:覆盖已存在的文件目标前将目标文件备份; -v:详细显示命令执行的操作。
mv 是用来对文件或目录重新命名,或者将文件移动至其他目录 [[email protected] ~]# mv [选项] 源文件 目标文件 选项: -b:当文件存在时,覆盖前,为其创建一个备份; -f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录; -i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。 –strip-trailing-slashes:删除源文件中的斜杠“ / ”; -S<后缀>:为备份文件指定后缀,而不使用默认的后缀; –target-directory=<目录>:指定源文件要移动到目标目录; -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
[[email protected] ~]# ls -l install.log -rw-r–r–. 1 root root 24772 1 月 14 18:17 install.log 第一列的权限位如果不计算最后的“.”,则共有 10 位。
第 2~4 位代表文件所有者的权限。
chmod 用来变更文件或目录的权限 [[email protected] ~]# chmod [选项] 权限模式 文件名 选项: -c, –changes:当文件的权限更改时输出操作信息。 –no-preserve-root:不将'/'特殊化处理,默认选项。 –preserve-root:不能在根目录下递归操作。 -f, –silent, –quiet:抑制多数错误消息的输出。 -v, –verbose:无论文件是否更改了权限,一律输出操作信息。 –reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。 -R, –recursive:对目录以及目录下的文件递归执行更改权限操作。
用户身份
首先,读、写、执行权限对文件和目录的作用是不同的。
目录的可用权限其实只有以下几个。
chown 是修改文件和目录的所有者和所属组的命令 [[email protected] ~]# chown [选项] 所有者:所属组 文件或目录 选项: -c或——changes:效果类似“-v”参数,但仅回报更改的部分; -f或–quite或——silent:不显示错误信息; -h或–no-dereference:只对软链接的文件作修改,而不更改其他任何相关文件; -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理; -v或——version:显示指令执行过程; –reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同; 普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行 普通用户可以修改所有者是自己的文件的权限
chgrp 是修改文件和目录的所属组的命令 [[email protected] ~]# chgrp [选项] 所属组 文件或目录 -R 递归式地改变指定目录及其下的所有子目录和文件的所属的组 -c或——changes:效果类似“-v”参数,但仅回报更改的部分; -f或–quiet或——silent:不显示错误信息; -h或–no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件; -H如果命令行参数是一个通到目录的软链接,则遍历软链接 -R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理; -L:遍历每一个遇到的通到目录的软链接 -P:不遍历任何符号链接(默认) -v或——verbose:显示指令执行过程; –reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
umask 是显示或设置创建文件的权限掩码。我们需要先了解一下新建文件和目录的默认最大权限。
我们在这里按照权限字母来讲解 umask 权限的计算方法。我们就按照默认的 umask 值是 022来分别计算一下新建文件和目录的默认权限吧。
C. linux有办法分屏显示vim和终端么
linux 终侍渣宴端分屏命令vsp 比如:某文件夹下有文件:vector.cc, substr.cc1.使用vim命令打开任意一个文件:vim vector.cc打开第一个文件。如下图所示:2.按:Esc键 + “:”,并梁灶输入:vsp substr.cc 。Linux下多窗口分老银屏式终端Linux下多窗口分屏式终端–Terminatorterminator是个很好的终端程序,在Ubuntu linux下安装如下: sudo apt-get install terminator 可在同一屏打开多个窗口:
D. linux 常用命令要具体例子
1、cd命令:这是一个非常基本,也是大家经常需要使用的命令,它用于切换当前目录,它的参数是要切换到的目录的路径,可以是绝对路径,也可以是相对路径。cd /root/Docements #切换到目录/root/Docements2、ls命令:这是一个非常有用的查看文件与目录的命令,list之意,它的参数非常多。ls -l #以长数据串的形式列出当前目录下的数据文件和目录3、grep命令:该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等。4、find命令:find是一个基于查找的功能非常强大的命令。find / -name passwd#查找文件名为passwd的文件5、cp命令:该命令用于复制文件,之意,它还可以把多个文件一次性地复制到一个目录下。cp file1 file2 file3 dir#把文件file1、file2、file3复制到目录dir中6、mv命令:该命令用于移动文件、目录或更名,move之意。mv file1 file2#把文件file1重命名为file27、rm命令:该命令用于删除文件或目录,是remove的缩写。rm -fr dir#强制删除目录dir中的所有文件8、ps命令:该命令用于将某个时间点的进程运行情况选取下来并输出,process之意。9、tar命令:该命令用于对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压。10、cat命令:该命令用于查看文本文件的内容,后接要查看的文件名,通常可用管道与more和less一起使用,从而可以一页页地查看数据。cat text | less
E. 在linux中,如何分屏显示一个文件(如.txt)的内容命令或快捷键
linux中如果想要把某个命令或者程序执行的输出结果分屏显示,可以使用more工具来实现。是几乎所有linux发行版都自带的一个分屏显示的工具。1:如果只是输出一个文件的内容,可以直接用more来输出,例如more a.log2:如果希望分屏显示某个程序的输出内容,因为more只能直接操作文件,所以此时必须通过管道来实现分屏显示,例如./output | more3:more命令的相关参数+n 从笫n行开始显示-n 定义屏幕大小为n行+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 -c 从顶部清屏,然后显示-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能-l 忽略Ctrl+l(换页)字符-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似-s 把连续的多个空行显示为一行-u 把文件内容中的下画线去掉4:more命令的相关操作Enter 向下n行,需要定义。默认为1行Ctrl+F 向下滚动一屏空格键 向下滚动一屏Ctrl+B 返回上一屏= 输出当前行的行号:f 输出文件名和当前行的行号V 调用vi编辑器!命令 调用Shell,并执行命令 q 退出more
F. linux常用操作命令求助
1、
grep'mail'/etc/passwd#所有包含mail的行都会显示出来
2、因为不知道你需要的是什么属性,我这里给出三个不同的显示文件属性的命令
statinstall.logfileinstall.logls-linstall.log
3、
more/etc/passwd
4、
gzipinstall.log#压缩gzip-dinstall.log.gz#解压
5、
zip-rinstall.log.zipinstall.log#压缩unzipinstall.log.zip#解压
6、
toucha.txtb.txtc.txt&&tar-zcvfmytxt.tar.gza.txtb.txtc.txt
7、
ls-lh/root
G. linux常用命令有哪些
常用命令就是“查看命令”和“切换命令”
H. 1,使用linux目录及文件操作命令完成以下步骤:(18分)
cd / ;mkdir testcd testmkdir {d1,d2,d3}cd d1;touch f1 f2 f3rm -f f1;mv f2 ../d2;cp f3 ../d3cd ../ ;rm -rf d3date ;hwclock –set –date='10/01/2012';hwclock –hctosys;date【下面的命令时最好把时间改回来】tar zcf test.tar.gz * ;cp test.tar.gz d1;cd d1 ;tar zxvf test.tar.gzhead -n3 /root/install.log tail -n3 /root/install.loggroupadd testgroup;useradd -g testgroup testroot;passwd testroot输入两次密码deonfu56a6.##########################vi f5i输入一堆的文字esc:wq1)ls2)chmod u+x,g+x f53)chown testroot f54)wc -lwc f5############################7.1)ll /etc/ |more 2)wc -lcw /etc/passwd3)cd /test;ls -l >f6
I. Linux常用基本命令大全介绍
学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!
Linux系统常用的基本命令入门篇一、基础命令
1.Linu x的进 入与退出系统
进入Linux系统:
必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:
1.root–超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
2.普通用户–这个帐号供普通用户使用,可以进行有限的操作。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。
用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。
当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:
[[email protected]/root] #
这时就可以对系统做各种操作了。注意超级用户的提示符是“#”,其他用户的提示符是“$”。
2.修改口令
为了更好的保护用户帐号的安全,Linux允许用户随时修改自己的口令,修改口令的命令是passwd,它将提示用户输入旧口令和新口令,之后还要求用户再次确认新口令,以避免用户无意中按错键。如果用户忘记了口令,可以向系统管理员申请为自己重新设置一个。
3.虚拟控制台
Linux是一个真正的多用户 操作系统 ,它可以同时接受多个用户登录。Linux还允许一个用户进行多次登录,这是因为Linux和UNIX一样,提供了虚拟控制台的访问方式,允许用户在同一时间从控制台进行多次登录。虚拟控制台的选择可以通过按下Alt键和一个功能键来实现,通常使用F1-F6例如,用户登录后,按一下Alt-F2键,用户又可以看到"login:"提示符,说明用户看到了第二个虚拟控制台。然后只需按Alt-F1键,就可以回到第一个虚拟控制台。 一个新安装的Linux系统默认允许用户使用Alt-F1到Alt-F6键来访问前六个虚拟控制台。虚拟控制台可使用户同时在多个控制台上工作,真正体现Linux系统多用户的特性。用户可以在某一虚拟控制台上进行的工作尚未结束时,切换到另一虚拟控制台开始另一项工作。
退出系统
不论是超级用户,还是普通用户,需要退出系统时,在shell提示符下,键入exit命令即可。
4.查看命令帮助信息
man命令
man命令用于查询命令和程序的使用 方法 和参数。
例如:
man ls
将显示ls命令的基本格式和使用方法
Linux系统常用的基本命令入门篇二、关机重启命令
首先,是关机/重启命令,仅在虚拟机时使用,实际工作中用不到
reboot 一般不跟参数使用,输入指令即可重启
shutdown 一般需要跟参数,例:
shutdown -r 延时多少分钟重启,一般使用now
shutdown -r now 立即重启
shutdown -f 强制重启
跟windows一样,linux也存在注销功能
exit
1)halt
halt 可不接参数
halt -f 强制关机
2)poweroff
poweroff 可不接参数使用
poweroff -f 强制关机
3)init 0
4)shutdown 不可单独使用
shutdown -h 分钟数 延时多久关机
shutdown -h now 立即关机
Linux系统常用的基本命令入门篇三、vi编辑
vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器。
Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能。
vi编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用vi编辑器就必须熟练掌握着两种模式的切换。
默认情况下,打开vi编辑器后自动进入命令模式。从编辑模式切换到命令模式使用“esc”键,从命令模式切换到编辑模式使用“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输入。常用内置命令如下:
1 Ctrl+u:向文件首翻半屏;
2 Ctrl+d:向文件尾翻半屏;
3 Ctrl+f:向文件尾翻一屏;
4 Ctrl+b:向文件首翻一屏;
5 Esc:从编辑模式切换到命令模式;
6 ZZ:命令模式下保存当前文件所做的修改后退出vi;
7 :行号:光标跳转到指定行的行首;
8 :$:光标跳转到最后一行的行首;
9 x或X:删除一个字符,x删除光标后的,而X删除光标前的;
10 D:删除从当前光标到光标所在行尾的全部字符;
11 dd:删除光标行正行内容;
12 ndd:删除当前行及其后n-1行;
13 nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字;
14 p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方;
15 P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方;
16 /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示;
17 ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示;
18 a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作;
19 a:在当前字符后添加文本;
20 A:在行末添加文本;
21 i:在当前字符前插入文本;
22 I:在行首插入文本;
23 o:在当前行后面插入一空行;
24 O:在当前行前面插入一空行;
25 :wq:在命令模式下,执行存盘退出操作;
26 :w:在命令模式下,执行存盘操作;
27 :w!:在命令模式下,执行强制存盘操作;
28 :q:在命令模式下,执行退出vi操作;
29 :q!:在命令模式下,执行强制退出vi操作;
30 :e文件名:在命令模式下,打开并编辑指定名称的文件;
31 :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件;
32 :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例;
33 :set nu:在命令模式下,用于在最左端显示行号;
34 :set nonu:在命令模式下,用于在最左端不显示行号;
35 :1,3y 复制第一行到第三行
36 :1,3d 删除第一行到第三行
37 :1,3s/str/str_new/g 替换第一行到第三行中的字符串
38 :1,3s/str/str_new 替换第一行到第三行中的字符串第一个字符
39 :1,3 g/str /d 删除第一行到第三行中含有这个字符串的行
Linux常用命令一、查询相关
find
按规则查找某个文件或文件夹,包括子目录
find . -name '_sh' — 以.sh结尾的文件
find . -name '_hannel_ — 包含channel字符的文件
find . -name 'build_ — 以build开头的文件
find . -name 'abc??' — abc后面有两个字符的文件
grep
查找内容包含指定的范本样式的文件,Global Regular Expression Print
grep -n pattern files — 规则 -n表示显示行号
grep -n 'PostsActivity' AndroidManifest.xmlgrep -n 'd' AndroidManifest.xmlgrep 'aapt' build-channel.xml — 文件中包含字符串的所有地方
grep -n 'aapt' build-channel.xml — 文件中包含字符串的所有地方,并显示行号
ps -e | grep java — 所有java进程
ps -e | grep -i qq –所有qq进程,不区分大小写
find . -name '_hannel.xml' | xargs grep -n 'aapt' — 在以channel.xml结尾的文件中查找包含‘aapt’关键字的地方
ls | grep 'channel' — 包含channel关键字的文件
which
在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果
which zipwhich grep
Linux常用命令二、查看命令
tail
tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File]
从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
tail -f test.log,循环查看文件内容,Ctrl+c来终止
tail -n 5 test.log,显示文件最后5行内容
tail -n +5 test.log,从第5行开始显示文件
more
more [-dlfpcsu] [-num] [+/ pattern] [+linenum] [file…]
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。
more +3 test.log,显示文件中从第3行起的内容
more -5 test.log,设定每屏显示行数
ls -l | more -5,每页显示5个文件信息
more +/day3 test.log,查找第一个出现"day3"字符串的行,并从该处前两行开始显示输出
less
less [options] [file…]
与more命令一样,less命令也用来分屏显示文件的内容。但是二者存在差别:less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。
less test.log,查看文件
ps -ef | less,查看进程信息并通过less分页显示
history | less,查看命令历史使用记录并通过less分页显示
less test1.log test2.log,浏览多个文件,n和p切换文件
watch
watch [options] command
每隔一段时间重复运行一个命令,默认间隔时间是2秒。要运行的命令直接传给shell(注意引用和转义特殊字符)。结果会展示为全屏模式,这样你可以很方便的观察改变
watch -n 60 date,执行date命令每分钟一次,输入^C 退出
watch -d ls -l,查看目录变化
watch -d ’ls -l | fgrep joe’,想找joe用户的文件
watch -d 'ls -l|grep scf',监测当前目录中 scf' 的文件的变化
watch -n 10 'cat /proc/loadavg',10秒一次输出系统的平均负载
watch -n 1 -d netstat -ant,每隔一秒高亮显示网络链接数的变化
watch -n 1 -d 'pstree | grep http',每隔一秒高亮显示http链接数的变化
Linux常用命令三、文件相关
vi
vi file
按i键,进入编辑模式
按esc键,进入命令模式
:w 保存文件但不退出vi
:w file 将修改另外保存到file中,不退出vi
:w! 强制保存,不推出vi
:wq 保存文件并退出vi
:wq! 强制保存文件,并退出vi
q: 不保存文件,退出vi
:q! 不保存文件,强制退出vi
:e! 放弃所有修改,从上次保存文件开始再编辑
chmod
change mode,变更文件或目录的读、写、运行权限
chmod [-cfvR] [–help] [–version] mode file…
mode:权限设定字串,格式如下 : [ugoa…][[+-=][rw xX ]…][,…]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
chmod也可以用数字来表示权限,语法为:chmod abc file,如chmod 777 file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 r=4,w=2,x=1
chmod 777 file,等同于 chmod a=rwx file
chmod ug=rwx,o=x file,等同于 chmod 771 file
chmod 4755 filename,可使此程序具有root的权限
ls -l 可以查看列出当前用户的文件权限
zip
zip -r filename.zip filesdir
zip -r test.zip ./_把当前所有文件压缩到test.zip
zip -r test.zip test,把test文件所有文件及目录,要是到test.zip
zip -d test.zip test.txt,删除压缩文件中test.txt文件
zip -m test.zip ./test.txt,向压缩文件中test.zip中添加test.txt文件
zip -r test.zip file1 file2 file3 filesdir,处理多个文件和目录,空格隔开
unzip
unzip zip-file,解压到当前目录
unzip -d dst-dir zip-file,解压到指定的目录,-d后为指定目录
unzip -n zip-file,不覆盖已经存在的文件,-n为不要覆盖原有的文件
unzip -n -d dst-dir zip-file,解压到指定的目录,不覆盖已经原有的文件
unzip -o -d dst-dir zip-file,-o不必先询问用户覆盖原有文件
unzip -l zip-file,仅查看压缩文件内所包含的文件
tar
tar cvf test.tar test,把test下所有文件和目录做备份tar czvf test.tar.gz test,把test下所有文件和目录做备份并进行压缩tar xzvf test.tar.gz,把这个备份文件还原并解压缩tar tvf test.tar | more,查看备份文件的内容,并以分屏方式显示在 显示器 上
tar czvf test.tar.gz test –exclude=test/svn,备份压缩并排除目录
touch
J. Linux命令
快照功能:记录当前的硬盘的状态。刚建快照时快照占用内存为0,标记了当前硬盘的存储状态。当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照。当快照标记的部分被完全改写,那么快照存储空间完整记录了当时拍摄时的内存状态。
参数形式
第一种:参数用一横的说明后面的参数是字符形式。
第二种:参数用两横的说明后面的参数是单词形式。
第三种:参数前有横的老链顷是 System V风格。
第四种:参数前没有横的是 BSD风格。
cat、more、less、head、tail命令的比较:
cat命令可以一次显示整个文件,如果文件比较大,使用不是很方便;
more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页。
less命令也可以分页显示文件,和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快。
head命令用于查看文件的前n行。
tail命令用于查看文件的后n行,加上-f命令,查看在线日志非常方便,可以打印最新增加的日志。
一般模式:
编辑模式:
命令模式:
编码
多行操作(列编辑模式) 插入:ctrl+v进入列编辑模式,上下移动光标选择需要插入的位置,然后输入大写I,输入需要文本,最后按esc键退出,就会发现文本会在选择的多行中插入。 删除:ctrl+v进入列编辑模式,上下移动光标选中需要删除的部分,然后按d,就会删除选中的内容。
①head:显示文件头部内容
②tail:输出文件尾部内容
注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效。需要用到
追加和覆盖语句(>或>>),才能被tail -f监视到。
一般用于查看小文件
查看压缩文件中的文本内容
例:
①more:文件内容分屏查看器
②less:分屏显示文件内容,效率比more高
1、简单读取
运行脚本如下
测试结果为:
2、-p 参数,允许在 read 命令行中直接指定一个提示。
运行脚本如下
测试结果为:
echo [选项] [输出内容] (输出内容到控制台)
输出给定文本的sha256加密后的内容
①显示当前时间信息
②显示当前时间年月日
③显示当侍陆前时间年月日时分秒
④显示昨天
⑤显示明天时间
⑥显示上个月时间
需要注意的是取下个月的命令存在bug,执行如下命令会得到21-10,但是正常应该得到21-09,需要注意 date -d “2021-08-31 +1 month” +%y-%m
⑦修改系统时间
⑧获取当前时间戳 获取秒时间戳: date +%s 获唤袜取毫秒时间戳:$[ (date +%s%N) /1000000]
查看日历
(1)查看当前月的日历
(2)查看2017年的日历
例:
对比gzip/gunzip,zip/unzip可以压缩文件和目录且保留源文件。
①zip:压缩
②unzip:解压缩
只能压缩文件不能压缩目录,不保留原来的文件。
gzip 文件 (只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)
例: crontab -e
(1)进入crontab编辑界面。会打开vim编辑你的工作。
(2)每隔1分钟,向/root/longma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11” >> /root/longma.txt
(3)可以用tail -f 目标文件来实施监控追加的内容
查看日志 可以用tail -f /var/log/cron.log观察
Cron表达式见文章: https://www.jianshu.com/writer#/notebooks/46619194/notes/75177408
ls [选项] [目录或是文件]
cd [参数]
例: cd -P $(dirname $p1) ; pwd 先跳转到文件的所在目录,再打印$p1文件的实际路径
概述
①cp():只能在本机中复制
②scp(secure ):可以复制文件给远程主机
scp -r test.sh [email protected]:/root
③rsync(remote sync):功能与scp相同,但是不会改文件属性
rsync -av test.sh test.sh [email protected]:/root
④nc(netcat):监听端口,可以实现机器之间传输文件。 nc -lk 7777 (-l表示listen,-k表示keep)
强制覆盖不提示的方法:cp
例:scp -r test.sh [email protected]:/root
例:rsync -av test.sh [email protected]:/root
例:
nc -lp 10000 > nc_test.txt
nc -w 1 hadoop102 < nc_test.txt
远程登录时默认使用的私钥为~/.ssh/id_rsa
生成密钥对
将公钥发送到本机
将密钥发送到需要登录到本机的服务器上
修改密钥的权限
远程登陆
如果有多个节点需要远程登陆,可以在.ssh下创建config并输入
再次登陆
①正向代理:
②反向代理: 所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地。
HostA 将自己可以访问的 HostB:PortB 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
那么链接 HostC:PortC 就相当于链接 HostB:PortB。 使用时需修改 HostC 的 /etc/ssh/sshd_config 的一条配置如下,不然启动的进程监听的ip地址为127.0.0.1,即只有本机可以访问该端口。
相当于内网穿透,比如 HostA 和 HostB 是同一个内网下的两台可以互相访问的机器,HostC是外网跳板机,HostC不能访问 HostA,但是 HostA 可以访问 HostC。 那么通过在内网 HostA 上运行 ssh -R 告诉 HostC,创建 PortC 端口监听,把该端口所有数据转发给我(HostA),我会再转发给同一个内网下的 HostB:PortB。 同内网下的 HostA/HostB 也可以是同一台机器,换句话说就是 内网 HostA 把自己可以访问的端口暴露给了外网 HostC。
例: 比如在我的内网机192.168.32.244上有一个RabbitMQ的客户端,端口号为15672。现在我希望在外网上访问固定ip的云服务器chenjie.asia的6009端口,通过跳板机192.168.32.243来转发请求到192.168.32.244:15672,从而实现在外网访问内网服务的功能,即内网穿透。 ①在192.168.32.244上启动RabbitMQ服务
②将chenjie.asia云服务器的私钥复制到跳板机192.168.32.243的~/.ssh下,并重命名为id_rsa。通过如下命令看是否可以远程登陆到云服务,可以登陆则进行下一步。
③修改chenjie.asia服务器的ssh配置文件 /etc/ssh/sshd_config ,允许其他节点访问
然后重启sshd服务
④在跳板机192.168.32.243启动ssh反向代理
这个进程在关闭session时会停止,可以添加启动参数 -CPfN
例:
以 root 身份执行的程序有了所有特权,这会带来安全风险。Kernel 从 2.2 版本开始,提供了 Capabilities 功能,它把特权划分成不同单元,可以只授权程序所需的权限,而非所有特权。
例如:linux不允许非root账号只用1024以下的端口,使用root启动命令nginx,会导致nginx权限过高太危险。所以用setcap命令
sudo setcap cap_net_bind_service=+eip /bigdata/nginx/sbin/nginx
正确的关机流程为 :sync > shutdown > reboot > halt
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] [时间]
安装 yum install -y telnet-server telnet
ls -i 显示文件的节点号 find -inum 节点号 -delete 删除指定的节点即可删除对应的文件
启动一个服务: systemctl start postfix.service 关闭一个服务: systemctl stop postfix.service 重启一个服务: systemctl restart postfix.service 显示一个服务的状态: systemctl status postfix.service
在开机时启用一个服务: systemctl enable postfix.service 在开机时禁用一个服务: systemctl disable postfix.service 注:在enable的时候会打印出来该启动文件的位置
列出所有已经安装的服务及状态: systemctl list-units systemctl list-unit-files 查看服务列表状态: systemctl list-units –type=service
查看服务是否开机启动: systemctl is-enabled postfix.service 查看已启动的服务列表: systemctl list-unit-files | grep enabled 查看启动失败的服务列表: systemctl –failed
查看服务日志: journalctl -u postfix -n 10 -f
命令类似systemctl,用于操作native service。
添加脚本为服务(需要指定启动级别和优先级): chkconfig –add [脚本] 删除服务: chkconfig –del [脚本] 单独查看某一服务是否开机启动的命令 : chkconfig –list [服务名] 单独开启某一服务的命令 : chkconfig [服务名] on 单独关闭某一服务的命令: chkconfig [服务名] off 查看某一服务的状态: /etc/intd.d/[服务名] status
启用服务就是在当前”runlevel”的配置文件目录 /etc/systemd/system/multi-user.target.wants 里,建立 /usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接,添加服务就是添加软连接。
su 用户名称 (切换用户,只能获得用户的执行权限,不能获得环境变量)
su – 用户名称 (切换到用户并获得该用户的环境变量及执行权限)
echo $PATH 打印环境变量
设置普通用户具有root权限
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下 所示:
或者配置成采用sudo命令时,不需要输入密码
修改完毕,现在可以用hxr 帐号登录,然后用命令 sudo ,即可获得root权限进行操作。
以azkaban用户执行引号中的命令
gpasswd -d [username] [groupname] 将用户从组中删除 gpasswd -a [username] [groupname] 将用户加入到组中
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对 /etc/group文件的更新。
0首位表示类型 – 代表文件 d 代表目录 l 链接文档(link file)
三种特殊权限suid、sgid、sticky
例子:
变更文件权限方式一
例:chmod u-x,o+x houge.txt
变更文件权限方式二
例:chmod -R 777 /mnt/ 修改整个文件夹的文件权限
在linux中创建文件或者目录会有一个默认权限的,这个默认权限是由umask决定的(默认为0022)。umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中设置umask值。
umask计算 如root用户的默认umask为0022(第一个0 代表特殊权限位,这里先不考虑),创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022)。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111),022权限二进制码为(000)(010)(010)。
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了。我们使用如下的简单的方法快速计算。
上面的这个方法计算是非常方便的, 为何得到奇数要+1呢?
文件的最大权限是666,都是偶数,你得到奇数,说明你的umask有奇数啊,读为4,写为2,都是偶数,说明你有执行权限的。
就按照上面的umask=023为例,在计算其他用户权限的时候6-3=3 ,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限。所以结果加1。
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令。
例:递归改变文件所有者和所有组 chown -R hxr:hxr /mnt
例: