linux常用命令

Linux常用命令

主参数

-i 确认信息, -f 强制不提示, -r 同时处理子项目, -v 显示操作信息, t* 通配符, -- 转移-(例: rm -- -f* 删除以-f开头的文件)

(命令) 魔法变量

 

ls 列文件

就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等

常用参数搭配:

ls -a 列出目录所有文件,包含以.开始的隐藏文件, -A 列出除.及..的其它文件, -r 反序排列, -t 以文件修改时间排序, -S 以文件大小排序, -h 以易读大小显示,  -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

ls | sed "s:^:`pwd`/:" 列出文件绝对路径(不包含隐藏文件)

find $pwd -maxdepth 1 | xargs ls -ld 列出文件绝对路径(包含隐藏文件)

cd 切路径

(1)进入要目录 cd / (2)进入"家"目录 cd ~ (3)进入上一次工作路径 cd - (4)把上个命令的参数作为cd参数使用。 cd !$

 

pwd 查看当前工作目录路径

(1)查看当前路径 pwd (2)查看软链接的实际路径 pwd -P

查找

 常用: whereis {name}, find / -name {name}

mkdir 创建文件夹

-m: 对新建目录设置存取权限,也可以用chmod命令设置;  -p: 建立多个目录;

 

rm 删除

删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状

删除test子目录及子目录中所有档案删除,并且不用一一确认   rm -rf test

删除以-f开头的文件  rm -- -f*

 

mv 移动

(1)将文件test.log重命名为test1.txt  mv test.log test1.txt

(2)将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中  mv llog1.txt log2.txt log3.txt /test3

(3)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

mv -i log1.txt log2.txt

(4)移动当前文件夹下的所有文件到上一级目录

mv * ../

 

cp 复制

-i 提示覆盖, -r 复制目录及目录内所有项目, -a 复制的文件与原文件时间一样

(1)复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖

cp -ai a.txt test

(2)为a.txt建议一个链接(快捷方式)

cp -s a.txt link_a.txt

 

yum

#列出资源库中特定的可以安装或更新以及已经安装的rpm包 
yum list java* (info信息更详细,参数同list) 通配符,查询类似的rpm包
#列出资源库中所有可以更新的rpm包 yum list updates 
#列出已经安装的所有的rpm包 yum list installed 或者 rpm -qa | grep [java][jdk][gcj]
#列出已经安装的但是不包含在资源库中(网站下载)的rpm包 yum list extras 
#搜索匹配特定字符的rpm包 yum search firofox
#rpm包的安装/删除 yum install/remove [--downloadonly 只下载不安装] xxx【服务名】
#清除缓存中rpm包文件 
yum clean packages 
#清除缓存中旧的rpm头文件和包文件 
yum clean all

 

cat 显示文本

-b对非空输出行号

-n输出所有行号

一次显示整个文件:cat filename

(1)文件合并到新的文件  cat file1 file2 file3 > file_new.txt

(2)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

cat -n log2012.log log2013.log

(3)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

cat -b log2012.log log2013.log log.log

(4)反向列示 tac log.txt

 

less命令

-i 忽略搜索时的大小写, -N 显示每行的行号, -s 显示连续空行为一行

/字符串:向下搜索“字符串”的功能, ?字符串:向上搜索“字符串”的功能, n:重复前一个搜索, N:反向重复前一个搜索, -x <数字> 将“tab”键显示为规定的数字空格

b 向后翻一页, d 向后翻半页, u 向前滚动半页, y 向前滚动一行, 空格键 滚动一行, 回车键 滚动一页

 

tail 追踪查看

-f 循环读取(常用于查看递增的日志文件)

-n<行数> 显示行数(从后向前)

tail -f -n 10 myout.log(打印最后10行,然后追踪文件),tailf 与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件。

循环读取逐渐增加的文件内容

ping 127.0.0.1 > ping.log &(后台运行:可使用jobs -l查看,也可使用fg将其移到前台运行)

 

vi/vim 文本编辑

 模式: 进入vi处于命令行模式,按一下字母「i」就可以进入插入模式,这时候你就可以开始输入文字了。按一下「ESC」键转到命令行模式。命令行模式下,按一下冒号键进入底行模式

: wq (存盘并退出vi)

: q! (输入q!, 不存盘强制退出vi)

按「ctrl」+「b」:屏幕往“后”移动一页。按「ctrl」+「f」:屏幕往“前”移动一页。按「ctrl」+「u」:屏幕往“后”移动半页。按「ctrl」+「d」:屏幕往“前”移动半页。

按「0」:移到文章的开头。按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。按「^」:移动到光标所在行的“行首”

按「dd」:删除光标所在行。按「#dd」:从光标所在行开始删除#行

按「u」:如果误执行一个命令,可以马上按下「u」,撤消上一个操作。按多次“u”可以执行多次撤消。

按「ctrl」+「g」列出光标所在行的行号。按「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

底行模式在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按「n」会往前寻找到您要的关键字为止。

 

 

tar 打包解压缩

-c 压缩, -f 指定压缩文件, -x 解压缩, -z 支持gzip压缩, -v 显示操作过程  解压: tar -xzvf test.tar.gz -C /usr/local (-C切换路径)  压缩: tar -czvf test.tar.gz /usr/demo

 

ps 查看进程

