Linux系统运维之Linux实用操作
白羽 2018-07-11 来源 :网络 阅读 649 评论 0

摘要:本文将带你了解Linux系统运维之Linux实用操作,希望本文对大家学Linux有所帮助。


如果提示命令错误...sudo一下

1:先讲管道的原理,在讲管道之前就得讲讲IPC(进程间通信)

1.1:进程间通信就是在不同进程之间传播或交换信息,方式主要用管道,系统IPC,消息队列,套接字。。。

1.2:管道的特质:两个文件描述符引用,一个表示读端,一个表示写端。且规定从数据从管道的写端流入,从读端流出。

 

2:ps-ef | grep runserver

这条命令是选择命名为runserver的进程的信息,并打印出来,当然进程名可以改变。

首先是ps:processstatus,基本9且强大的进程查看命令。具体后面带什么参数有什么作用这里不说。

grep:globalsearch regular expression(RE) and print out theline,全面搜索正则表达式并把行打印出来,搜索的时候经常用到。

中间的|:管道符,管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

 

3:vim

3.1.删除字符

要删除一个字符,只需要将光标移到该字符上按下"x"。

3.2.删除一行

删除一整行内容使用"dd"命令。删除后下面的行会移上来填补空缺。

3.3.删除换行符

在Vim中你可以把两行合并为一行,也就是说两行之间的换行符被删除了:命令是"J"。

3.4.撤销

如果你误删了过多的内容。显然你可以再输入一遍,但是命令"u"更简便,它可以撤消上一次的操作。

3.5.重做

如果你撤消了多次,你还可以用CTRL-R(重做)来反转撤消的动作。换句话说,它是对撤消的撤消。撤消命令还有另一种形式,"U"命令,它一次撤消对一行的全部操作。第二次使用该命令则会撤消前一个"U"的操作。用"u"和CTRL-R你可以找回任何一个操作状态。

3.6.追加

"i"命令可以在当前光标之前插入文本。

"a"命令可以在当前光标之后插入文本。

"o"命令可以在当前行的下面另起一行,并使当前模式转为Insert模式。

"O"命令(注意是大写的字母O)将在当前行的上面另起一行。

3.7.使用命令计数

假设你要向上移动9行。这可以用"kkkkkkkkk"或"9k"来完成。事实上,很多命令都可以接受一个数字作为重复执行同一命令的次数。比如刚才的例子,要在行尾追加三个感叹号,当时用的命令是"a!!!"。另一个办法是用"3a!"命令。3说明该命令将被重复执行3次。同样,删除3个字符可以用"3x"。指定的数字要紧挨在它所要修饰的命令前面。

3.8.复制粘贴

复制:y;粘贴:p;选择:v

复制到系统剪切板:+y;粘贴我就不写了。

复制一行:yy,这样复制的,p的话会自动粘贴到下一行。

3.9

跳到文本最后一行按”G”或者shift+ g。

跳到文本第一行按gg或者2g。

3.10放弃所做的操作,q!

3.11查询,在命令行模式下输入/要查询的内容,回车,然后按n可以依次查看。

3.12跳转到指定行:命令行模式行号n:ngg。或者命令行输入:n,注意冒号要写。

3.13

v字符选择,将光标经过的字符选择

V行选择,将光标经过的行选择

3.14

设置行号: 进入vim,:setnumber (有冒号)

取消行号设置::setnonumber

或者,只要在/etc/vimrc(/etc/virc)文件中修改一下就行了,增加一行:setnumber,没有这个冒号

 

4:cat命令

cat命令用于文本输出。主要用三大功能

1.一次显示整个文件。

$ cat filename

2.从键盘创建一个文件。

$ cat > filename

只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件。

$cat file1 file2 > file

-n 或–number 由 1开始对所有输出的行数编号

-b 或–number-nonblank 和-n 相似,只不过对于空白行不编号

-s 或–squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行

 

接下来两个命令自己去领悟吧

cat-ns mess.txt

catmess.txt garbage.txt | grep 2333 > new.txt

 

5:在命令行控制台怎样粘贴复制

复制命令:ctrl + insert 或者鼠标左键选中就是复制

粘贴命令:shilt + insert 或者鼠标右键选中就是粘贴

 

6:ps命令:

ps中cmd表示启动进程的命令

 

6:grep命令:

grephello mess.txt garbage.txt

-v输出补集

-E使用正则表达式匹配 grep-E '[0-9]+' = egrep '[0-9]+'

只输出文件匹配到的部分- o:echothis is a test line. | egrep -o "[a-z]+\."

统计匹配字符串的行数-c:grep-c "text" file_name

忽略匹配样式中的字符大小写:echo"hello world" | grep -i "HELLO"

在多级目录中对文本进行递归搜索:grep-i 'hello' . -r -n

 

 

7:

> 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);

所以清空文件

echo> new.txt

>new.txt

>>

这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。

 

8:watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示。

-n:指定指令执行的间隔时间(秒):watch-n 1 'ps -aux –sort -pcpu' | head -n

 

 

9:文件颜色代表的含义

绿色文件:可执行文件,可执行的程序

