Linux常用命令总结

命令使用求助[1]

命令名 --help

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

管道操作[2]

-|

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

信息分析处理[3]

#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码排序打印输出,原文本未做修改。

系统信息查询[4]

#du (disk usage)  #df  #stat

作用:显示目录(或文件)所占磁盘空间的大小。
示例:
du -ah --max-depth=1 查看目录下的所有文件的大小,以K、M、G的单位显示。
-a 表示目录中每个文件显示各自磁盘使用情况
-h 以K,M,G为单位,提高信息的可读性。
--max-depth=n 表示只深入到第n层目录,此处设置为1,即表示只深入到第一层子目录

df -h 显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。

stat -c 格式代码 文件名 获取关于文件的额外信息,包括文件系统和文件。

用户及权限操作[5]

#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的密码。

文件操作[6]

#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

搜索[7]

#find #locate #whereis

进程[8]

  • ps -ef  查看进程
  • crontab -l  查看当前定时任务
  • crontab -e  编辑当前定时任务
    crontab格式
命令行

* :所有取值  / :每  X-Y:从X连续到Y  X,Y:离散的X和Y

停止运行[9]

  • 筛选出需要的脚本,获取进程ID

ps -ef | grep '脚本名'

  • 强行终止脚本

kill -9 进程ID

其他[10]

整数比较:
    -eq 等于,如:if [ "a" -eq "b" ]
    -ne 不等于,如:if [ "a" -ne "b" ]
    -gt 大于,如:if [ "a" -gt "b" ]
    -ge 大于等于,如:if [ "a" -ge "b" ]
    -lt 小于,如:if [ "a" -lt "b" ]
    -le 小于等于,如:if [ "a" -le "b" ]
    < 小于(需要双括号),如:(("a" < "b"))
    <= 小于等于(需要双括号),如:(("a" <= "b"))
    > 大于(需要双括号),如:(("a" > "b"))
    >= 大于等于(需要双括号),如:(("a" >= "b"))

字符串比较:
    = 等于,如:if [ "a" = "b" ]
    == 等于,如:if [ "a" == "b" ], 与=等价
  注意:==的功能在[[]]和[]中的行为是不同的,如下:
    1 [[ a == z* ]] # 如果a以"z"开头(模式匹配)那么将为true
     2 [[ a == "z*" ]] # 如果a等于z(字符匹配),那么结果为true
    3 [ a == z* ] # File globbing 和word splitting将会发生     4 [ "a" == "z
" ] # 如果$a等于z*(字符匹配),那么结果为true

!= 不等于,如:if [ "a" != "b" ], 这个操作符将在[[]]结构中使用模式匹配.
    < 小于,在ASCII字母顺序下.如:
   if [[ "a" < "b" ]]
   if [ "a" \< "b" ] 在[]结构中"<"需要被转义.
    > 大于,在ASCII字母顺序下.如:
       if [[ "a" > "b" ]]
       if [ "a" \> "b" ] 在[]结构中">"需要被转义.
    -z 字符串为"null".就是长度为0.
    -n 字符串不为"null"

假设有变量 var=http://www.aaa.com/123.htm.

  1. # 号截取,删除左边字符,保留右边字符。

echo ${var#*//}

其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符

即删除 http://,结果是 :www.aaa.com/123.htm

  1. ## 号截取,删除左边字符,保留右边字符。

echo ${var##*/}

##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

即删除 http://www.aaa.com/,结果是 123.htm

  1. %号截取,删除右边字符,保留左边字符

echo ${var%/*}

%/* 表示从右边开始,删除第一个 / 号及右边的字符

结果是:http://www.aaa.com

  1. %% 号截取,删除右边字符,保留左边字符

echo ${var%%/*}

%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

结果是:http:

  1. 从左边第几个字符开始,及字符的个数

echo ${var:0:5}

其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

结果是:http:

  1. 从左边第几个字符开始,一直到结束。

echo ${var:7}

其中的 7 表示左边第8个字符开始,一直到结束。

结果是 :www.aaa.com/123.htm

  1. 从右边第几个字符开始,及字符的个数

echo ${var:0-7:3}

其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

结果是:123

  1. 从右边第几个字符开始,一直到结束。

echo ${var:0-7}

表示从右边第七个字符开始,一直到结束。

结果是:123.htm

注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

目录


  1. 命令使用求助

  2. 管道操作

  3. 信息分析处理

  4. 系统信息查询

  5. 用户及权限操作

  6. 文件操作

  7. 搜索

  8. 进程

  9. 停止运行

  10. 其他(字符处理)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容