Linux常用命令总结

228 阅读6分钟

命令使用求助

命令名 --help

查看命令的使用方法。 如:date --help

管道操作

-|

管道,配合其他命令使用。将上一条命令的输出作为下一条命令的输入。 如:ps -ef | grep java

信息分析处理

#awk  #sed  #grep  #wc  #echo  #cut  #sort

awk

  • 文本分析工具。awk 会把每行进行一个拆分,用相应的命令对拆分出来的“段”进行处理。
  1. 行工作模式,读入文件的每一行,会把一行的内容,存到$0里
  2. 使用内置的变量FS(段的分隔符,默认用的是空白字符),分割这一行,把分割出来的每个段存到相应的变量$(1-100)
  3. 输出的时候按照内置变量OFS(out FS),输出
  4. 读入下一行继续操作

语法: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

其他