linux常用命令
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
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"

浙公网安备 33010602011771号