Linux常用命令

Posted 如何好听

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。

1、ls命令

         就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等

         常用参数搭配:

    ls 查看目录中的文件 

         ls -a 列出目录所有文件,包含以.开始的隐藏文件

      ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

         ls -A 列出除.及..的其它文件

         ls -r 反序排列

         ls -t 以文件修改时间排序

         ls -S 以文件大小排序

         ls -h 以易读大小显示

         实例:

         (1) 按易读方式按时间反序排序,并显示文件详细信息

         ls -lhrt

         (2) 按大小反序显示文件详细信息

         ls -lrS

         (3)列出当前目录中所有以“t”开头的目录的详细内容

         ls -l t*

         (4) 列出文件绝对路径(不包含隐藏文件)

         ls | sed "s:^:`pwd`/:"

         (5) 列出文件绝对路径(包含隐藏文件)

         find $pwd -maxdepth 1 | xargs ls -ld

 

2、cd命令

         (changeDirectory),命令语法:cd [目录名]。说明:切换当前目录至dirName

         实例:

         cd /home     进入 ‘/ home‘ 目录‘ 

    cd ..       返回上一级目录 

         cd ~       进入"家"目录

       cd -       返回上次所在的目录 

3、pwd命令

         查看当前工作目录路径

         实例:

         (1)查看当前路径

         pwd

         (2)查看软链接的实际路径

         pwd -P

4、mkdir命令

         创建文件夹

         实例:

         (1)当前工作目录下创建名为test的目录

         mkdir test

         (2)在var目录下创建路径为/www/project的目录,若不存在,则创建

         mkdir -p /var/www/project

5、rm命令

         删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用              rm 来删除文件,通常仍可以将该文件恢复原状

         rm [选项] 文件…

         实例:

         (1)删除任何.log文件;删除前逐一询问确认

         rm -i *.log

         (2)删除test子目录及子目录中所有档案删除,并且不用一一确认

         rm -rf test

         (3)删除以-f开头的文件

         rm -- -f*

6、rmdir命令

         从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对其父目录的写权限。

         注意:不能删除非空目录

         实例:

         (1)当parent子目录被删除后使它也成为空目录的话,则顺便一并删除

         rmdir -p parent/child/child11

  (2)删除一个叫做 ‘dir1‘ 的目录‘ 

    rmdir dir1 

7、mv命令

         移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。      

         当第二个参数为目录时,可刚多个文件以空格分隔作为第一参数,移动多个文件到参数2指定的目录中

         实例:

         (1)将文件test.log重命名为test1.txt

         mv test.log test1.txt

         (2)将文件log1.txt,log2.txt,log3.txt移动到根的test3目录中

         mv llog1.txt log2.txt log3.txt /test3

         (3)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖

         mv -i log1.txt log2.txt

         (4)移动当前文件夹下的所有文件到上一级目录

         mv * ../

8、cp命令

         将源文件复制至目标文件,或将多个源文件复制至目标目录。

         注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖!

         -i 提示

         -r 复制目录及目录内所有项目

         -a 复制的文件与原文件时间一样

    cp -a dir1 dir2    复制一个目录 (常用)

         实例:

         (1)复制a.txt到test目录下,保持原文件时间,如果原文件存在提示是否覆盖

         cp -ai a.txt test

         (2)为a.txt创建一个链接(快捷方式)

         cp -s a.txt link_a.txt

