linux汇总整理-命令篇

  • su:switch user 切换用户
  • chattr 很重要的权限命令

  • wget:字符模式上网,是史上最快的单线程传输工具,用于下载网站/批量文件。它的任务就是获取互联网。

  • 常用命令
    pwd:查看当前所在目录
    whoami:查看当前登录用户
    who:查看当前所有正在登录的用户。
    ls:查看当前目录下所有的文件

  • scp命令
    scp -r app_usr@132.42.45.133:/home/app_usr/31 /app/srgl/app # 将远程主机的31目录拷贝到本机的app目录
    scp -r /app/srgl/app app_usr@132.42.45.133:/home/app_usr/31 # 将本机的app目录拷贝到远程主机的31目录

  • tar
    注意事项:
    f参数必需且要放在最后;
    f参数后边直接跟压缩文件的名字。不管是压缩还是解压。
    使用方法:
    $tar -czvf /data01/cdrom.tar.gz * : 将当前目录下的所有文件压缩,存放在/data01/cdrom.tar.gz。
    $tar -czvf /data01/cdrom.tar.gz *.html : 将当前目录下的所有html文件压缩,存放在/data01/cdrom.tar.gz。
    $tar -xvzf /data01/cdrom.tar.gz : 将/data01/cdrom.tar.gz文件解压到当前目录下。
    (如果当前目录为/kxsh,则解压后的文件存放在了/kxsh下)

  • ls
    ls -l:显示详细信息
    ls -lh:显示详细信息,文件大小单位为人直接能看懂的单位(K、M、G等)
    ls -rt:按时间顺序显示文件,并按相反的顺序显示,这样最后修改的文件在最后显示,便于查看
    [root@localhost kxsh]# ls -l
    ---------- 1 kxsh root 16 06-05 09:54 1
    第二个字段:代表文件硬链接数,值为1说明只有一个指向该文件的硬连接,那就是这个文件本身
    kxsh 代表文件拥有者,root代表文件拥有者所在的用户组

  • cp
    cp -r unionBusi.war test

  • pwd

  • mkdir:创建目录

  • touch:创建一个空文件

  • rmdir:删除目录,只能删除空目录,如果目录中有文件或者子目录存在,则不能用这个命令

  • rm:删除文件和目录。不带参数时只能删除文件,要删除目录需要加-r或者-rf。
    rm -r:可以删除非空目录。其实是递归删除,所以没删除一个文件或目录之前总会询问。
    rm -rf:强制删除目录及其内部所有文件、文件夹,不在提示询问信息。

  • cp:copy,复制

  • mv:move,移动 和 重命名 都是使用mv命令

  • vi:文本编辑器

  • 删除制定目录下及其所有子目录下的.svn目录。find /server/svn_prd -type d -name ".svn" -exec rm -rf {} \;
    old:待查找的开始目录,搜索其下的子目录
    -type d : 文件类型为努鲁 若查找的目标文件是普通文件,则用 -type f
    -name “.svn” : 双引号不能少!
    rm -f {} : 删除时,不提示,{}表示查找到的文件

  • more :列出文件的内容

  • cat:列出文件的内容,正序

  • tac:列出文件的内容,逆序(tac为单词cat的反序)

  • head:列出文件内容,可以指定参数
    head -3:列出前三行的内容

  • tail、列出文件的内容,可以指定参数
    tail -3:列出后三行的内容
    注意:head、tail的应用
    一般的大型日志文件可能达到几百兆,可是我们有可能只看其中的几行而已,
    这时如果用more显然是不现实的,所以就用到了head和tail
    tail -f 用来动态跟踪日志内容

  • find:查找,可以按名称、日期、大小等信息来查找文件
    find /etc -name *local :查找/etc目录下名字中后半部分为local的文件。

  • whereis :后面跟命令文本,查看该命令是从哪儿来的以及该命令的文档。(根据环境变量path,同windows)
    whereis ls:查看ls命令的文件以及ls的文档。

  • whereis && locate && find
    whereis :某个二进制文件的位置,通常用于查看命令位置
    locate:从linux文件数据库中查询文件位置,速度非常快。
    find:按各种条件查找文件
    注意:比较whereis ifconfig 和 locate ifconfig的执行结果有何不同

  • linux下提示bash:command not found
    如果确定命令是正确的,则可能是权限不足。先用whereis 定位文件,然后执行相关目录下的相关命令

  • md5加密文件
    $md5sum aaa.txt > aaa.md5

  • 软链接和硬链接的创建
    $ln nihao.txt tahao.txt 为nihao.txt文件创建tahao.txt的硬链接(nihao.txt必须已经存在且tahao.txt文件不存在)
    $ln -s nihao.txt haohao.txt 为nihao.txt文件创建haohao.txt的软连接(即快捷方式)

  • 从linux中在远程登录另一个linux
    例如,本地不能访问10.72.67.220服务器,但是本地可以登录132.42.46.61,而132.42.46.61是可以访问10.72.67.220的。
    这时,可以先远程登录132.42.46.61,然后通过以下命令在61下远程登录220.
    $ssh -l app_usr 10.72.67.220 (app_usr为用户名
    第一次连接时会让你确认,输入yes,然后输入口令就行了。

  • grep -i :筛选时不区分大小写
    使用管道并用grep筛选关键字时,由于linux对大小写要求很严格,筛选很费劲。
    例如,查看是否安装了mysql,需要执行命令:
    $rpm -qa|grep MySQL
    如果不是很熟,不知道MySQL的大小写区分,就会筛选不到想要的内容。
    解决方法:
    $rpm -qa|grep -i mysql 此时,将不再区分筛选条件的大小写

  • alias给linux常用的命令起一个别名。
    $alias ll=‘ls -l’ 给ls -l娶一个别名为ll
    $unalias ll 取消ll这个别名
    但是,用以上命令设置的别名只读当前登录的用户有效,下次登录系统就无效了。
    解决办法:在home目录下执行如下命令
    v i . b a s h r c 另一个解决方法:在 vi .bashrc 另一个解决方法: 在 vi.bashrc另一个解决方法:在HOME下创建自己的.alias文件;
    在$HOME/.bashrc中加入语句
    if [ -f ~/.alias ]; then
    . ~/.alias
    fi

  • ls常用命令举例
    -a:显示隐藏文件;-r:按相反顺序排序;-t:按时间排序;-S:按文件大小排序
    $ll -rt:按修改时间排序(最后修改的在最下边)
    $ll -rS:按大小排序(大的在最下边)
    $ll -a:查看所有文件(包括隐藏文件)

  • mkdir创建多级目录
    mkdir -p baidu/yahoo (可以连续创建多级目录)

  • 改变文件夹内所有文件的权限
    $chown -R kxsh filename
    $chgrp -R kxsh filename

  • wc:(word count)统计指定文本文件的行数、字数、字符数

  • grep:查找指定的字符串(最最常用的命令之一),常与管道配合使用
    $ll |grep txt
    注意:grep命令很重要,很常用!!!
    有时候相查当前进程中哪个是tomcat进程,就用这个命令。

  • mv:移动,或者重命名
    假如当前目录下有一个nihao.txt文件,一个test子目录
    $mv nihao.txt test 将nihao.txt移动到test子目录下
    $mv nihao.txt nihao 将nihao.txt重命名为nihao

  • top:linux下的任务管理器
    打开之后,q退出,s修改刷新频率

  • md5sum:生成md5校验文件

  • hexdump :查看文件的16进制内容。
    $hexdump -C fileName

  • linux的历史搜索
    $history 50 :搜索之前执行的50条命令( 每条命令有自己的编号,下面用到的就是历史命令的编号)
    $!68 :执行历史编号为68的那条命令
    ! l s :运行上一个 l s 命令 ( 这条非常实用,有时候用 l l 加 g r e p 查询出结果后,去另一个目录中仍想执行相同的命令时,可以直接通过 !ls :运行上一个ls命令 (这条非常实用,有时候用ll 加grep查询出结果后,去另一个目录中仍想执行相同的命令时,可以直接通过 !ls:运行上一个ls命令(这条非常实用,有时候用llgrep查询出结果后,去另一个目录中仍想执行相同的命令时,可以直接通过!ll来执行。)
    $fc :编辑并运行上一条命令 (因为编辑是在vi下编辑,所以fc命令仅适用于很长的命令)
    $fc 69 :编辑并运行历史命令编号为69的那条命令(同上)

  • 生成一个文件的md5校验文件
    $:md5sum fileName > fileName.md5

  • 查看文本文件的内容: cat、tac、less、more、head、tail
    more:向前翻页(b - backward)、向后翻页(f - forward)
    head:head -n 查看前50行 (n参数可以不加)
    tail : tail -n 查看后50行(n参数可以不加)
    tail -f :时时跟踪文件变化
    cat -n :连行号一起输出

  • mount命令
    关键命令:
    #mount: 查看挂载状态
    #mount | grep cd :查看cd的挂载
    #mount /dev/cdrom /mnt/cdr:将文件/dev/cdrom挂载为目录/mnt/cdr。
    #umount /dev/cdrom:取消挂载

  • rpm
    使用方法:
    $rpm -e ***.rpm :卸载rpm软件
    $rpm -qa :查看已经安装的软件
    $rpm -ivh ***.rpm :安装rpm软件

  • linux文件搜索
    which:搜索PATH包含目录内的可执行文件。(因此要想让某个可执行文件被搜索到,需要将其放于PATH包含的目录下,
    或者将其所在目录放入PATH)
    whereis:不如locate强悍。
    locate:从linux文件数据库中搜索想要的文件,速度快。
    例如:公司业会转换程序名称为transformprov,然后想找到它的源代码,只需执行 $locate transformprov 命令即可迅速找到所有名字中
    包含了transformprov的文件。
    find:功能强大的搜索命令,可以按时间、组、所有者、文件名、文件类型进行搜索。缺点是查找速度慢而且浪费硬盘空间。
    备注:
    find 使用方法:
    $find [路径] [参数]
    参数说明:
    1.时间参数 // a、c、m分别代表什么意思?随便找一个文件,用stat命令查看其详细信息,就会明白这里的a、c、m分别是access、change、modify
    -atime n :将n24小时内被存取过的文件列出来(access)
    -ctime n :将n
    24小时内被新增的文件或目录列出来(change)
    -mtime n :将n*24小时内被修改过的文件列出来(modify)
    -newer file:把比file还新的文件列出来
    2、使用名称
    -gid n :寻找群组ID为n的文件
    -group name:寻找群组名称为name的文件
    -uid n :寻找拥有者ID为n的文件
    -user name :寻找拥有者为name的文件
    -name file :寻找文件名为file的文件(可以使用通配符)
    -type type :寻找文件属性为type的文件,type包含了b, c, d, p, l, s,这些与前一章的属性相同。例如l为Link而d为目录

  • column -t 将前边的命令进行格式化输出
    例如:
    $more fileName |column -t
    $mount |column -t
    注意:
    column命令只对英文起作用。如果前边的内容有中文字符(包括汉字和中文的标点符号),column命令就会失效。

  • 检查文件是否是UTF格式
    $ file --mime-encoding filename

  • 修改文件权限:chmod、chown、chgro

# 将文件所有者改为kxsh
chown kxsh filename
# 将文件所有者改为kxsh
chgrp kxsh filename
# 给文件赋予所有权限(读、写、执行)
chmod 777 filename
# 取消所有权限
chmod 000 filename
# 给文件的所有者增加/取消可执行权限
chmod +/-x filename
# 给当前用户/同组用户/其它用户增加可执行权限
chmod u/g/o+x filename
  • nano:超简单的文本编辑器。其操作全是通过Ctrl+下边提示的快捷键来执行。

  • 脚本中获取当前时间或当前时间的前一天,格式为20080101
    当前时间:date +%Y%m%d
    当前时间的前一天:date -d"1 days ago" +%Y%m%d

  • linux下启动jboss并保持其后台运行的命令
    在bin目录下:$nohup ./run.sh -c web -b 主机地址 &
    其中,-c和-b都是run.sh的参数。在windows环境中运行run.bat时这几个参数也可以用。
    -c的作用:指定服务器的实力配置目录。默认是defualt,这里通过-c参数指定为web目录。
    -b的作用:指定外部访问地址。默认只能本地访问,通过-b指定外网访问地址
    nohup的作用:指定后台运行
    &的作用:和nohup一起指定后台运行。


搜寻目录或文件

  • 前言
    linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate命令查找文件时,都会以此数据库文件的内容为准。
    基本上linux每天会针对linux主机执行updatedb(跟对该数据库文件)操作,您可以在/etc/cron.daily/mlocate.cron文件中找到相关的机制。
    当然也可以直接使用/usr/bin/updatedb来手动更新数据库文件。
    有时你会发现使用whereis和locate时,会找到已经被删除的文件,那是因为删除文件之后数据库没有及时更新。
  • 文件搜索命令综述
    which:查看可执行文件的位置(按名字查找)
    whereis:从数据库中查看文件位置(功能没有locate强大,一般直接用locate即可)
    locate:配合数据库查看文件位置(按名字查找)
    find:实际s搜寻硬盘查询文件名称(可以根据所有者、大小等各种属性查找文件,功能强大但是查找速度慢而且浪费硬盘)
  • 注意:
    find用的并不是很多,因为find速度慢而且费硬盘。如果知道某个文件名字中的一部分,想要查找文件的位置,直接用locate就可以,通常不用find
    因为locate是利用数据库来搜寻数据,所以相当快。如果用locate找不到,才会用find
  • which
    which的基本功能是在PATH包含的路径下查询可执行文件。所以如果希望一个可执行文件能够使用which命令查询到,需要将该文件加入PATH包含的某个目录中,或者将该文件所在目录放入PATH。
    例:$whichis ls
  • whereis
    从数据库中查找文件,功能没有locate强大。
    例:$whereis ls
  • locate
    最常用的文件名搜索命令。使用起来非常简单,直接输入要查找的文件名即可。
    例如:公司业会转换程序名称为transformprov,然后想找到它的源代码,只需执行 $locate transformprov 命令即可迅速找到所有名字中包含了transformprov的文件。
  • find
    语法:find [路径] [ 参数]
    参数说明:
    1. 时间: // a、c、m分别代表什么意思?随便找一个文件,用stat命令查看其详细信息,就会明白这里的a、c、m分别是access、change、modify
      -atime n : 将n24小时内被存取过的文件列出来 (access)
      -ctime n : 将n
      24小时内被改变、新增的文件或目录列出来 (create)
      -mtime n : 将n*24小时内被修改过的文件列出来 (modify)
      -newer file : 把比file还要新的文件列出来
    2. 使用名称:
      -gid n : 寻找群组ID为n的文件
      -group name : 寻找群组名称为name的文件
      -uid n : 寻找拥有者ID为n的文件
      -user name : 寻找用户名称为name的文件
      -name file : 寻找文件名为file的文件名称(可以使用通配符)
      -type type : 寻找文件属性为type的文件,type包含了b, c, d, p, l, s,这些与前一章的属性相同。例如l为Link而d为目录

范例:

  • 在/logs目录中查找更改时间在5 日以前的文件并删除它们:
    $ find logs -type f -mtime +5 -exec rm {} \;
  • find命令在当前目录中查找所有文件名以.log结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。
    $ find . -name "*.log" -mtime +5 -ok rm {} \;
  • 查找/var/logs 目录中更改时间在7 日以前的普通文件,并在删除之前询问它们:
    $ find /var/logs -type f -mtime +7 -ok rm {} \;
  • 用grep命令在所有的普通文件中搜索hostname 这个词:
    $ find . -type f -print | xargs grep "hostname"
  • 用grep命令在当前目录下的所有普通文件中搜索hostnames 这个词:
    $ find . -name \* -type f -print | xargs grep "hostnames"
  • 想要在当前目录及子目录中查找所有的’*.txt’文件,可以用:
    $ find . -name "*.txt" -print
  • 想要的当前目录及子目录中查找文件名以一个大写字母开头的文件,可以用:
    $ find . -name "[A-Z]*" -print
  • 在/ e t c 目录下查找文件属主为u u c p 的文件:
    $ find /etc -user uucp -print
  • 为了在/var/adm目录下查找更改时间在3 日以前的文件,可以用:
    $ find /var/adm -mtime +3 -print
  • 清空/var/log目录下所有大于10kb的文件命令:
 #/bin/sh
 LOG_DIR=/var/log/
 find $LOG_DIR -size +文件大小 |while read i;do> $idone
 echo "log empty done"

压缩/解压缩命令详解(更多详细内容参见简报)

1、tar:Tape ARchive 磁带归档
压缩:tar -cvzf destFilename.tar.gz sourceFilename
解压:tar -xvzf sourceFilename.tar.gz (解压到当前目录)
解压:tar -xvzf sourceFilename.tar.gz -C /nihao/wohao/tahao/ (使用-C解压到指定目录)
查看:tar -tvzf sourceFilename.tar.gz
注意事项:
* f 参数必须放在最后,并且后边必须紧跟压缩文件的名字;
* c/x/t 参数只能任选其一,不能多选,也不能不选;
* 默认情况下,我们可以将压缩文档在任何地方解开。例如,可以在/usr/local/src目录下解压/tmp/etc.tar.gz文件,
并且在此目录下解压后的文件存放在了当前目录下;
* f:压缩/解压缩文件名字
c:压缩文件(create) x:解压缩文件 t:查看内容
v:展示压缩/解压缩的过程
z:用gzip来压缩/解压缩文件,加上该选项之后可以将文件进行压缩,但解压时也一定要使用该项进行解压缩
(如果后缀名为.tar.gz ,则解压缩时必须加上参数z)
使用实例:
$tar -czvf /data01/cdrom.tar.gz * : 将当前目录下的所有文件压缩,存放在/data01/cdrom.tar.gz。
$tar -czvf /data01/cdrom.tar.gz *.html : 将当前目录下的所有html文件压缩,存放在/data01/cdrom.tar.gz。
$tar -xvzf /data01/cdrom.tar.gz : 将/data01/cdrom.tar.gz文件解压到当前目录下。
(如果当前目录为/kxsh,则解压后的文件存放在了/kxsh下)
2、zip
压缩:zip -r destFilename.zip sourseFilename
解压:unzip sourceFilename.zip
解压:unzip -od ./cdrom/ cdrom.zip (将cdrom.zip 解压到当前目录下的cdrom子目录中,又重复的直接覆盖。)
注意事项:
zip -r :必选参数,表示递归压缩子目录下所有文件。
unzip -o :不提示的情况下覆盖文件
unzip -d :指明文件解压的目录位置。后面直接跟目录
3、各种压缩格式及解压方法
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz 用 tar –xzf 解压
*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2 用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压

转换文本编码,试试 iconv 吧,或者对于更高级的用途使用 uconv;它支持一些高级的 Unicode 的东西。

# 转换gbk编码文件为utf-8编码文件
iconv -f gbk -t utf-8 index.html > aautf8.html
# 转换为小写并移除所有重音符号(通过扩展和丢弃)
uconv -f utf-8 -t utf-8 -x '::Any-Lower; ::Any-NFD; [:Nonspacing Mark:] >; ::Any-NFC; ' < input.txt > output.txt
  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值