===================================================
vi|vim
====================================================
vi|vim
vi XXX.XXX(直接vi文件名称)
vi XX/xx/XX.xx (vi+文件夹/文件名称)
按键盘‘i’进入编辑模式;
按‘x’是删除光标后面的字符
’数字‘+‘x’是删除后边几个字符
‘X’删除光标前面的字符
6X
'dd'删除所在行
yy:复制光标所在行
u:假如您误操作一个指令,可以马上按u,回复到上一个操作
6x 删除后边六个字符
按键盘esc键,然后按‘:’,然后‘q’;是退出(esc+‘:’+‘q’+'!')是强制退出(不保存修改)
esc+‘:’+‘w’+'q'是保存退出
esc键+‘w’+'q'+'!'是强制保存并且退出
set nu: 输入“set nu”后,会在文章的每一行前面列出行号。
寻找字符串
/关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。
) :光标移至句尾
( :光标移至句首
=============================================
find
================================================
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
find . -name .svn | xargs rm -rf
-name filename #查找名为filename的文件
find -name april* 在当前目录下查找以april开始的文件
find -name april* fprint file 在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
48小时内修改过的文件
[root@peidachang ~]# find -atime -2
.
根据关键字查找
find . -name "*.log"
按照目录或文件的权限来查找文件
find /opt/soft/test/ -perm 777
按类型查找
命令:
find . -type f -name "*.log"
find . -type f -name "*.log"
按大小查找文件
命令:
find . -size +1000c -print
查找当前目录大于1K的文件
用 -lh 选项来以易读方式列出文件
用-lh组合选项,以易读方式来显示大小。
# ls -lh
total 176K
-rw-r--r--. 1 root root 683 Aug 19 09:59 0001.pcap
-rw-------. 1 root root 1.6K Jul 31 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Desktop
drwxr-xr-x. 2 root root 4.0K Jul 31 02:48 Documents
drwxr-xr-x. 4 root root 4.0K Aug 16 02:55 Downloads
=======================================================================================
cp
=========================================================================================
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理
====================================================
shell
=======================================================
sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点
================
新建 vi|vim
=================
shell: 新建一个shell脚本 vi test.sh,
#!/bin/bash
echo "Hello World !"
将上面的代码保存为 test.sh,并 cd 到相应目录:
chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
作为解释器参数
这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如:
/bin/sh test.sh /bin/php test.php
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="runoob.com"
使用一个定义过的变量,只要在变量名前面加美元符号即可,如:
your_name="qinjx" echo $your_name echo ${your_name}
for skill in Ada Coffe Action Java; do echo "I am good at ${skill}Script" done
使用 unset 命令可以删除变量。语法:
unset variable_name
拼接字符串
your_name="qinjx" greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1
Shell 数组
array_name=(value0 value1 value2 value3)
array_name=( value0 value1 value2 value3 )
array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen
Shell 注释
以"#"开头的行就是注释,会被解释器忽略。
sh里没有多行注释,只能每一行加一个#号。只能像这样:
a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi
for loop in 1 2 3 4 5 do echo "The value is: $loop" done
==============================================
crontab
=================================================
定时任务crontab
分钟 小时 日期 月份 周 指令
* (星号)代表任何时刻
,(逗号)代表分隔时候。如3点与6点 就是3,6
-(减号)代表一段时间范围内。如:3点到6点 就是3-6
/n(斜线)n代表数字,即每隔n单位。如每隔五分钟,/5
每晚的2 1 : 3 0运行/ a p p s / b i n目录下的c l e a n u p . s h。
30 21* * * /apps/bin/cleanup.sh
shell实现只保留近几天的文件
data_dir="文件的具体目录"
Cd ${data_dir}
find ${data_dir} -mtime +15 -exec rm -rf {} \; -----清除目录下15天前的文件
注意:一般情况下不用这个命令,一旦cd 空,那么将会删除根目录下的所有15天前的文件,后果很严重!!!!
shell 删除最新的四个文件
#!/bin/bash
cd source
tmp=`ls -rt|tail -n 4 `
for i in $tmp
do
mv $i /dist
done
rm -rf source
head -n 4把最旧的给删除
每天自动备份MySQL数据库的shell脚本
#!/bin/bash # 数据库认证 user="" password="" host="" db_name="" # 其它 backup_path="/path/to/your/home/_backup/mysql" date=$(date +"%d-%b-%Y") # 设置导出文件的缺省权限 umask 177 # Dump数据库到SQL文件 mysqldump --user=$user --password=$password --host=$host $db_name > $backup_path/$db_name-$date.sql
定时删除一些老旧的备份的文件,下面的这行命令就是做这个任务的,你可以把它加在上面的脚本后面。
# 删除30天之前的就备份文件 find $backup_path/* -mtime +30 -exec rm {} \;
=======================================
查找
============================================
Linux中关于查找的简单命令
.查找某个文件:(find命令)
find 路径 -name "查找的内容"
例子:find /home -name "java" or find /home -iname "java"
find /home -name "*.txt" or find /home -iname "*.txt"
查找弄进程的命令:
ps -ef|grep "sh_gjj_"
.在某个文件中搜索某个内容:
例子:grep "王峥嵘" XXXX.txt
linux中tail命令---用于查看文件内容
最基本的是cat、more和less。
1. 如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
2. 如果你想查看文件的后10行,可以使用tail命令,如:
tail -10 /etc/passwd
tail -n 10 /etc/passwd
tail -f /var/log/messages
Linux作为Unix的衍生操作系统,Linux内建有查看当前进程的工具ps。
通过 ps -ef | grep php 得到如上线程将某线程终止时用
kill -9 XXXXX XXXXX为上述查出的序号 如: 19979线程终止为: kill -9 19979
===============================
ifconfig
=================================
ifconfig
[sunjimeng@localhost ~]$ ifconfig //未联网时的参数 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ether 00:0c:29:4d:a3:cc txqueuelen 1000 (Ethernet) RX packets 1914 bytes 174936 (170.8 KiB) RX errors 0 dropped 36 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 3246 bytes 281472 (274.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3246 bytes 281472 (274.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[sunjimeng@localhost ~]$ ifconfig //连接到有线网时的参数 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 //mtu表示最大传输单元 inet 192.168.117.128 netmask 255.255.255.0 broadcast 192.168.117.255 inet6 fe80::20c:29ff:fe4d:a3cc prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4d:a3:cc txqueuelen 1000 (Ethernet) RX packets 1969 bytes 181974 (177.7 KiB) RX errors 0 dropped 36 overruns 0 frame 0 TX packets 48 bytes 6324 (6.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 0 (Local Loopback) RX packets 3590 bytes 310452 (303.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3590 bytes 310452 (303.1 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
=================================================
df
=================================================
磁盘占用情况|
1.linux系统下查询磁盘的使用情况:df -h
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
[root@CT1190 log]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda7 19840892 890896 17925856 5% /
/dev/sda9 203727156 112797500 80413912 59% /opt
/dev/sda8 4956284 570080 4130372 13% /var
/dev/sda6 19840892 1977568 16839184 11% /usr
/dev/sda3 988116 23880 913232 3% /boot
tmpfs 16473212 0 16473212 0% /dev/shm
cpu情况
2.查看CPU的使用情况:top -bn 3 | grep Cpu
1 查看目录与文件:ls
#显示当前目录下所有文件的详细信息
ls -la
2 切换目录:cd
#切换当前目录为/opt/test
cd /opt/test
3 显示当前目录:pwd
pwd
4 创建空文件:touch
#在当前目录下创建文件desc.txt
touch desc.txt
5 创建目录:mkdir
#在当前目录下创建test目录
mkdir test
#在/opt/test目录下创建目录img,若无test目录,先创建test目录
mkdir -p /opt/test/img
6 查看文件内容:cat
#查看desc.txt的内容
cat desc.txt
7 分页查看文件内容:more
#分页查看desc.txt的内容
more desc.txt
8 查看文件尾内容:tail
#查看desc.txt的最后100行内容
tail -100 desc.txt
9 拷贝:cp
#拷贝desc.txt到/mnt目录下
cp desc.txt /mnt/
#拷贝test目录到/mnt目录下
cp -r test /mnt/
10 剪切或改名:mv
#剪切文件desc.txt到目录/mnt下
mv desc.txt /mnt/
11 删除:rm
#删除test目录,-r递归删除,-f强制删除。危险操作,务必小心,切记!
rm -rf test
12 搜索文件:find
#在opt目录下查找以.txt结尾的文件
find /opt -name '*.txt'
13 创建链接文件:ln
#创建目录/opt/test的符号链接
ln -s /opt/test ./link2test
14 显示或配置网络设备:ifconfig
#显示网络设备情况
ifconfig
15 显示网络相关信息:netstat
#列出所有端口
netstat -a
16 显示进程状态:ps
#显示当前所有进程
ps -ef
#显示当前所有java相关进程
ps-ef | grep java
17 查看目录使用情况:du
#查看/opt/test目录的磁盘使用情况
du -h /opt/test
18 查看磁盘空间使用情况:df
#查看磁盘空间使用情况
df -h
19 显示系统当前进程信息:top
#显示系统当前进程信息
top
20 杀死进程:kill
#杀死进程号为27810的进程,强制终止,系统资源无法回收
kill -s 9 27810
21 压缩和解压:tar
#打包test目录为test.tar.gz文件,-z表示用gzip压缩
tar -zcvf test.tar.gz ./test
#解压test.tar.gz文件
tar -zxvf test.tar.gz
22 改变文件或目录的拥有者和组:chown
#变更文件desc.txt的拥有者为nginx,用户组为nginx
chown nginx:nginx desc.txt
#变更test及目录下所有文件的拥有者为nginx,用户组为nginx
chown -R nginx:nginx test
23 改变文件或目录的访问权限:chmod
#权限范围:u(拥有者)g(郡组)o(其它用户), 权限代号:r(读权限/4)w(写权限/2)x(执行权限/1)
#给文件拥有者增加test.sh的执行权限
chmod u+x test.sh
#给文件拥有者增加test目录及其下所有文件的执行权限
chmod u+x -R test
24 文本编辑:vim
#vim三种模式:命令模式,插入模式,编辑模式。使用ESC或i或:来切换模式。
#命令模式下,:q退出 :q!强制退出 :wq保存退出 :set number显示行号 /java在文档中查找java yy复制 p粘贴
#编辑desc.txt文件
vim desc.txt
25 关机或重启:shutdown
#立刻关机
shutdown -h now
#60秒后重启
shutdown -r -t 60
26 帮助命令:man
#查看ls命令的帮助文档
man ls