9、打包解压文件(tar)

         用来压缩和解压文件。tar本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。

         弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件

         常用参数:

         -c 建立新的压缩文件

         -f 指定压缩文件

         -r 添加文件到已经压缩文件包中

         -u 添加改了和现有的文件到压缩包中

         -x 从压缩包中抽取文件

         -t 显示压缩文件中的内容

         -z 支持gzip压缩

         -j 支持bzip2压缩

         -Z 支持compress解压文件

         -v 显示操作过程

        不同格式打包解压

  1.zip格式

    zip file1.zip file1         创建一个zip格式的压缩包 
    zip -r file1.zip file1 file2 dir1    将几个文件和目录同时压缩成一个zip格式的压缩包 
    unzip file1.zip          解压一个zip格式压缩包

  2.rar格式

    rar a file1.rar test_file       创建一个叫做 ‘file1.rar‘ 的包 

    rar a file1.rar file1 file2 dir1   同时压缩 ‘file1‘, ‘file2‘ 以及目录 ‘dir1‘ 

    rar x file1.rar         解压rar包

    unrar x file1.rar        解压rar包 

  3.bz2格式

    bzip2 file1           压缩一个叫做 ‘file1‘ 的文件 

    bunzip2 file1.bz2        解压一个叫做 ‘file1.bz2‘的文件 

    tar -jcvf archive.tar.bz2 dir1   创建一个bzip2格式的压缩包 

    tar -jxvf archive.tar.bz2     解压一个bzip2格式的压缩包 

  4.gz格式 

    gzip file1        压缩一个叫做 ‘file1‘的文件

    gzip -9 file1       最大程度压缩 

    gunzip file1.gz      解压一个叫做 ‘file1.gz‘的文件 

    tar -zcvf archive.tar.gz dir1   创建一个gzip格式的压缩包 

    tar -zxvf archive.tar.gz     解压一个gzip格式的压缩包 

         tar实例:

         (1)将文件全部打包成tar包

         tar -cvf log.tar 1.log,2.log 或tar -cvf log.*

         (2)将/etc下的所有文件及目录打包到指定目录,并使用gz压缩

         tar -zcvf /tmp/etc.tar.gz /etc

         (3)查看刚打包的文件内容(一定加z,因为是使用gzip压缩的)

         tar -ztvf /tmp/etc.tar.gz

         (4)要压缩打包/home, /etc ,但不要 /home/dmtsai

         tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

10、ps命令

         ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用top

         linux上进程有5种状态:

         1. 运行(正在运行或在运行队列中等待)

         2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

         3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

         4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

         5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

         ps工具标识进程的5种状态码:

         D 不可中断 uninterruptible sleep (usually IO)

         R 运行 runnable (on run queue)

         S 中断 sleeping

         T 停止 traced or stopped

         Z 僵死 a defunct (”zombie”) process

         命令参数:

         -A 显示所有进程

         a 显示所有进程

         -a 显示同一终端下所有进程

         c 显示进程真实名称

         e 显示环境变量

         f 显示进程间的关系

         r 显示当前终端运行的进程

         -aux 显示所有包含其它使用的进程

         实例:

         (1)显示当前所有进程环境变量及进程间关系

         ps -ef

         (2)显示当前所有进程

         ps -A

  (3)显示当前状态为R的进程

         ps r

         (4)与grep联用查找某进程

         ps -aux | grep apache

         (5)找出与 cron 与 syslog 这两个服务有关的 PID 号码

         ps aux | grep ‘(cron|syslog)‘

11、kill命令

         发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

         常用参数:

         -l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

         -a  当处理当前进程时,不限制命令名和进程号的对应关系

         -p  指定kill 命令只打印相关进程的进程号,而不发送任何信号

         -s  指定发送信号

         -u  指定用户

         实例:

         (1)先使用ps查找进程pro1,然后用kill杀掉

         kill -9 $(ps -ef | grep pro1)

12、用户和群组及文件的权限

  用户群组:

  groupadd group_name       创建一个新用户组 

  groupdel group_name       删除一个用户组 

  groupmod -n new_group_name old_group_name   重命名一个用户组 

  useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1     创建一个属于 "admin" 用户组的用户 

  useradd user1            创建一个新用户 

  userdel -r user1           删除一个用户 ( ‘-r‘ 排除主目录) 

  usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1   修改用户属性 

  passwd           修改口令 

  passwd user1       修改一个用户的口令 (只允许root执行) 

  chage -E 2005-12-31 user1     设置用户口令的失效期限 

  pwck          检查 ‘/etc/passwd‘ 的文件格式和语法修正以及存在的用户 

  grpck         检查 ‘/etc/passwd‘ 的文件格式和语法修正以及存在的群组 

  newgrp group_name     登陆进一个新的群组以改变新创建文件的预设群组 


  文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消 
  ls -lh               显示权限 

  ls /tmp | pr -T5 -W$COLUMNS   将终端划分成5栏显示 

  chmod ugo+rwx directory1     设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 

  chmod go-rwx directory1       删除群组(g)与其他人(o)对目录的读写执行权限 

  chown user1 file1         改变一个文件的所有人属性 

  chown -R user1 directory1     改变一个目录的所有人属性并同时改变改目录下所有文件的属性 

  chgrp group1 file1         改变文件的群组 

  chown user1:group1 file1       改变一个文件的所有人和群组属性 

  find / -perm -u+s           罗列一个系统中所有使用了SUID控制的文件 

  chmod u+s /bin/file1     设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限 

  chmod u-s /bin/file1     禁用一个二进制文件的 SUID位 

  chmod g+s /home/public     设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的 

  chmod g-s /home/public     禁用一个目录的 SGID 位 

  chmod o+t /home/public     设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 

  chmod o-t /home/public     禁用一个目录的 STIKY 位 

