Linux 指令个人笔记

这里记录一些经常用到的Linux指令,其实这是矛盾的,既然是经常用到,那自然是能很熟练的使用,不用借着文字的描述来辅助操作。然而记忆始终是可能失踪的,于是这墨写的字迹总能在无处可寻时给予一些实体的帮助。

首先是参考的一些网址

http://man.linuxde.net/

http://www.runoob.com/linux/linux-command-manual.html

 

Linux指令的分类,这里被推荐分为了,文件管理,文档编辑,文件传输,磁盘管理,磁盘维护,网络通讯,系统管理,系统设置,备份压缩,设备管理。

 

1: ps, show the status of current process

2: grep, global search regular expression and print out the line

3: vim

4: | , pipe

5: cat

6: copy & paste

7: > & >>, redirect

8: nohup & '\&', run at the front or back

9: ls

10: chmod

11: find

12: locate

13: tail

14: stat

15: whereis, find bin file

16: which, find the path of directive

17: history

18: split

19: mkdir

20: tar

21: ln, soft link

22: ar & ranlib

23: source

24: netstat

25: wget

26: curl

27: who

28: top

29: user, group

30: login log

31: crontab

32: kill

33: xargs

34: du, df

35: mysql

36: mount

37: telnet

38: ab

39: rsync

40: wc

 

others: mutil directives

 

 

1: ps, show the status of current process

ps, process status

-aux 显示所有包含其他使用者的行程

-ef 类似-aux

 

2: grep, global search regular expression and print out the line

-v 输出补集

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

-o 只输出文件匹配到的部分

-c 统计匹配字符串的行数

-i 忽略匹配样式中的字符大小写

-r 在多级目录中对文本进行递归搜索, 等价于-R

 

3:

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

复制一行: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

3.15

全局替换 %s/aaa/bbb ,%全局,s替换

 

3.16 修改vim显示效果

第一步:进终端,输入指令: #vim ~/.vimrc

第二步:这时我们进入到vimrc文件,可能大家会以为自己步骤错了,但是别担心,那vimrc文件就是一个空文件,别管那么多,随便找个空行,敲入 set number.

第三部:保存退出,这是再试一下打开vim编辑器,这是就会法发现已经自动显示行号了,如果想取消的话当然也很简单,不用改什么环境变量,直接再一次 vim ~/.vimrc,把里面的set number给删除掉就搞定了。

3.7 编辑两个文件

vim file1 file2

use :n jump to file2 from file1

use :N jump to file1 from file2

3.18 比较文件

vim -d file1 file2 比较两个文件

 

4: | , pipe

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

 

5: cat

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

1.一次显示整个文件。

$ cat filename

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

$ cat > filename

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

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

$cat file1 file2 > file

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

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

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

example

cat ns file

cat file1 file2 | grep "log" > new.txt

 

6: copy & paste

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

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

设置xshell 中选中即复制

xshell -> 工具 -> 选项 -> 鼠标和键盘 -> 将选定的文件复制到剪切板

7: > && >>, redirect

7.1 >

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

所以清空文件

echo> new.txt

>new.txt

7.2 >>

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

 

8: nohup & '\&', run at the front or back

refer: http://www.cnblogs.com/lwm-1988/archive/2011/08/20/2147299.html

我们一般的nginx运行程序都是在前台运行,有交互式的。

可以通过./a.out & 将前台程序移到后台去运行

或者Ctrl + Z 挂起这个程序

然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)

#bg 1

[1]+ /root/bin/rsync.sh &

用 jobs 命令查看正在运行的任务:

#jobs

[1]+ Running /root/bin/rsync.sh &

如果想把它调回到前台运行,可以用

#fg 1

/root/bin/rsync.sh

这样,你在控制台上就只能等待这个任务完成了。

但是如上方到后台执行的进程,其父进程还是当前终端shell的进程,而一旦父进程退出,则会发送hangup信号给所有子进程,子进程收到hangup以后也会退出。如果我们要在退出shell的时候继续运行进程,则需要使用nohup忽略hangup信号

$ nohup ./test.sh &

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

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

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

 

9: ls

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

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

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

 

10: chmod

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

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

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

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

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

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

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

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

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

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

实例:

chmod ug+w,o-w file1.txt file2.txt

 

11: 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

 

12: locate

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

Locate redis.conf

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

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

 

13: tail

tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

tail -f logs/access.log

tail -n 20 logs/access.log 显示最后20行

 

14: stat

stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

 

15: whereis

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

 

16: which

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

 

17: history

当前用户的操作记录记录在home(~)下的.bash_history里,只记录1000条,在关闭当前shell之前,所有操作都记录在内存中,关闭后写入,._bash_history里

n :数字,意思是要列出最近的 n 条命令行表的意思!

-c :将目前的 shell 中的所有 history 内容全部消除

-a :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,

则默认写入 ~/.bash_history

-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;

-w :将目前的 history 记忆内容写入 histfiles 中!(这一部分也随即在内存中被清空)

 

18: split

-b:值为每一输出档案的大小,单位为 byte。

-a:指定分割出的文件名前缀

