命令使用求助
命令名 --help
查看命令的使用方法。
如:date --help
管道操作
-|
管道,配合其他命令使用。将上一条命令的输出作为下一条命令的输入。
如:ps -ef | grep java
信息分析处理
#awk #sed #grep #wc #echo #cut #sort
awk
- 文本分析工具。awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。
- 行工作模式,读入文件的每一行,会把一行的内容,存到$0里
- 使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100)
- 输出的时候按照内置变量OFS(out FS),输出
- 读入下一行继续操作
语法:awk ‘匹配模式+行为’ filename
示例:
provins=($(awk '{print $2}' provinsInfo.txt)) 将文本provinsInfo.txt中每行按空格分隔后的第2个(从1开始)。字符串放入数组provins中。
echo "String:number" | awk -F':' ‘{print $2}’ 将字符串"String:number"按‘:’进行分隔,并取第2部分。
sed
- 文本处理工具,配合不同的参数执行删除、修改、获取等操作。
语法:sed -参数 '行为'
示例:
sed -i ‘/linux/d’ log.txt 直接在log.txt文件中删除包含linux的行
sed ‘$d’ log.txt 删除log.txt文件的最后一行
sed -n ‘3p’ log.txt 打印log.txt文件中的第3行
grep:
- 文本的条件筛选工具
语法:cat filename | grep '筛选条件'
示例:
cat xferlog | grep ‘20170915’ 筛选出文件xferlog中包含字符‘20170915’的记录(行)。
grep -v 筛选出不包含筛选条件的记录(行)。
grep -c 输出匹配行的条数
grep -n 输出匹配行所在的行号
cat xferlog | egrep ‘20170915|20170916’ 筛选出文件xferlog中包含字符‘20170915’或‘20170916’的记录(行)。
wc
- 文本信息统计工具
语法:wc filename
-l:列出文本行数
-w:列出文本字数(英文单字)
-m:列出字符数
示例:
wc -l config.txt 显示config文件的行数。(其他写法:grep -n “” 文件名)
wc config.txt 显示结果为:n1 n2 n3 config.txt n1为文本行数,n2为文本字数,n3为文本字符数
echo
- 文本打印或控制台输出
语法: echo XXX
示例:
echo “${username}=vike” 在控制台打印。
echo -n "first line" 不打印换行符,后续内容将与“first line”同行显示
cut
- 按条件截取字符串
语法:cat filename | cut -b n-m 截取文件的第n-m行字符
echo String | cut -d '分隔符' n 根据自定义分隔符截取第n段
示例:
cat config.txt | cut -b 2-8 截取config.txt文件中的2-8行。
echo config | cut -b 3 截取config字符串的第三个字符。
sort
- 将文本内容按ASCII码值进行排序,升序打印。
语法:sort filename
示例:
sort config.txt 以文件的各行为单位,按ASCII码排序打印输出,原文本未做修改。
系统信息查询
#du (disk usage) #df #stat
du
- 显示目录(或文件)所占磁盘空间的大小。
示例:
du -ah --max-depth=1 查看目录下的所有文件的大小,以K、M、G的单位显示。
-a 表示目录中每个文件显示各自磁盘使用情况
-h 以K,M,G为单位,提高信息的可读性。
--max-depth=n 表示只深入到第n层目录,此处设置为1,即表示只深入到第一层子目录
df
df -h 显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。
stat
stat -c 格式代码 文件名 获取关于文件的额外信息,包括文件系统和文件。
用户及权限操作
#chmod #chown #passwd
chmod
- 修改文件(夹)权限
语法:chmod mode file
mode是指:owner+[rwx]
owner: u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
此外mode也可以是数字:r=4,w=2,x=1。
示例:
chmod ugo+r file.txt 将文件 file.txt 设为所有人添加读取的权限。
chmod 777 file.txt 将文件file.txt 设为所有人皆可读可写可执行。
chown
- 修改文件(夹)所属的用户或用户组
语法:chown own:group file
其中own指文件所属用户,group指文件所属的群组
示例:
chown root: file.txt 改变文件file.txt的拥有者和群组
chown :aiusr file.txt 改变文件file.txt的组群
passwd
- 修改系统用户的密码
语法:passwd username
回车后再依次输入旧密码和两遍新密码即可修改完成(先登录root,获得root权限)
passwd aiusr :修改用户aiusr的密码。
文件操作
#mkdir #cd #cp #scp #mv #rm #touch #cat #head #tail #vi
mkdir
- 创建文件夹
语法:mkdir [mode] dirname
示例:mkdir 760 data 创建名为data的文件夹,权限为创建者可读可写可执行,同组的可读可写,普通用户无任何权限。
cd
- 进入某个路径下的文件夹
语法:cd filepath
示例:cd /home/data 进入目录/home/data
cp
- 复制文件
语法:cp filepath1/filename1 filepath2/filename2
示例:cp /home/data/1.txt /home/data/backup/2.txt 复制/home/data/目录下的文件1.txt到目录/home/data/backup/下,命名为2.txt。
scp
- 复制文件至远程服务器
语法:scp filepath1/filename1 remote_username@remote_ip:filepath2/filename2
示例:scp home/vike/data/1.txt universal@192.168.1.246:/home/zw/data/1.txt 复制当前主机下/home/data/目录下的文件1.txt到远程主机universal(ip:192.168.1.246)的/home/zw/data/目录下。
mv
- 移动文件(重命名文件)
语法:mv filepath1/filename1 filepath2/filename2
示例:mv /home/data/1.txt /home/data/backup/2.txt 移动/home/data/目录下的文件1.txt到目录/home/data/backup/下,命名为2.txt。
mv /home/data/1.txt /home/data/2.txt 将/home/data/目录下的文件1.txt重命名为2.txt。
rm
- 删除文件
语法:rm filepath/filename
示例:rm /home/data/1.txt 删除/home/data/目录下的文件1.txt
-f 强制删除文件或者文件夹,不提示
-r 递归处理,将目录下的文件及其子文件夹全部删除
-i 删除文件或目录前先询问用户(输入y或n后再进行操作)
touch
- 创建文件
语法:touch filepath/filename
示例:touch /home/data/2.txt 在/home/data/目录下创建文件2.txt
cat
- 打开文件
语法:cat filepath/filename
示例:cat /home/data/1.txt 打开/home/data/目录下的文件1.txt
cat -n filename 打开文件,并显示行号。
head,tail
- 查看文件前/后n行(不填写参数时默认显示10行)
语法:head [-n] filepath/filename;
tail [-n] filepath/filename
示例:head /home/data/1.txt 打印/home/data/目录下文件1.txt的前10行
tail -50 /home/data/1.txt 打印/home/data/目录下文件1.txt的后50行
vi,vim
- 编辑文件(打开文件后--i(输入),:q!(退出),:wq(保存退出))
语法:vi filepath/filename
示例:vi /home/data/1.txt 编辑/home/data/目录下的文件1.txt
搜索
#find #locate #whereis
进程
ps -ef查看进程crontab -l查看当前定时任务crontab -e编辑当前定时任务 crontab格式
| 分 | 时 | 日 | 月 | 周 | 命令行 |
|---|
* :所有取值 / :每 X-Y:从X连续到Y X,Y:离散的X和Y
停止运行
- 筛选出需要的脚本,获取进程ID
ps -ef | grep '脚本名'
- 强行终止脚本
kill -9 进程ID
其他
- 字符串/数值比较(参考:blog.csdn.net/weiyuweizhi… )
- 字符串截取切割(参考:www.jb51.net/article/565… )