13、chmod命令

         用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

         每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用ls -l test.txt查找

         以文件log2012.log为例:

         -rw-r--r-- 1 root root 296K 11-13 06:03 log2012.log

         第一列共有10个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。从第二个字符开始到第十个共9个字符,3个字符一组,分别表示了3组用户对文件或者目录的权限。权限字符用横线代表空许可,r代表只读,w代表写,x代表可执行。

         常用参数:

         -c 当发生改变时,报告处理信息

         -R 处理指定目录以及其子目录下所有文件

         权限范围:

         u :目录或者文件的当前的用户

         g :目录或者文件的当前的群组

         o :除了目录或者文件的当前用户或群组之外的用户或者群组

         a :所有的用户及群组

 

         权限代号:

         r :读权限,用数字4表示

         w :写权限,用数字2表示

         x :执行权限,用数字1表示

         - :删除权限,用数字0表示

         s :特殊权限

         实例:

         (1)增加文件t.log所有用户可执行权限

         chmod a+x t.log

         (2)撤销原来所有的权限,然后使拥有者具有可读权限,并输出处理信息

         chmod u=r t.log -c

         (3)给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限

         chmod 751 t.log -c(或者:chmod u=rwx,g=rx,o=x t.log -c)

         (4)将test目录及其子目录所有文件添加可读权限

         chmod u+r,g+r,o+r -R text/ -c

14、chown命令

         chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符

         -c 显示更改的部分的信息

         -R 处理指定目录及子目录

         实例:

         (1)改变拥有者和群组 并显示改变信息

    chown -c mail:mail log2012.log

         (2)改变文件群组

         chown -c :mail t.log

         (3)改变文件夹及子文件目录属主及属组为mail

         chown -cR mail: test/

         (4)改变文件

15、文件的特殊属性

  chattr +a file1   只允许以追加方式读写文件 

  chattr +c file1   允许这个文件能被内核自动压缩/解压 

  chattr +d file1   在进行文件系统备份时,dump程序将忽略这个文件 

  chattr +i file1   设置成不可变的文件,不能被删除、修改、重命名或者链接 

  chattr +s file1   允许一个文件被安全地删除 

  chattr +S file1   一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘 

  chattr +u file1   若文件被删除,系统会允许你在以后恢复这个被删除的文件 

  lsattr       显示特殊的属性 

16、RPM 包 - (Fedora, Redhat及类似系统)

  RPM常用选项:

  -i:表示安装。

  -v, -vv, -vvv:表示详细信息。

  -h:以"#"号显示安装进度。

  -q:查询指定包名。

  -e:卸载指定包名。

  -U:升级软件,若未软件尚未安装,则安装软件。

  -F:升级软件。

  -V:对RPM包进行验证。

  --nodeps:忽略依赖关系。

  --query:查询指定包名。同-q选项。

  --hash:同-h。

  --install:表示安装,同-i选项。

  --test:仅作测试,不真正执行,可用于测试安装,测试卸载。

  --replacepkgs:重新安装。替换原有的安装。

  --force:忽略软件包及文件的冲突。

  --initdb:新建RPM的数据库。

  --rebuilddb:重建RPM的数据库。

  --percent:以百分比的形式输出安装的进度。

  RPM包的查询:

  rpm -q:查询某一个RPM包是否已安装

  rpm -qi:查询某一个RPM包的详细信息

  rpm -ql:列出某RPM包中所包含的文件。

  rpm -qf:查询某文件是哪个RPM包生成的。






以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章

linux常用命令多少个

Linux第二章-Linux常用命令

Linux文本操作常用命令

:常用工具命令第23节:常用命令 - Linux命令

Linux常用命令

Linux部署项目常用命令