Linux 常用命令

来源:互联网 发布:php基础面试题及答案 编辑:程序博客网 时间:2024/06/15 06:52

一、Telnet协议是一种TCP/IP协议,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力
telnet命令的使用(登录失败三次就会退出)
telnet [host-name [port]]、端口默认是23
举例:telnet 192.168.168.168


二、ls命令:查看目录下所有文件

ls -l -h:以合适的文件大小单位查看所有文件信息


三、SSH命令(即Secure Shell Protocol),ftp,telnet是明文传送口令和数据,SSH是密文传送,比ftp,telnet要安全
a. ssh host -l login_name
举例:ssh 192.168.168.168 -l root
b. ssh user@host
举例:ssh root@192.168.168.168


四、查看磁盘情况:df -h

查看内存情况:free -m        //以M为单位显示机器内存


五、find命令

比如你要找linux系统中名字为mysql的文件,可以
find / -name "mysql"  --仅搜索名字为 mysql 的文件
当名称中还有其他字符串时,可用 * 代替,如
find / -name "mysql*" --搜索以 mysql 开头的文件

六、删除文件:
创建一个文件夹:mkdir 目录名
简单删除:rm 文件名
强制删除:rm -f 文件名
删除文件夹:rm -d 目录名
删除目录和子目录:rm -Rd 目录名
强制删除:rm -Rdf 目录名


七、移动文件:
移动文件:mv 源文件 目标文件
强制覆盖:mv -f 源文件 目标文件
强制覆盖,覆盖前备份:mv -fb 源文件 目标文件


八:拷贝文件:
拷贝文件:cp 源文件 目标文件/文件夹
强制覆盖:cp -f 源文件 目标文件
强制覆盖,覆盖前备份:cp -fb 源文件 目标文件


九、统计一个文件/文件夹

统计一个文件行数:wc -l 文件名
统计文件字节数:wc -c 文件名
统计多个文件的大小:wc -c *.log|tail -1
统计目录的大小:du -h --max-depth=1

统计文件夹下文件个数(跳至该文件夹):ls -l | grep '^-' | wc -l



十:进程

ps -ef|grep 进程名

kill 进程ID 

举例:

------------------------------------------------------------------------

#!/bin/sh
PID=`ps -ef|grep -v grep|grep “AAA”|awk '{print $2}'`
if [ -n "$PID" ];
then
        kill -9 $PID
        echo $PID
fi

------------------------------------------------------------------------


十一、任务计划(crontab 是用来让使用者在固定时间或固定间隔执行命令之用)

crontab -e 进入当前用户的crontab文件编辑状态(vi编辑模式)
crontab -l 查看当前配置的任务计划
举例:
10 9 * * * sh /home/YongSaiSync/start_real.sh


十二、FTP上传下载

cd/lcd 切换目录
bi[nary] 转换为二进制模式
ls/ls -l/dir/ nlist 查看文件列表
get filename 下载文件
put filename 上传文件
mget filename 下载多个文件,支持通配符[prompt 命令可以关闭/打开提示]

例如:

ftp> prompt

Interactive mode off.
ftp> mget *.txt
mput filename 上传多个文件,支持通配符
bye/ quit/ ! 退出登录


十三、压缩、解压

压缩:zip -r FileName.zip DirName        -r表示递归压缩子目录下所有文件
解压:unzip FileName.zip


压缩:tar czvf FileName.tar.gz DirName
解压:tar zxvf FileName.tar.gz


压缩:gzip FileName.tar.gz   - 把FileName.tar文件压缩
解压:gunzip FileName.gz
解压:gzip -d FileName.gz


十四、FTP服务启动/停止

启动ftp服务:service vsftpd start
停止ftp服务:service vsftpd stop


十五、Linux下修改字符集(解决中文乱码问题)

查询系统支持的字符集:locale -a

设定字符集:export LANG=zh_CN.gbk

一般来说要设置 Linux 系统的环境变量只需要在 /etc/profile (全局) 或者 ~/.bashrc (单个用户) 即可。但是对于 LANG 变量来说,有时候你即使在所有这些初始化脚本里面 export 过了,LANG 的值还是纹丝不动。实际上,你需要去修改/etc/sysconfig/i18n 文件里面的内容



十六、查看机器IP

查看linux机器IP命令:ifconfig



十七、目录下所有文件合并输出到一个文件