红色文件:压缩文件或者包文件

蓝色文件:目录

白色文件:一般性文件,如文本文件,配置文件,源码文件等

浅蓝色文件:链接文件,主要是使用ln命令建立的文件

红色闪烁:表示链接的文件有问题

黄色:表示设备文件

灰色:表示其他文件

 

10:nohup

用途:不挂断地运行命令。

语法:nohupCommand [ Arg … ] [ &]

无论是否将nohup 命令的输出重定向到终端,输出都将附加到当前目录的nohup.out 文件中。

如果当前目录的nohup.out 文件不可写,输出重定向到$HOME/nohup.out 文件中。

如果没有文件能创建或打开以用于追加,那么Command 参数指定的命令不可调用。

举例:nohuppython manage.py runserver 0.0.0.0:9988

 

11:ls命令

-l:能展示出是文件还是目录,它的大小、修改日期和时间、文件或目录的名字以及文件的属主和它的权限。

-a:列出所有文件包括以‘.’开头的隐藏文件。

-lS:带-lS组合选项能按文件从大到小的次序显示。

-n:用ls-n命令来显示文件和目录的UID(译者注:userid,用户ID)和GID(译者注:groupid,组ID)。

-R:递归全部文件

 

 

12:chmod

变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分,另有3种特殊权限可供运用,再搭配拥有者与所属群组管理权限范围。您可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果您对符号连接修改权限,其改变会作用在被连接的原始文件。权限范围的表示法如下:

  u:User,即文件或目录的拥有者。

  g:Group,即文件或目录的所属群组。

  o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。

a:All,即全部的用户,包含拥有者,所属群组以及其他用户。

  有关权限代号的部分,列表于下:

  r:读取权限,数字代号为"4"。

  w:写入权限,数字代号为"2"。

  x:执行或切换权限,数字代号为"1"。

  -:不具任何权限,数字代号为"0"。

 

实例:

chmodug+w,o-w file1.txt file2.txt

温馨提示,有些文件不是自己的,要注意这时候需要修改的g的权限,例如sudochmod g+w vimrc

 

 

13:who

在linux系统中,我们可以使用who命令查看登录者信息。

who命令能够打印当前都有谁登录到系统中 的相关信息。who命令只会显示真正登录到系统中的用户。它不会显示那些通过su命令切换用户的登录者。

-q选项完成计数功能。

默认情况下,who命令不会打印空闲时间和PID信息。如果打算显示这些信息,使用-u选项。不要忘记使用-H选项让显示的信息更加简单易读。空闲时间包含了最近最后一次活动以来消逝的时间.所以,00:13意思是 用户leni已经13分钟没执行过命令了.(.)符号 是指该终端过去的一分钟有过活动。在那期间,我们称之为“current” 。PID是用户shell程序的进程ID号。

用户连接方式。Tty意味着用户直接连接到电脑上,而pts意味着远程登录。

 

 

14:find命令

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

命令参考:find. -name *.pyc | xargs sudo rm -rf

有个更方便的做法,find. -name "*.pyc" -delete

说一下上面这个命令,查找当前目录下所有.pyc文件,并将其删除,而且由于这里的.pyc文件有写保护,所以需要-rf 并且是在sudo(root)权限下执行删除,注意sudo的位置。

find– name *.pyc默认情况下是在当前目录查找,如果当前目录有,则结束查找,如果当前目录没有,则会递归全部的子目录。

find-name "*.py" ,多了这个双引号,会递归全部的子目录。所以最好是写双引号

 

命令参考,find. -maxdepth 1 ! -name ".py"

当前目录下第一层(maxdepth最大搜索深度为1),的全部非.py文件和目录

命令参考,

find .-atime -2,最近两天内访问过的文件(注意负号)

find .-atime +2,不是在最近两天访问过的文件

find .-atime 2,恰好在2天前被访问过的文件

find .-iname *docker*: 忽略大小写

。。。。。。这东西太多扩展了。

 

find和grep,比如我要找当前目录的一个文件

find .-maxdepth 1 -name "*.py" = ls | grep .py

 

15:top

交互操作:

M:根据驻留内存大小进行排序;

P:根据CPU使用百分比大小进行排序;

T:根据时间/累计时间进行排序;

 

 

16:serviceredis

例:

serviceredis ,会显示可以进行的操作

serviceredis status ,这个进程的状态

 

17:mount挂载

挂载是将一个目录到另一个目录下,注意两个目录中间的空格

linux挂载一个文件夹

/bin/mount-t cifs -o username=share,password=share, uid=505, gid=602,file_mode=0775 //10.0.12.19/security /data/zhuyuanbing/security

 

 

18:netstat

netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。

windows:netstat-nao | findstr 9977 (9977是开的端口)

linux:netstat-antp | grep 9977

 

19:mkdir

-p:若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

-m:建立目录的同时设置目录的权限;

mkdir-p -m 755 /var/www/config

 

20:source

通常用法:sourcefilepath 或 .filepath

功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source/etc/profile。

 

20打包tar,和压缩

tar-cvf exam.tar django ,建立一个归档文件