(1)显示当前所有进程环境变量及进程间关系  ps -ef

(2)显示当前所有进程  ps -A

(3)与grep联用查找某进程

ps -aux | grep apache

(4)找出与 cron 与 syslog 这两个服务有关的 PID 号码

ps aux | grep '(cron|syslog)'

 

kill 终止进程

先使用ps查找进程pro1,然后用kill杀掉

kill -9 $(ps -ef | grep pro1)

 

netstat

查看linux 开放的所有端口netstat -n

tpl,重启服务命令 :service network restart

 

nohup: 实现屏幕输出记录到日志文件

如果希望将日志输出到别的文件中,可以增加一个输出重定位参数。例子如下。 nohup yourcommand > myout-$(date +%Y%m%d).log 2>&1 &

在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;

2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到日志文件中。 其中myout.log是保存输出的文件名称;

 

tcpdump 抓包

tcpdump dst port 3306

 

chmod 访问权限

例 -rw-r--r-- 1 root root 210K 01-21 09:15 test.log

第一个字符, -:文件,d: 目录。从第二个字符开始3个字符一组,分别表示了3组用户对文件或者目录的权限。-|0: 不许可,r|4代表只读,w|2代表写,x|1代表可执行, s :特殊权限

-c 当发生改变时,报告处理信息

-R 处理指定目录以及其子目录下所有文件

权限范围:u :用户, g :群组, o :除了当前用户群租之外的用户或者群组, a :所有用户群组

(1)增加文件t.log所有用户可执行权限  chmod a+x t.log

(2)给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限  chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

 

 

df命令 显示磁盘空间使用情况

-a 全部文件系统列表, -h 以方便阅读的方式显示信息, -i 显示inode信息, -k 区块为1024字节, -l 只显示本地磁盘, -T 列出文件系统类型

(1)显示磁盘使用情况  df -l

(2)以易读方式列出所有文件系统及其类型  df -haT

 

ln命令 链接

-b 删除,覆盖以前建立的链接

-s 软链接,快捷方式 (无此参数为硬链接, 只能对文件,不可跨文件系统)

-v 显示详细处理过程

 

wc 统计文件中字节数、字数、行数

wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出

查找文件的 行数 单词数 字节数 文件名

wc text.txt 结果:7 8 70 test.txt

 

which 查找

which 查看可执行文件的位置。

whereis 程序名的搜索位置。

locate 配合数据库查看文件位置。

find 实际搜寻硬盘查询文件名称。

命令格式:

find pathname -options [-print -exec -ok ...]

命令参数:

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

命令选项:

-name 按照文件名查找文件, -perm 按文件权限查找文件, -user 按文件属主查找文件, -group 按照文件所属的组来查找文件。

 -type 查找某一类型的文件,诸如:b - 块设备文件,  d - 目录, c - 字符设备文件, l - 符号链接文件, p - 管道文件, f - 普通文件-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小

-amin n 查找系统中最后n分钟访问的文件, -atime n 查找系统中最后n天访问的文件

-cmin n 查找系统中最后n分钟被改变文件状态的文件, -ctime n 查找系统中最后n天被改变文件状态的文件

-mmin n 查找系统中最后n分钟被改变文件数据的文件, -mtime n 查找系统中最后n天被改变文件数据的文件

-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

(1)查找48小时内修改过的文件  find -atime -2

(2)在当前目录查找 以.log结尾的文件。 ". "代表当前目录  find ./ -name '*.log'

(3)查找/opt目录下 权限为 777的文件  find /opt -perm 777

(4)查找大于1K的文件  find -size +1000c,  find -size 1000c 查找等于1000字符的文件

-exec 参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。

(5)在当前目录中查找更改时间在10日以前的文件并删除它们(无提醒)

find . -type f -mtime +10 -exec rm -f {} \;

(6)当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 按y键删除文件,按n键不删除

find . -name '*.log' mtime +5 -ok -exec rm {} \;

(7)当前目录下查找文件名以passwd开头,内容包含"pkg"字符的文件

find . -f -name 'passwd*' -exec grep "pkg" {} \;

(8)用exec选项执行cp命令

find . -name '*.log' -exec cp {} test3 \;

-xargs find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。

实例:

(9)查找当前目录下每个普通文件,然后使用xargs来判断文件类型

find . -type f -print | xargs file

(10)查找当前目录下所有以js结尾的并且其中包含'editor'字符的普通文件

find . -type f -name "*.js" -exec grep -lF 'ueditor' {} \;

find -type f -name '*.js' | xargs grep -lF 'editor'

(11)利用xargs执行mv命令

find . -name "*.log" | xargs -i mv {} test4

(12)用grep命令在当前目录下的所有普通文件中搜索hostnames这个词,并标出所在行

find . -name \*(转义) -type f -print | xargs grep -n 'hostnames'

(13)查找当前目录中以一个小写字母开头,最后是4到9加上.log结束的文件

find . -name '[a-z]*[4-9].log' -print

(14)在test目录查找不在test4子目录查找

find test -path 'test/test4' -prune -o -print

(15)实例1:查找更改时间比文件log2012.log新但比文件log2017.log旧的文件

find -newer log2012.log ! -newer log2017.log

简易测速

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"

posted @ 2020-09-28 17:32  微云mis  阅读(150)  评论(0)    收藏  举报