linux命令格式:
在武平等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、网站设计 网站设计制作按需搭建网站,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,成都外贸网站建设,武平网站建设费用合理。
说明:command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个
一般是linux命令自带的帮助信息
如:
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
例:man ls ; man 2 printf
man中各个section意义如下:
man是按照手册的章节号的顺序进行搜索的。
man设置了如下的功能键:
在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令
当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来
ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。
ls常用参数:
Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
如:ls test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
注意: 输出重定向会覆盖原来的内容,输出重定向则会追加到文件的尾部。
查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
管道:一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。
在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感
cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。
使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。
通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。
需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。
可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。
可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。
常用参数及含义如下表所示:
Linux链接文件类似于Windows下的快捷方式。
链接文件分为软链接和硬链接。
软链接:软链接不占用磁盘空间,源文件删除则软链接失效。
硬链接:硬链接只能链接普通文件,不能链接目录。
使用格式:
如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。
注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。
Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。
grep一般格式为:
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。
常用选项说明:
find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。
常用用法:
cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
常用选项说明:
用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
常用选项说明:
计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
tar使用格式 tar [参数] 打包文件名 文件
tar命令很特殊,其参数前面可以使用“-”,也可以不使用。
常用参数:
tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [选项] 被压缩文件
常用选项:
tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。
在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)
通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后目录文件 压缩文件
whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。
由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。
who命令用于查看当前所有登录系统的用户信息。
常用选项:
如果是图形界面,退出当前终端;
如果是使用ssh远程登录,退出登陆账户;
如果是切换后的登陆用户,退出则返回上一个登陆账号。
在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。
useradd命令的使用格式如下:
useradd [参数] 新建用户账号
在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。
可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。
方法一:
方法二:
groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组
使用方法:usermod -g 用户组 用户名
新创建的用户,默认不能sudo,需要进行一下操作
-g用来制定这个用户默认的用户组
-G一般配合'-a'来完成向其它组添加
chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx 文件
cal命令用于查看当前日历,-y显示整年日历
设置时间格式(需要管理员权限):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。
显示时间格式(date '+%y,%m,%d,%H,%M,%S'):
进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。
ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:
top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。
在top命令执行后,可以按下按键得到对显示的结果进行排序:
kill命令指定进程号的进程,需要配合 ps 使用。有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束.
使用格式:
kill [-signal] pid
df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。
du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。
du命令的使用格式如下: du [选项] 目录或文件名
阿里云原本命令提示符
修改过程:
命令提示符主要靠 PS1 这个变量决定的。我们可以打印下就知道了
所以修改这个变量就可以了,linux一般在/etc/bashrc 这个文件设置这个变量的,修改下就好了
把\h 去掉,弄掉主机名,这样修改变量需要重启会话窗口才能生效的。
修改后:
学习Linux系统,命令是最基础的一部分,有着很重要的地位,所以入门必须掌握好常用命令。下面由我为大家整理了Linux系统常用的基本命令入门篇,希望对大家有帮助!
Linux系统常用的基本命令入门篇一、基础命令
1.Linu x的进 入与退出系统
进入Linux系统:
必须要输入用户的账号,在系统安装过程中可以创建以下两种帐号:
1.root--超级用户帐号(系统管理员),使用这个帐号可以在系统中做任何事情。
2.普通用户--这个帐号供普通用户使用,可以进行有限的操作。
一般的Linux使用者均为普通用户,而系统管理员一般使用超级用户帐号完成一些系统管理的工作。如果只需要完成一些由普通帐号就能完成的任务,建议不要使用超级用户帐号,以免无意中破坏系统。影响系统的正常运行。
用户登录分两步:第一步,输入用户的登录名,系统根据该登录名识别用户;第二步,输入用户的口令,该口令是用户自己设置的一个字符串,对其他用户是保密的,是在登录时系统用来辨别真假用户的关键字。
当用户正确地输入用户名和口令后,就能合法地进入系统。屏幕显示:
[root@loclhost/root] #
这时就可以对系统做各种操作了。注意超级用户的提示符是ldquo;#rdquo;,其他用户的提示符是ldquo;$rdquo;。
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编辑器后自动进入命令模式。从编辑模式切换到命令模式使用ldquo;escrdquo;键,从命令模式切换到编辑模式使用ldquo;Ardquo;、ldquo;ardquo;、ldquo;Ordquo;、ldquo;ordquo;、ldquo;Irdquo;、ldquo;irdquo;键。
vi编辑器提供了丰富的内置命令,有些内置命令使用键盘组合键即可完成,有些内置命令则需要以冒号ldquo;:rdquo;开头输入。常用内置命令如下:
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字符串。其中,ldquo;s/rdquo;表示进行替换操作;
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结尾的文件中查找包含lsquo;aaptrsquo;关键字的地方
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 rsquo;ls -l | fgrep joersquo;,想找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
快照功能:记录当前的硬盘的状态。刚建快照时快照占用内存为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/bailongma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11” /root/bailongma.txt
(3)可以用tail -f 目标文件来实施监控追加的内容
查看日志
可以用tail -f /var/log/cron.log观察
Cron表达式见文章:
ls [选项] [目录或是文件]
cd [参数]
例: cd -P $(dirname $p1) ; pwd 先跳转到文件的所在目录,再打印$p1文件的实际路径
概述
①cp(copy):只能在本机中复制
②scp(secure copy):可以复制文件给远程主机
scp -r test.sh hxr@hadoop102:/root
③rsync(remote sync):功能与scp相同,但是不会改文件属性
rsync -av test.sh test.sh hxr@hadoop102:/root
④nc(netcat):监听端口,可以实现机器之间传输文件。
nc -lk 7777 (-l表示listen,-k表示keep)
强制覆盖不提示的方法:\cp
例:scp -r test.sh hxr@bigdata1:/root
例:rsync -av test.sh hxr@bigdata1:/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
例: