面试--常用的Linux命令

Posted

tags:

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

 ls  

ls -la

参数: 
-a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~ 
-A :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~ 
-d :仅列出目录本身,而不是列出目录内的档案数据 
-f :直接列出结果,而不进行排序 (ls 预设会以档名排序!) 
-F :根据档案、目录等信息,给予附加数据结构,例如: 
*:代表可执行档; /:代表目录; =:代表 socket 档案; |:代表 FIFO 档案; 
-h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来; 
-i :列出 inode 位置,而非列出档案属性; 
-l :长数据串行出,包含档案的属性等等数据; 
-n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在账号管理提到!) 
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小; 
-R :连同子目录内容一起列出来; 
-S :以档案容量大小排序! 
-t :依时间排序 

用户和组的详细讲解:http://www.cnblogs.com/xd502djj/archive/2011/11/23/2260094.html

管理用户(user)的工具或命令;

useradd    注:添加用户 
adduser    注:添加用户
passwd     注:为用户设置密码
usermod  注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov       注:同步用户从/etc/passwd 到/etc/shadow 
pwck         注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv  注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger        注:查看用户信息工具
id              注:查看用户的UID、GID及所归属的用户组
chfn          注:更改用户信息工具
su             注:用户切换工具
sudo         注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo      注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit  注:和sudo 功能差不多;

2)管理用户组(group)的工具或命令;

groupadd  注:添加用户组;
groupdel         注:删除用户组;
groupmod        注:修改用户组信息
groups     注:显示用户所属的用户组
grpck
grpconv   注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv   注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;
 

useradd -g police tom                     //新建tom用户并增加到police工作组

注::-g 所属组 -d 家目录 -s 所用的SHELL

usermod -G groupname username  或者:gpasswd -a user group    //给已有的用户增加工作组

关闭用户账号:passwd peter –l

重新释放:passwd peter –u

永久性删除用户账号 userdel peter

groupdel peter

usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)

从组中删除用户

编辑/etc/group 找到GROUP1那一行,删除 A

或者用命令

gpasswd -d A GROUP

显示用户信息

id user

cat /etc/passwd

 cat   查看文件内容

       > 表示新内容覆盖原文件

       >>表示新内容追加到文件后

 more 分页显示

 less

 很重要的命令:

 history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
  参数:
  n :数字,要列出最近的若干命令列表
  -c :将目前的 shell 中的所有 history 内容全部消除
  -a :将目前新增的 history 指令新增入 histfiles 中,若没有加 histfiles ,则预设写入 ~/.bash_history
  -r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
  -w :将目前的 history 记忆内容写入 histfiles

 !!     # 执行最后一条指令  

 !988      # 执行第988条指令

 !ps    #执行历史命令以ps开头的命令

 history 10     # 列出最后10条执行的命令 

 history  | tail -4   #

 alias ls=‘ls -l --color=tty‘    #给命令起别名

 type ll    #

 unalias ll   #取消命令别名

  

 find   ( find ./ -name file1 -print ,从当前目录向下查找名为 file1 的文件)

 mkdir  ( mkdir  dir1 ,新建目录 dir1 )  

 mv     ( mv file1  /home/haowen/ ,将文件移动到目录 /home/haowen/下 

 ,相当于 window 剪切 )

           ( mv file1 filenew1 ,将文件名改为 filenew1 )

参数: 
-f :force 强制的意思,强制直接移动而不询问; 
-i :若目标档案 (destination) 已经存在时,就会询问是否覆盖! 
-u :若目标档案已经存在,且 source 比较新,才会更新 (update)

pwd   Print Working Directory  ( pwd  ,显示当前路径 ) pwd -P 显示出确实的路径,而非使用连接(link)路径

touch 建立一个空的档案,将某个档案日期修订为目前 (mtime 与 atime) 

locate 从数据库列出某个档案的完整档名

find ./ -name index.jsp 查找当前目录下名称为index.jsp的文件

 grep   ( grep "mobile=13712345678"  logfile1 ,在logfile1中 
          搜索查找内容 "mobile=13712345678" )
 ping   ( ping 61.129.78.9 ,ping www.163.com ,测试网络连接是否正常 )
 ifconfig  ( ifconfig ,查看本机 IP地址,子网掩码等 )
 ps    ( ps -aux 查看系统中已经启动的进程, ps -aux | grep programe1 ,
         查看程序1是否正在运行
 kill  ( kill -9  2325 ,杀死进程号为 2325的进程, 
         killall  programe1 ,杀死programe1进程 )
 reboot ( 重启系统 )

 chown  ( chown -R haowen .将当前目录下所有文件和目录权限赋给 haowen 
          ,-R 包括子目录)
 chgrp -R mysql . (把当前文件夹变更到mysql群组,mysql是已经有的群组)变更文件或目录的所属群组。

chmod:
 Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。
 利用 chmod 可以藉以控制档案如何被他人所调用。   
 + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 
  r 表示可读取4,w 表示可写入2,x 表示可执行1,
 
 1. 将档案 file1.txt 设为所有人皆可读取 : 
   chmod ugo+r file1.txt   或  chmod 444 file1.txt
 
 2. 将文件 file2 设为属主可读写执行,Group,other ,只能读
   chmod 744 file2   ( 7=> "111" ,4=>"100" 二进制 )
   
 3. 将文件 file3 设为属主可读写执行,Group,other ,无权限操作不能读写执行)

  chmod 700 file3   ( 7=> "111" ,0=>"000"  )

   
   其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 
  
  r=4,w=2,x=1 若要rwx属性则4+2+1=7; 若要rw-属性则4+2=6;
                  若要r-x属性则4+1=5

finger 显示关于系统用户的信息
netstat -a     看网络的联机状态: 
ntsysv 设置服务随系统启动时同时启动

 系统相关的命令:---
 dmesg : 例如 dmesg | more  显示系统的诊断信息,操作系统版本号,物理内及其它信息
 df : 例如 df -h 显示硬盘空间
 du :   查看目录中各级子目录使用的硬盘空间
 free:  查看系统内存,虚拟内存(交换空间)的大小占用情况
 top: 动态实时查看系统内存,CPU,进程

 hostname 查看主机名:
 hostname 新主机名 修改主机名(临时的,重启就没了):

 mount
  在mount命令不使用任何选项和参数的时候将显示当前linux系统中以挂载的文件系统信息。

 mount Cttype dev dir
  光盘文件系统类型是:iso9660;dev表示需要挂载文件系统的设备名称,光盘驱动器的设备名称是/dev/cdrom; dir表示挂载点,即挂载到的文件目录路径。

 

名称:crontab  (任务调度)
  使用权限:所有使用者 
  使用方式:
  crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e } 
  说明:
  crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。 
  参数:

  -e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) 
  -r:删除目前的时程表 
  -l:列出目前的时程表 

  时程表的格式如下:
  f1 f2 f3 f4 f5 program 

  其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。 
  当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推 
  当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推 
  当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推 
  当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推 
  使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 
  例子:
  每月每天每小时的第 0 分钟执行一次 /bin/ls:
  0 7 * * * /bin/ls 

  在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup:
  0 6-12/3 * 12 * /usr/bin/backup 

  周一到周五每天下午 5:00 寄一封信给 [email protected]:
  0 17 * * 1-5 mail -s "hi" [email protected] < /tmp/maildata 

  每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 
  20 0-23/2 * * * echo "haha" 

  注意:
  当程式在你所指定的时间执行后,系统会寄一封信给你,显示该程式执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

名称:sleep 
  使用权限:所有使用者 
  使用方式:sleep [--help] [--version] number[s**d] 
  说明:sleep 可以用来将目前动作延迟一段时间 
  参数说明:
  --help:显示辅助讯息 
  --version:显示版本编号 
  number:时间长度,后面可接 s,m,h 或 d 
  其中 s 为秒,m 为 分钟,h 为小时,d 为日数 
  例子:
  显示目前时间后延迟 1 分钟,之后再次显示时间:
  date;sleep 1m;date 

名称: finger 
  使用权限: 所有使用者 
  使用方式: finger [options] user[@address] 
  说明:finger 可以让使用者查询一些其他使用者的资料。
    范例:下列指令可以查询本机管理员的资料: 
  finger root 

名称:last 
  使用权限:所有使用者 
  使用方式:shell>> last [options] 
  说明:显示系统开机以来获是从每月初登入者的讯息 
  把计: 
  -R 省略 hostname 的栏位 
  -num 展示前 num 个 
  username 展示 username 的登入讯息 
  tty 限制登入讯息包含终端机代号 
  范例: 

  shell>> last -R -2 

名称:write 
  使用权限:所有使用者 
  使用方式:
  write user [ttyname] 
  说明:传讯息给其他使用者 
  把计:
  user:预备传讯息的使用者帐号 
  ttyname:如果使用者同时有两个以上的 tty 连线,可以自行选择合适的 tty 传讯息 
  例子.1:
  传讯息给 Rollaend,此时 Rollaend 只有一个连线:
  write Rollaend 
    接下来就是将讯息打上去,结束请按 ctrl+c 

  例子.2 :传讯息给 Rollaend,Rollaend 的连线有 pts/2,pts/3:
  write Rollaend pts/2

  接下来就是将讯息打上去,结束请按 ctrl+c 
  注意:若对方设定 mesg n,则此时讯席将无法传给对方 

 

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

linux 常用命令汇总(面向面试)

面试--常用的Linux命令

Linux面试必备20个常用命令

linux常用命令大全(linux基础命令+命令备忘录+面试复习)

最常用的 Linux 命令都不会,你怎么敢去面试?

Linux常用命令总结-软件测试面试专用