-d:使用数字作为后缀。

-l:值为每一输出档的列数大小。

split -l 1000000 news.access.log -d -a 3 news.access

将文件每1000000行分割一次,命名为news.access000,news.access001

 

19: mkdir

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

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

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

 

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

 

21:ln, soft link

ln命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项

源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件;

目标文件:指定源文件的目标连接文件。

将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c

cd /usr/mengqc

ln /mub1/m2.c /usr/liu/a2.c

在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件)

ln -sf /data/zhuayuanbing/openresty/nginx/sbin/nginx /data/zhuyuanbing/bin/openresty

删除软链

ln -sf /data/777/ /data/me/ddd

rm -rf /data/me/ddd/777

表示rm -rf /data/me/ddd/777/, 这个错误的删除方式,会将源文件也同步删除

 

22: ar & ranlib

refers:

https://blog.csdn.net/zougangx/article/details/3073604

http://www.runoob.com/linux/linux-comm-ar.html

https://blog.csdn.net/mafuli007/article/details/7568176

建立或修改备存文件,或是从备存文件中抽取文件。

ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限

-r  将文件插入备存文件中。

-t  显示备存文件中所包含的文件。

-x  自备存文件中取出成员文件。

-d  删除备存文件中的成员文件。

例如我们可以用ar rv libtest.a hello.o hello1.o来生成一个库(一般为静态库),库名字是test,链接时可以用-ltest链接。该库中存放了两个模块hello.o和hello1.o。选项前可以有‘-'字符,也可以没有。

静态库文件需要使用“ar”来创建和维护。当给静态库增建一个成员时(加入一 个.o文件到静态库中),“ar”可直接将需要增加的.o文件简单的追加到静态库的末尾。之后当我们使用这个库进行连接生成可执行文件时,链接程序 “ld”却提示错误,这可能是:主程序使用了之前加入到库中的.o文件中定义的一个函数或者全局变量,但连接程序无法找到这个函数或者变量。

这 个问题的原因是:之前我们将编译完成的.o文件直接加入到了库的末尾,却并没有更新库的有效符号表。连接程序进行连接时,在静态库的符号索引表中无法定位 刚才加入的.o文件中定义的函数或者变量。这就需要在完成库成员追加以后让加入的所有.o文件中定义的函数(变量)有效,完成这个工作需要使用另外一个工 具“ranlib”来对静态库的符号索引表进行更新。

我们所使用到的静态库(文档文件)中,存在这样一个特殊的成员,它的名字是 “__.SYMDEF”。它包含了静态库中所有成员所定义的有效符号(函数名、变量名)。因此,当为库增加了一个成员时,相应的就需要更新成员 “__.SYMDEF”,否则所增加的成员中定义的所有的符号将无法被连接程序定位。完成更新的命令是:

ranlib ARCHIVEFILE

如果 我们使用GNU ar工具来维护、管理静态库,我们就不需要考虑这一步。GNU ar本身已经提供了在更新库的同时更新符号索引表的功能(这是默认行为,也可以通过命令行选项控制ar的具体行为。可参考 GNU ar工具的man手册)。

 

23: source

通常用法:sourcefilepath 或 .filepath

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

 

24:netstat

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

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

linux: netstat-antp | grep 9977

 

25: wget

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

wget -t 3 -T 10 -N -q "http://192.168.0.1:8080/webcache/"$cache_file -O abc

-t设定最大尝试连接次数(0表示无限制)

-T设定响应超时的秒数

-q不显示执行过程

-N不要重新下载文件除非比本地文件新

-O重命名

 

26: curl

-A (or --user-agent): 设置 "User-Agent" 字段.

-b (or --cookie): 设置 "Cookie" 字段.

-e (or --referer): 设置 "Referer" 字段.

-H (header): 设置header.

-d post请求

 

curl “127.0.0.1” -d “user=percy&phone=131988559472”

curl "10.10.80.193/000001/" -H "host:doctor.10jqka.com.cn" -H "Accept-Encoding: gzip, deflate"

curl -H "Content-Type:application/json" -X POST -data '{"message": "sunshine"}'

 

27: who

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

 

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

-q选项完成计数功能。

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

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

 

28: top

refer: https://www.cnblogs.com/dragonsuc/p/5512797.html

1:展开CPU

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

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

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

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行)

 

29: user, group

refers:

https://www.cnblogs.com/jackyyou/p/5498083.html

https://www.linuxidc.com/Linux/2017-06/144916.htm

https://www.linuxidc.com/Linux/2017-01/139361.htm

whoami

groups

几个命令只有root账号才可以使用

useradd testuser 创建用户testuser

passwd testuser 给已创建的用户testuser设置密码

说明:新创建的用户会在/home下创建一个用户目录testuser

usermod --help 修改用户这个命令的相关参数

userdel testuser 删除用户testuser

rm -rf testuser 删除用户testuser所在目录

创建新用户后,同时会在etc目录下的passwd文件中添加这个新用户的相关信息

给用户添加sudo权限

切换到root用户下,cd root,运行visudo命令,visudo命令是用来编辑修改/etc/sudoers配置文件