例如:将a.txt b.txt c.txt合并输出到d.txt命令:cat a.txt b.txt c.txt >d.txtcat *.txt >d.txt(要求该目录下txt文件只有a.txt,b.txt,c.txt)


十八、将一个文件分割为多个文件

split 命令功能说明:切割文件。
语法:split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
补充说明:split可将文件切成较小的文件,预设每1000行会切成一个小文件。
参数:
  -<行数>或-l<行数>  指定每多少行就要切成一个小文件。
  -b<字节>  指定每多少字就要切成一个小文件。支持单位:m,k
  -C<字节>  与-b参数类似,但切割时尽量维持每行的完整性。
  --help  显示帮助。
  --version  显示版本信息。
  [输出文件名]  设置切割后文件的前置文件名,split会自动在前置文件名后再加上编号。
例如:split -b 100m filename


十九、等待命令

sleep amount[units]

units:默认为秒(s),m表示分钟,h表示小时,d表示天


二十、统计某进程占用的CPU/内存等状态信息并输出

pidstat -u -r -d -p 888 10 >888.txt &

-u:占用CPU

-r:占用内存

-d:I/O

10:10秒统计一次

-p 888:待检测的进程pid

并在后台输出至888.txt


二十一、linux下快速删除大量文件
假如你要在linux下删除大量文件,比如100万、1000万,像/var/spool/clientmqueue/的mail邮件,像/usr/local/nginx/proxy_temp的nginx缓存等,那么rm -rf *可能就不好使了。 
rsync提供了一些跟删除相关的参数
rsync --help | grep delete 
     --del                   an alias for --delete-during 
     --delete                delete files that don't exist on the sending side 
     --delete-before         receiver deletes before transfer (default) 
     --delete-during         receiver deletes during transfer, not before 
     --delete-after          receiver deletes after transfer, not before 
     --delete-excluded       also delete excluded files on the receiving side 
     --ignore-errors         delete even if there are I/O errors 
     --max-delete=NUM        don't delete more than NUM files 
 
其中--delete-before    接收者在传输之前进行删除操作 
 
可以用来清空目录或文件,如下: 
1、先建立一个空目录 /data/blank
mkdir /data/blank
2、用rsync删除目标目录 /var/spool/clientmqueue/
rsync --delete-before -d /data/blank/ /var/spool/clientmqueue/
这样目标目录很快就被清空了 
 
又假如你有一些特别大的文件要删除,比如nohup.out这样的实时更新的文件,动辄都是几十个G上百G的,也可以用rsync来清空大文件,而且效率比较高 
1、创建空文件 
touch /data/blank.txt
2、用rsync清空文件 
rsync -a --delete-before --progress --stats /root/blank.txt /root/nohup.out 

【选项说明】
--delete-before 接收者在传输之前进行删除操作
--progress 在传输时显示传输过程
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性
-H 保持硬连接的文件
-v 详细输出模式

--stats 给出某些文件的传输状态

tips: 
当SRC和DEST文件性质不一致时将会报错 
当SRC和DEST性质都为文件【f】时,意思是清空文件内容而不是删除文件 
当SRC和DEST性质都为目录【d】时,意思是删除该目录下的所有文件,使其变为空目录 
最重要的是,它的处理速度相当快,处理几个G的文件也就是秒级的事 
最核心的内容是:rsync实际上用的就是替换原理


二十二、查看某类文件的总大小

du -b  *2013* |awk '{sum=sum+$1} ; END{ print sum/1024/1024 }'

以M为单位,查看匹配正则表达式 *2013* 所有文件的总大小


二十三、在linux下获取时间字符串
命令 date
# 以yyyymmdd格式输出2天之前这个时刻的时间
$ date +%Y%m%d --date='2 days ago'


删除匹配时间为昨天的正则表达式的文件:test.sh

#!/bin/bashday=$(date +%Y%m%d --date='1 days ago')rm *$day*

二十四、查看linux机器连接数

1、查看apache连接数量

ps -ef | grep httpd | wc -l

2、查看发请求数及其TCP连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

3、查出哪个IP地址连接最多

netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n 
netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n

4、linux做nat 服务器,查看穿过服务器的当前连接数
cat /proc/slabinfo   | grep ip_conn | grep -v ip_conntrack_expect | awk '{print $2}'

5、查看linux最大连接数,直接使用ulimit命令
ulimit -n

创建一个文件夹:mkdir 目录名