tar-xvf exam.tar ,从一个归档文件中提取文件到当前目录

tar-zcvf examples.tgz examples,-z:通过gzip方式

请注意:你的tgz如果被修改了名字,但是这种方式打包出来的目录名仍然和之前相关联

例:django-1.7.11.tar.gz

修改文件名:django-1.7.tar.gz

执行命令tar-zxvf django-1.7.tar.gz

提取的文件的目录是django-1.7.11

 

制定包的路径-C (大写)

tartar -zxvf django-1.7.11.tar.gz -C ./temp

这样./temp下面会有一个django.1.7.11的文件夹

 

21:linux定时任务

crontab:

crobtab-l :查看定时任务

crontab-e:编辑定时任务

例子:

30 21* * * /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每晚的21:30重启apache。

 

22:awk

awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。

awk'BEGIN{ print "start" } pattern{ commands } END{ print"end" }' file

pattern语句块中的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{print },即打印每一个读取到的行,awk读取的每一行都会执行该语句块。

 

23:locate定位一个文件

locate命令其实是find-name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

locateredis.conf

locatemy.cnf (一个机器上可能会有多个my.cnf,要去看实际用的是哪一个)

locate~/fit (搜索用户主目录下的fit开头的文件)

 

ps:自己拿去玩的命令

(1)按cpu和mem占用率排序来显示前10个进程:ps-aux –sort -pcpu,-pmem | head -n 10

(2)打印getty进程:ps-f -C getty = ps -ef | grep getty

(3)查看系统占用:watch-n 1 'ps -aux –sort -pcpu' | head -n

(4)查看特定列:ps-ef | grep runserver | awk '{print $1,$2}'

xargs命令可以通过管道接受字符串,并将接收到的字符串通过空格分割成许多参数(默认情况下是通过空格分割)然后将参数传递给其后面的命令,作为后面命令的命令行参数:

所以杀死多个进程:ps-aux | grep flume | awk '{print $2}' | xargs kill

(5)查看当前目录的各个文件,文件夹的磁盘占用:du-ah –max-depth=1 (注意max前面是两个-)

(6)查看特定文件或文件夹的大小,du–max-depth 1 -h 路径

(7)创建文件:touchfilename

(8)查看指定文件的权限:还是得用管道和grep,例如ls -l | grep vimrc

(9)查看主机cpu的情况:cat/proc/cpuinfo

(10)查看一个命令是外部命令还是内部命令:type cd,type ls

(11)linux挂载一个文件夹

/bin/mount-t cifs -o username=share, password=share, uid=505,gid=602,file_mode=0775 //10.0.12.19/security /data/zhuyuanbing/security

(12)此处插入一条Windows命令的广告,piplist | findstr“tor”,Windows中的管道好像和linux差不多只是字符串查找工具不一样,还有注意双引号,或者不加引号也可以,但是不要用单引号

(13)CentOS(CommunityEnterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一

(14)ll-a /opt/*.desktop 查看这个目录以.desktop结尾的文件

(15)类NUIX的系统中,mysql配置文件的位置一般在/etc/my.cnf或者/etc/MySQL/my.cnf

(16)连接数据库:mysql-h127.0.0.1 -uroot -psecurityths -P3307

(17)查看系统内核版本:cat/proc/version

(18)查看系统版本:cat/etc/issue

(19)linux创建数据库时指定编码和排序规则:createdatabase anti_crawler_config default character set utf8 collateutf8_general_ci

(20)sudosu:换到root,切换回普通用户,supercy。su切换用户,sudo切换用户执行命令favor:sudosu(感觉好用)

(21)遇到的一个问题,在linux中默认使用的Python2.6,2.6下面是没有django的,所以会报错,这时需要手动指定python2.7就是绝对路径去执行。/usr/local/bin/python2.7manage.py runserver 0.0.0.0:9988。

(22)高级!!!linux的环境变量也是“很多用户的”,比如系统的环境变量设置的默认Python是2.6,而当前用户也不能修改系统的环境变量,但是用户是可以修改本用户的“环境变量”的,在用户主目录下(~),有个.bashrc(隐藏文件),在其中修改当前用户环境变量,exportPATH=/usr/local/bin:$PATH,(记住写在左边的优先级更高,所以我的/usr/local/bin下是我的Python2.7)改完之后source.bashrc一下。

(24)linux挂载Windows的NTFS文件后,是不可以修改文件的权限的。linux内核不支持修改ntfs文件的权限,chmod只能修改ext3文件的权限。

(25)filefile_name:查看文件的类型

(26)插播一条windows的命令:确定是否可以访问某端口,telnet10.0.15.205 8

(27)linux查看是否可以访问某端口telnet10.0.12.88 3600

(28)查看pip的包的地址,pipshow django, pipshow django | grep Location

(29)Python的跨平台性还是可以的(除了少量的pip包需要编译,大多数都还是可以直接在linux和windows同时使用的)

(30)pgrep-ol crond :以名称为依据从运行队列中查找进程

(31)获取redis的密码:ps-ef | grep redis | awk ‘{print $NF}’ | xargs cat | grep pass >redis.conf

 


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Linux!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程