查看user 属于哪个group

id user

group user

查看有哪些user

cat /etc/passwd

查看有哪些group

cat /etc/group

将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用:

usermod -a -G apache cnzhx

如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:

usermod -g apache cnzhx

 

30: login log

refer:

https://www.cnblogs.com/lizhaoxian/p/5981029.html

1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记录系统启动时间;

2 /var/log/wtmp:记录当前正在登录和历史登录系统的用户信息,默认由last命令查看;

3 /var/log/btmp:记录失败的登录尝试信息,默认由lastb命令查看。

lastlog

列出所有用户最近登录的信息,或者指定用户的最近登录信息。lastlog引用的是/var/log/lastlog文件中的信息,包括login-name、port、last login time

last

列出当前和曾经登入系统的用户信息,它默认读取的是/var/log/wtmp文件的信息

lastb

列出失败尝试的登录信息,和last命令功能完全相同,只不过它默认读取的是/var/log/btmp文件的信息。当然也可以通过last -f参数指定读取文件,可以是/var/log/btmp、/var/run/utmp

ac

输出所有用户总的连接时间,默认单位是小时。由于ac是基于wtmp统计的,所以修改或者删除wtmp文件都会使ac的结果受影响。

w

查看当前登入系统的用户信息及用户当前的进程(而who命令只能看用户不能看进程)。该命令能查看的信息包括字系统当前时间,系统运行时间,登陆系统用户总数及系统1、5、10分钟内的平均负载信息。后面的信息是用户,终端,登录源,login time,idle time,JCPU,PCPU,当前执行的进程等。

w的信息来自两个文件:用户登录信息来自/var/run/utmp,进程信息来自/proc/.

user,who

显示当前正在登入统的用户名。

utmpdump

utmpdump用于转储二进制日志文件到文本格式的文件以便查看,同时也可以修改二进制文件!!包括/var/run/utmp、/var/log/wtmp、/var/log/btmp。语法为:utmpdump [options] [filename]。修改文件实际就可以抹除系统记录,所以一定要设置好权限,防止非法入侵。

例子:修改utmp或wtmp。由于这些都是二进制日志文件,你不能像编辑文件一样来编辑它们。取而代之是,你可以将其内容输出成为文本格式,并修改文本输出内容,然后将修改后的内容导入回二进制日志中。如下:

utmpdump /var/log/utmp > tmp_output.txt #导出文件信息

#<使用文本编辑器修改 tmp_output.txt>

utmpdump -r tmp_output.txt > /var/log/utmp #导入到源文件中

 

31: crontab

crontab:参考:https://blog.csdn.net/lck898989/article/details/79119242

crobtab-l :查看定时任务

crontab-e:编辑定时任务

例子:

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

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

 

32: kill

refer: https://www.jianshu.com/p/6c371828a856

注意: kill命令只是用来向进程发送信号的,而不是直接杀死进程。

-l 列出全部的信号名称

-a 当处理当前进程时,不限制命令名和进程号的对应关系

-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s 指定发送信号

-u 指定用户

如果不指定信号编号,则默认发送15号SIGTERM 信号。该信号是程序结束(terminate)信号,将终止所有不能捕获该信号的进程,通常用来要求程序自己正常退出。如果进程仍然终止不了,可尝试发送9号SIGKILL信号,强制杀死进程。

 

33: xargs

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

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

 

34: du, df

du * -lh, 查看当前目录个文件占用磁盘大小

du /data/* -lh –max-depth=0 (note: max 前是两个-)

df * -h

 

35: mysql

mysql -h127.0.0.1 -uroot -psecurityths -P3307

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

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

 

36: mount

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

 

37: telnet

telnet ip port

检查端口连通性,端口的概念是tcp, udp中的。

 

38: ab

ab 压力测试

ab -n 1000 -c 100 -k www.baidu.com

-n 请求总数

-c 并发数

-k 激活HTTP中的“keepAlive”特性;

 

39: rsync

linux复制,拷贝,copy一个目录要除去一个目录,那么最好使用rsync

cd $workpath

rsync -ac –exclude nginx/logs -ac –exclude nginx/conf “./” /data/zhuyuanbing/openresty

表示将当前目录下的logs和conf目录除去之外的目录都拷贝到/data/zhuyuanbing/openresty下

 

40: wc

统计文件的个数ls -l | wc -l ,需要减1

ls | wc -l

ls | wc -w

wc -l a.txt

 

others: mutil directives

1)查看特定列

ps-ef | grep runserver | awk '{print $1,$2}'

2) 查看cpu信息

cat /proc/cpuinfo

3) 查看系统内核版本

cat /proc/version

4)查看系统版本

cat /etc/issue

5) 查看系统架构

arch

uname -m

6)创建文件

touch filename

7)查看文件类型

file filename

8)查看指令时内部还是外部

type cd

type ls

9) 两台机器传输文件

scp /data/waf [email protected]:/~

现在机器上的/data/waf目录拷贝到另一个机器上

10)pip包的位置

pipshow django, pipshow django | grep Location

11)检索最近操作的history

Ctrl + r

你可能感兴趣的:(Linux)