- 从某个文件取文件前2000行存到另一个文件中去
- head -n 2000 part-00198 >test2.csv
- 将某个数据文件以指定分隔符输出到另外一个文件中
- awk 'BEGIN{FS=OFS=","}{print $1,$2,$3,$4,$5,$6,$7,$8,$9,$10}' file_name>new_file_name
- $i代表你想输出文件中的哪个字段,请注意输入输出分隔符,可以自己指定输出分隔符
- 将文本文件指定行的内容存储到另一个文件中去
- 从第3000行开始,显示1000行。即显示3000~3999行
- cat filename | tail -n +3000 | head -n 1000
- 显示1000行到3000行
- cat filename| head -n 3000 | tail -n +1000
- tail -n 1000:显示最后1000行
- tail -n +1000:从1000行开始显示,显示1000行以后的
- head -n 1000:显示前面1000行
- 用sed命令
- sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
- 若数字前面不带加号,则代表原意,若加上加号,则代表从这一行开始
- 统计文本记录行数
- wc -l filename
- awk ‘END{print NR}’ filename
- grep -c ‘.*’ filename
- sed -n ‘$=’ a.txt
- cat -n a.txt |tail -1
- 用vi打开文件就看到了,shift+G到尾行
- :.=也可以看所在行。
- :=看所有行
- 在vim里面搜索关键字
- 命令模式下输入'/'
- 再输入要搜索的关键字
- 回车
- 输入n
- 可以搜索下一个
- 统计数据文件有多少个字段(打印某个文件的记录条数和字段个数)
- awk 'BEGIN{FS=OFS=","}{print NF}' filename |sort|uniq -c|more
- uniq(选项)(参数)
- 选项
- -c或——count:在每列旁边显示该行重复出现的次数;
- -d或--repeated:仅显示重复出现的行列;
- -f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位;
- -s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符;
- -u或——unique:仅显示出一次的行列;
- -w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。
- 执行从windows上传服务器新的文件,建议提前做此操作,避免出现编码问题
- chmod +x load_ta_dt_action_hotspot_video_m.sh
- dos2unix load_ta_dt_action_hotspot_video_m.sh
- tee
- 用于读取标准输入的数据,并将其内容输出成文件。
- tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
- tee [-ai][--help][--version][文件...]
- 参数:
- -a或--append 附加到既有文件的后面,而非覆盖它.
- -i或--ignore-interrupts 忽略中断信号。
- --help 在线帮助。
- --version 显示版本信息。
- wc
- 统计多个文件的总行数
- cat result_ott_distance_*|wc -l
- 统计指定文件中的字节数、字数、行数, 并将统计结果显示输出
- wc -l filename 报告行数
- wc -c filename 报告字节数
- wc -m filename 报告字符数
- wc -w filename 报告单词数
- ls -l|wc -l 用来统计当前目录下的文件数
- ls BKK | egrep [^X]\.webp | wc 列出BKK目录下 后缀名是
- 且前缀名不是以大写X结尾的文件的 文件数
- find . * | xargs wc -l 当前目录以及子目录的所有文件行数
- 统计多个文件的总行数
- xargs
- 给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。
- -n选项多行输出
- -d选项可以自定义一个定界符
- egrep
- 用于在文件内查找指定的字符串。egrep执行效果与grep -E相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
- sort
- 它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出
- sort(选项)(参数)
- 忽略相同行使用-u选项或者uniq , -n(number)是按照数字大小排序,-r (reverse)是以相反顺序,-k 是指定需要要排序的栏位,-t (separator)指定栏位分隔符为冒号
- uniq
- 统计各行在文件中出现的次数
- sort file.txt | uniq -c (count)
- 在文件中找出重复的行
- sort file.txt | uniq -d
- 删除重复行
- sort -n test.txt | uniq
- linux中uniq与sort -u两种去重的对比
- $ cat test
- jason
- jason
- jason
- fffff
- jason
- 下面分别执行三个命令
- 1:sort -u test
- sort -u test
- fffff
- jason
- 2: uniq test
- $uniq test
- jason
- fffff
- jason
- 3: sort test|uniq
- $sort test |uniq
- fffff
- jason
- uniq所谓的重复是连续出现的相同记录
- $ cat test
- 怎么样正确的查看Linux的内存占用情况 free -m
- [root@host ~]# free -m
- total used free shared buffers cached
- Mem: 1024 1005 19 0 9 782
- -/+ buffers/cache: 212 811
- Swap: 996 0 995
- 从上看出这个Linux系统一共有内存1024M,但当前Linux 系统已经占用的内存有多少呢?大多数用户的答案是1005M,其实不然。 当前VPS占用的内存应该是212M,也就是1005下面那个数字:212,代表已经占用的内存。后面的那个811,代表当前Linux系统的可用内存。 "-/+ buffers/cache:"开头的这行才是实际的占用内存和可用内存。 所以,看内存使用情况,应该看"-/+ buffers/cache:"开头的这一行,如果这一行最后的数字接近0,那么说明Linux系统的内存快用完了,这时候Linux系统反应就比较慢。如果这个数字还比较大,那么Linux系统还有较多内存可用,系统不应该慢。
- linux查看磁盘空间大小
- df -hl 查看磁盘剩余空间
- df -h 查看每个根路径的分区大小/查看硬盘剩余空间
- du -sh [目录名] 返回该目录的大小
- du -sm [文件夹] 返回该文件夹总M数
- du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
- sudo fdisk -l 查看硬盘的分区
- sudo hdparm -i /dev/hda 查看IDE硬盘信息
- sudo hdparm -I /dev/sda 或 #sudo apt-get install blktool #sudo blktool /dev/sda id 查看STAT硬盘信息 #
- du -hs 目录名 查看目录占用空间
- sync fuser -km /media/usbdisk 优盘没法卸载
- Linux vim 删除方法总结(删除全部,删除某行到结尾,删除某段内容,删除字符)
- 1.打开文件 :vi filename
- 以下所有输入均在命令模式下:
- 2.转到文件结尾:G
- 或转到第9行:9G
- 3.删除所有内容(先用G转到文件尾) ,使用:
- :1,.d
- 或者删除第9行到第200行的内容(先用200G转到第200行) ,使用::9,.d
- 4.删除光标所在处字符:x
- 5.删除光标所在前字符(大写 X ):X
- 6.删除到下一个单词开头:dw
- 7.删除到本单词末尾:de
- 8.删除到本单词末尾包括标点在内:dE
- 9.删除到前一个单词:db
- 10.删除到前一个单词包括标点在内:dB
- 11.删除一整行:dd
- 12.删除光标位置到本行结尾:D d$
- 13.删除光标位置到本行开头:d0
- sed命令
- 数据的搜寻并显示:
- 搜索 /etc/passwd有root关键字的行
- nl /etc/passwd | sed '/root/p'
- 搜索 /etc/passwd有root关键字的行
- 数据的搜寻并删除:
- 删除/etc/passwd所有包含root的行,其他行输出
- nl /etc/passwd | sed '/root/d'
- 2 daemon:x:1:1:daemon:/usr/sbin:/bin/sh
- 3 bin:x:2:2:bin:/bin:/bin/sh....
- 下面忽略#第一行的匹配root已经删除了
- nl /etc/passwd | sed '/root/d'
- 删除/etc/passwd所有包含root的行,其他行输出
- 数据的搜寻并执行命令:
- 找到匹配模式eastern的行后,搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行:
- nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
- 1 root:x:0:0:root:/root:/bin/blueshell
- nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'
- 如果只替换/etc/passwd的第一个bash关键字为blueshell,就退出
- nl /etc/passwd | sed -n '/bash/{s/bash/blueshell/;p;q}' 1 root:x:0:0:root:/root:/bin/blueshell
- 最后的q是退出。
- 找到匹配模式eastern的行后,搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行:
- 数据的搜寻并替换:
- 除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。基本上 sed 的搜寻与替代的与 vi 相当的类似!他有点像这样:
- sed 's/要被取代的字串/新的字串/g'
- 除了整行的处理模式之外, sed 还可以用行为单位进行部分数据的搜寻并取代。基本上 sed 的搜寻与替代的与 vi 相当的类似!他有点像这样:
- 数据的搜寻并显示:
- ls 查看某个txt...等文档的大小
- ls -lrth file_name
- stat查看某个日志文件的详细时间(包括创建时间,结束时间)
- stat py_multimediabox_no_home_rel.log
- 查看环境变量
- env |grep
- .bash_profilr
- .bash_brc
- vim全选复制粘贴
- ggVG
- gg 让光标移到首行,在vim才有效,vi中无效
- V 是进入Visual(可视)模式
- G 光标移到最后一行
- 选中内容以后就可以其他的操作了,比如:
- d 删除选中内容
- y 复制选中内容到0号寄存器
- "+y 复制选中内容到+寄存器,也就是系统的剪贴板,供其他程序用
- 复制光标所在的一样 “Y”
- 把内容粘贴到光标所在的位置,“p”
- cron 各项的描述
- 以下是 crontab 文件的格式:
- {minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
- o minute: 区间为 0 – 59
- o hour: 区间为0 – 23
- o day-of-month: 区间为0 – 31
- o month: 区间为1 – 12. 1 是1月. 12是12月.
- o Day-of-week: 区间为0 – 7. 周日可以是0或7.
- 40 12 25 11 * sh /srv/user_five_app_types_pca_file/get_five_types_pca_result_all.sh20181001 20181031 > get_five_types_pca_result_all_20181125.log
- split(选项)(file)PREFIX
- -b:值为每一输出档案的大小,单位为 byte。
- C:每一输出档中,单行的最大 byte 数。
- -d:使用数字作为后缀。
- -l:值为每一输出档的列数大小。
- PREFIX:代表前导符,可作为切割文件的前导文件。
- 使用split命令将上面创建的date.file文件分割成大小为10KB的小文件,文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度,为分割后的文件指定文件名的前缀
- split -b 10k date.file -d -a 3 split_file
- ls 结果: date.file split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009
- 将split分割的文件合并成一个
- cat x*>>y*
- shell脚本通过获取当月第一天来获取上个月第一天和最后一天
- #! /bin/sh
- nowdate=`date +%Y%m01` #本月第一天
- startdate=`date -d"$nowdate last month" +%Y%m%d` #上个月第一天
- enddate=`date -d"$nowdate last day" +%Y%m%d` #上个月最后一天
- #遍历上个月的每一天
- while (( $startdate <= $enddate ))
- do
- echo $startdate
- startdate=`date -d "+1 day $startdate" +%Y%m%d`
- done
- 获取三个月以前的月份
- echo `date --date='3 months ago' +%Y%m`
- 201809
- 获取两天以前的日期
- echo `date -d "2 day ago" +"%Y%m%d"`
- 20181211
- 挂载磁盘
linux常用命令(自我总结)
最新推荐文章于 2021-05-27 12:04:43 发布