linux常用命令
1. 基本命令
useradd 用户名 【添加用户】
passwd 用户名 【修改用户密码】
userdel 用户名 【删除用户】
userdel -r 用户名 【删除用户以及用户主目录】
mkdir 【建立目录】
rmdir 【删除空目录】
touch 【建立空文件】
cp 【复制命令】
cp -r dir1 dir2 递归复制命令(复制子目录信息)
mv 【移动文件和修改文件名】
rm 【删除文件和目录】
rm -rf * 【删除所有内容(包含目录和文件)r 递归 f 强制 】
ln 【建立符号链接】
ln -s /etc/init haha 【haha指向实际文件/etc/init】
重定向命令:写入文件【覆盖,追加】
ls -l >a.txt 列表的内容写入文件【覆盖】
ls -l >>a.txt 列表的内容写入文件【追加】
通配符:
*代表多个字母或者数字
?代表一个字母或者数字
例:ls a* ls a? ls ?abc?? ls f080[1-6].txt
alias 【显示系统当前定义的所有alias】
alias cp='cp -i'
head指令
head a.txt 【查看文件头10行内容(head默认查看10行)】
head -n 5 a.txt 【查看文件头5行内容】
tail指令
tail a.txt 【查看文件尾部10行内容】
tail -n 5 a.txt 【查看文件尾部5行内容】
tail -f a.txt 【实时追踪该文档的所有更新】
date指令
date “+%Y-%m-%d %H:%M:%S” 【显示年月日时分秒】
date -s "2018-09-09 12:00:00" 设置系统时间
cal指令
cal 【显示本月日历】
cal 2020 【显示2020年日历】
cal 9 2020 【显示2020年9月日历】
locate指令
快读定位文件路径,必须使用updatedb指令创建locate数据库才能使用
More指令
More 文件名:more 1.txt
根据窗口大小,一页一页的现实文件内容
Less 指令
less 文件名:less 1.txt
和more类似,但其优点可以往前翻页,而且进行可以搜索字符
Crontab任务调度
crontab -e 编辑定时任务
crontab -l 查询定时任务
crontab -r 删除当前用户所有的定时任务
一般操作:编写一个mytask.sh文件,把需要执行的指令全部写再文件内,然后用crontab执行mytask.sh文件(记得给文件可执行的权限)
例如:*/1 * * * * /home/mytask.sh
【分钟0-59】 【小时0-23】 【日期1-31】 【月1-12】 【星期几0-6】
2. find 【搜索文件以及目录】
find / -name hello 【意思是从/ 目录开始搜索名称为hello的文件或者目录】
按时间搜索
/************************************************************/
查找最近修改的文件:
-ctime:指定时间内文件的权限被修改过,change
-atime:指定时间内文件被访问过(读取),access
-mtime:指定时间(以天为单位)内文件被修改过,modify
-mmin:指定时间(以分钟为单位)内文件被修改过,modify
-n +n 按照文件的更改时间来查找文件,
- n 表示更改时间距现在 n 天以内,
+ n 表示文件更改时间距现在 n 天以前。
/************************************************************/
按照指定大小的文件搜索
find /home -size +10k 【意思是查找/home目录下大小为10k的文件】
按照拥有者搜索
find /home -user root 【查找/home 目录下拥有者为root的文件】
3. 按照查找特定需求查找
按时间和文件后缀查找并列表展示
ls -alR --full-time * | grep "2019-01-01"| grep ".json"
/****************************************************************/
按照时间升序 命令:ls -lrt
按照时间降序 命令:ls -lt
详细解释:
-l use a long listing format 以长列表方式显示(详细信息方式)
-t sort by modification time 按修改时间排序(最新的在最前面)
-r reverse order while sorting (反序)
/****************************************************************/
查看文件size大小并排序
du -s *| sort -nr
查找以.json结尾的文件(10分钟以内文件数据被修改过的)总size
find ./ -name *.json -mmin -10 |xargs du -ck
4. linux网络
网络环境配置
1)setup命令进入,对网络进行配置
2)ifconfig eth0 192.168.22.22 对网卡进行设置
ifconfig eth0 network 192.168.22.22 对子网掩码设置【这样配置立即生效,但是临时生效】
3)修改/etc/sysconfig/network-scripts/ifcfg-eth0这个文件里面各个属性【这种方法是最底层的修改方法】
service network restart 重启网络服务
reboot 重启系统生效
查看系统网络情况 netstat (重要)
netstat -anp 【这个指令经常用】
查看80端口进程
netstat -anp | grep 80
进程服务管理
ps -aux 【显示系统执行的进程】
ps -ef 【以全格式显示当前所有的进程】
终止进程kill 和 killall
kill 进程号 【通过进程号杀死进程】
killall 进程名称 【通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用】
-9 表示强制进程立即停止 kill -9 1625
查看进程树 pstree
pstree -p 显示进程的pid
pstree -u 显示进程的所属用户
服务【service】管理
service 服务名 [start|stop|restart|reload|status|]
再centos7.0后,不再使用service 而是systemctl
例:service iptables status 【查看防火墙状态指令】
telnet 192.168.0.1 22 【Dos命令行下检测服务器端口是否开启】
动态监控进程top
top 【动态监控正在运行的进程,默认3秒刷新一次】
1)u: 再输入用户名,即可【监视特定用户】
2)k: 【再输入进程ID号,终止指定的进程】
3)top -d 10: 指定系统更新进程的时间为10秒
4)-i:使top不显示任何限制或者僵尸进程
5)-p 通过指定监控进程ID来仅仅监控某个进程的状态
chkconfig命令可以给各个运行级别设置自动启动/关闭
1)查看服务 chkconfig --list | grep XXX
2) chkconfig 服务名 --list
3) chkconfig --level 5 服务名 on/off
chkconfig 重新设置服务自动自动或关闭,需要重启机器reboot才能生效
5. rpm和yum
rpm -qa | grep xxx 【查询已经安装的rpm列表】
rpm -q firefox 【查询火狐软件包是否安装】
rpm -qi firefox 【查询软件包信息】
rpm -ql firefox 【查询软件包中的文件】
rpm -qf 文件全路径名 【查询文件所属的软件包】
rpm -e rpm包名称【卸载rpm包】
rpm -e --nodeps rpm包名称【强制删除卸载rpm包(一般不推荐这样使用)】
rpm -ivh rpm包全路径名称 【安装rpm包】
yum基本指令
yum list | grep xxx【查看yum软件列表】
yum install XXX 【下载安装】
6.权限,所有者,所在组
ls -ahl 查看文件的所有者
chown 用户名 文件名 【修改文件所有者】
chgrp 组名 文件名 【修改文件所在的组】
chown -R 用户名 文件名 【如果是目录 则使其下所有子文件或目录递归生效】
1)usermod -g 组名 用户名【改变用户所在组】
2)usermod -d 目录名 用户名 【改变该用户登录的初始目录】
权限基本介绍
chmod 777 文件目录名 【[读4][写2][执行1]修改权限】
7.linux分区
分区和挂载
lsblk -f 【查看系统的分区和挂载的情况】
mount 设备名称 挂载目录 【挂载】
例如:mount /dev/sdb1 /newdisk
umount 设备名称 或者 挂载目录
例如:umount /dev/sdb1 或者umount /newdisk
执行 mount -a 即刻生效
fdisk -l 【查看linux系统分区具体情况】
系统磁盘
df -lh 【查询系统整体磁盘使用情况】
du -h /目录 【查询指定目录的磁盘占用情况】
-s 【指定努力占用大小汇总】
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
例如:du -ach --max-depth=1 /opt
磁盘情况-工作实用指令
1)ls -l /home |grep "^-" | wc -l 【统计/home文件夹下文件的个数】
2)ls -l /home |grep "^d" | wc -l 【统计/home文件夹下目录的个数】
3)ls -lR /home |grep "^-" | wc -l 【统计/home文件夹下文件的个数,包括子文件夹里的】
4)ls -lR /home |grep "^d" | wc -l【统计/home文件夹下目录的个数,包括子文件夹里的】
5)tree 【以树状显示目录结构】yum install tree
8.shell简介
chsh -s 输入新的shell 如:/bin/csh 【切换shell】
history 【查看历史使用命令】
1)history 5:【此项说明会显示最近使用的5个命令】
2)!5:【此项说明执行历史编号为5的命令】
3)!ls 此项说明执行最后一次以ls 开头的命令
9. 压缩与解压
gzip/gunzip 指令
gzip 文件 【压缩文件,只能将文件压缩为*.gz文件】
gunzip 文件.gz 【解压缩文件命令】
zip/unzip 指令
zip [选项] xxx.zip 将要压缩的文件或目录 【压缩文件和目录的命令】
unzip [选项] xxx.zip 【解压文件】
zip常用选项
-r:递归压缩,即压缩目录
/*******
zip -d myfile.zip smart.txt
删除压缩文件中smart.txt文件
unzip -l aa.zip
查看aa.zip文件里包含的文件
*********/
unzip的常用选项
-d<目录>:指定解压后文件的存放目录
tar 指令是打包指令,最后打包后的文件是*.tar.gz的文件
基本语法:
tar [选项] xxx.tar.gz 打包的内容 【打包目录,压缩后的文件格式为.tar.gz】
例如:tar -zcvf a.tar.gz 1.txt 【打包】
解压:tar -zxvf abc.tar.gz /home/tmp/ 【解压】
10.其他
重启php:service php-fpm restart
重启nginx:service nginx restart
nginx 服务器重启命令,关闭
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
安装必要的编译工具以及库文件
yum -y install make apr* autoconf automake curl curl-devel gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng* php-common php-gd ncurses* libtool* libxml2 libxml2-devel patch cmake