linux 常用命令1

一、目录操作命令

1、pwd 查看当前目录

[root@localhost ~]# pwd
/root

2、cd 更改用户当前目录

切换到home目录

[root@localhost ~]# cd /home
[root@localhost home]# pwd
/home

切换到当前目录的上一级目录

[root@localhost home]# cd ..
[root@localhost /]# pwd
/

切换到当前用户的家目录

[root@localhost /]# cd ~
[root@localhost ~]# pwd
/root

将当前目录切换到上一个工作目录

[root@localhost home]# cd -
/root

将当前目录切换到用户root的家目录

[root@localhost ~]# cd ~root
[root@localhost ~]# pwd
/root

3、ls 显示目录内容

显示当前目录的内容

[root@localhost test]# ls
file1  file2

显示boot目录的内容

[root@localhost home]# ls /boot 
config-2.6.18-128.el5      lost+found                 System.map-2.6.18-128.el5
grub                       message                    vmlinuz-2.6.18-128.el5
initrd-2.6.18-128.el5.img  symvers-2.6.18-128.el5.gz

使用长格式显示boot目录的内容

[root@localhost home]# ls -l /boot
婊璁?6118
-rw-r--r-- 1 root root   67937 2009-01-22 config-2.6.18-128.el5
drwxr-xr-x 2 root root    1024 09-03 03:16 grub
-rw------- 1 root root 3203403 09-03 02:54 initrd-2.6.18-128.el5.img
drwx------ 2 root root   12288 09-03 02:44 lost+found
-rw-r--r-- 1 root root   80032 2009-03-13 message
-rw-r--r-- 1 root root  101127 2009-01-22 symvers-2.6.18-128.el5.gz
-rw-r--r-- 1 root root  931457 2009-01-22 System.map-2.6.18-128.el5
-rw-r--r-- 1 root root 1826484 2009-01-22 vmlinuz-2.6.18-128.el5

使用长格式使用k,M,G单位显示/boot目录的内容

[root@localhost home]# ls -lh /boot
婊璁?6.0M
-rw-r--r-- 1 root root  67K 2009-01-22 config-2.6.18-128.el5
drwxr-xr-x 2 root root 1.0K 09-03 03:16 grub
-rw------- 1 root root 3.1M 09-03 02:54 initrd-2.6.18-128.el5.img
drwx------ 2 root root  12K 09-03 02:44 lost+found
-rw-r--r-- 1 root root  79K 2009-03-13 message
-rw-r--r-- 1 root root  99K 2009-01-22 symvers-2.6.18-128.el5.gz
-rw-r--r-- 1 root root 910K 2009-01-22 System.map-2.6.18-128.el5
-rw-r--r-- 1 root root 1.8M 2009-01-22 vmlinuz-2.6.18-128.el5

4、mkdir 创建目录

在当前目录下建立一个名为test的目录

[root@localhost test]# mkdir test
[root@localhost test]# ls
test

在根目录下建立一个名为test的目录

[root@localhost home]# mkdir /test
[root@localhost home]# cd ..
[root@localhost /]# ls
bin   dev  home  lost+found  misc  net  proc  sbin     srv  test  usr
boot  etc  lib   media       mnt   opt  root  selinux  sys  tmp   var

在test下一次创建多个目录

[root@localhost test]# mkdir file1 file2
[root@localhost test]# ls
file1  file2

递归创建目录

[root@localhost test]# mkdir -p file1/file2
[root@localhost test]# ls
file1
[root@localhost test]# cd file1
[root@localhost file1]# ls
file2

5、tree 以树状图显示目录内容

树状图显示/boot目录内容

[root@localhost home]# tree /boot
/boot
|-- System.map-2.6.18-128.el5
|-- config-2.6.18-128.el5
|-- grub
|   |-- device.map

树状图显示boot目录下的以.conf结尾的文件

[root@localhost home]# tree /boot/ -P *.conf
/boot/
|-- grub
|   `-- grub.conf
`-- lost+found

以树状图显示/bin目录内容及文件类型,但是只显示.conf结尾的文件

[root@localhost home]# tree -F -P t* /bin/
/bin/


0 directories, 0 files


二、文件操作命令

1、touch 改变文件或目录时间

建立一个新文件

[root@localhost test]# touch text.txt

将文件的读取时间修改为当前时间

[root@localhost test]# touch -a ./text.txt

2、file 识别文件类型

显示文件类型

[root@localhost test]# file text.txt
text.txt: empty

显示文件类型但是不显示文件名

[root@localhost test]# file -b text.txt
empty

3、cp 复制文件或目录

将文件复制到家目录

[root@localhost test]# cp text.txt ~

将文件夹复制到家目录

[root@localhost home]# cp -r ./test ~

将文件复制另一个文件夹内并改名

[root@localhost test]# cp text.txt   /root/abc.txt

将.txt结尾的文件复制到另一个文件夹内

[root@localhost test]# cp /home/test/*.txt  /home/test/file1

4、rm 删除文件或目录

删除a.txt文件

[root@localhost test]# rm a.txt

强制删除file1目录

[root@localhost test]# rm -rf file1

5、移动或更新现有的文件或目录

将文件夹f1移动到文件夹f2中

[root@localhost test]# mv f1 f2

把文件名text.txt 修改为abc.txt

[root@localhost test]# mv text.txt abc.txt

6、ln 链接文件或目录(相当于windows中的快捷方式)

为目录f创建符号链接文件g

[root@localhost test]# ln -s /home/test/f   /home/test/g


三、查找操作命令

1、locate 查找文件或目录

locate命令查找速度非常快,因为该命令不是实际在硬盘中每个目录区查找文件,而是保存在硬盘上目录结构和文件名的数据库中查找,所以在新增,修改,删除文件盒目录,可能无法找到,这时候需要更新数据库命令更新

[root@localhost test]# updatedb

查找名字问abc.txt的文件或目录

[root@localhost test]# locate abc.txt
/home/test/abc.txt

查找名称包含abc的文件或目录

[root@localhost test]# locate *abc*
/home/test/abc.txt

2、which 查找文件

该命令用于查找文件,但是该命令只会在PATH环境变量中定义的路径及命令别名中查找。

显示PATH环境变量中定义的路径

[root@localhost ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

在环境变量中定义的路径及命令别名中查找ll

[root@localhost ~]# which ll
alias ll='ls -l --color=tty'
        /bin/ls

3、whereis 查找文件

查找grub及其帮助文件所在的目录

[root@localhost ~]# whereis grub
grub: /sbin/grub /etc/grub.conf /usr/share/grub /usr/share/man/man8/grub.8.gz

查找grub帮助文件所在的目录

[root@localhost ~]# whereis -m grub
grub: /usr/share/man/man8/grub.8.gz

4、find 查找文件或目录

列出当前目录下所有子目录及文件的名称

[root@localhost ~]# find

查找当前目录及子目录下以t开头的文件或目录

[root@localhost home]# find -name t*
./test

查找当前目录及子目录下以t或f开头的文件或目录,-o表示前后两个条件满足一个就显示

[root@localhost home]# find -name t* -o -name f*
./test
./test/f2
./test/f2/f1
./test/f
./test/f/f

查找home目录下大于1M的文件

[root@localhost home]# find /home -size +1M


四、压缩与归档命令

1、gzip压缩文件

压缩abc.txt文件,压缩后原文件就没有了

[root@localhost test]# gzip abc.txt
[root@localhost test]# ls
abc.txt.gz

压缩abc.txt文件,给压缩文件定义一个新的名称,而保留原来的文件

[root@localhost test]# gzip -c abc.txt>new.gz
[root@localhost test]# ls
abc.txt  new.gz

解压abc.txt.gz文件

[root@localhost test]# gzip -d abc.txt.gz
[root@localhost test]# ls
abc.txt

2、bzip2压缩文件

压缩abc.txt文件,压缩后原来的文件就没有了

[root@localhost test]# bzip2 abc.txt
[root@localhost test]# ls
abc.txt.bz2

解压abc.txt文件

[root@localhost test]# bzip2 -d abc.txt.bz2
[root@localhost test]# ls
abc.txt

3、tar 压缩备份

可以将多个文件合并为一个文件

将dir目录打包并使用gzip方式压缩,打包后的文件名是dir_bak.tar.gz

[root@localhost test]# tar -cvzf dir_bak.tar.gz dir
dir/
dir/abc.txt
[root@localhost test]# ls
dir  dir_bak.tar.gz

将dir_bak.tar.gz文件解压到当前目录

[root@localhost test]# tar -xvzf dir_bak.tar.gz
dir/
dir/abc.txt
[root@localhost test]# ls
dir  dir_bak.tar.gz

将dir目录打包并使用bzip2方式压缩,打包后的文件名是dir_bak.tar.bz2

[root@localhost test]# tar -cvjf dir_bak.tar.bz2 dir
dir/
dir/abc.txt
[root@localhost test]# ls
dir  dir_bak.tar.bz2

将bak.tar.bz2解压到当前目录

[root@localhost test]# tar -xvjf dir_bak.tar.bz2
dir/
dir/abc.txt
[root@localhost test]# ls
dir  dir_bak.tar.bz2

4、zip文件压缩与解压

将当前目录下的dir目录压缩成dir_bak.zip

[root@localhost test]# zip dir_bak dir
  adding: dir/ (stored 0%)
[root@localhost test]# ls
dir  dir_bak.zip

将当前目录下的dir目录和文件子目录压缩成dir_bak.zip

[root@localhost test]# zip -r dir_bak dir/
  adding: dir/ (stored 0%)
  adding: dir/abc.txt (stored 0%)
[root@localhost test]# ls
dir  dir_bak.zip

将dir_bak.zip解压缩到当前目录

[root@localhost test]# unzip dir_bak.zip
Archive:  dir_bak.zip
   creating: dir/
 extracting: dir/abc.txt             
[root@localhost test]# ls
dir  dir_bak.zip


五、文件查看命令

1、cat显示文件内容

显示httpd.conf文件的内容

[root@localhost conf]# cat httpd.conf

带行号显示文件内容

 cat -b httpd.conf

2、head 显示文件内容的最前部分

显示文件的前两行

[root@localhost conf]# head -2 httpd.conf

3、tail显示文件内容的末尾部分

显示文件的默认两行

[root@localhost conf]# tail -2 httpd.conf

4、more逐页显示文件内容

回车键向下滚动

空格键向上翻一屏幕

b键向下翻一屏幕

q键退出

[root@localhost conf]# more httpd.conf

5、less 逐页显示文件内容

回车键向下滚动

空格键向上翻一屏幕

b键向下翻一屏幕

q键退出

查看文件内容

[root@localhost conf]# less httpd.conf

查看文件

[root@localhost etc]# ll /etc | less

6、grep查找并显示符合条件的信息

显示 /etc/httpd/conf/httpd.conf文件中包含Listen 的行

[root@localhost conf]# grep Listen /etc/httpd/conf/httpd.conf
对目录test中所有扩展名为.txt的文件中寻找并显示包含Listen 的行,查找时不区分大小写

[root@localhost test]# grep -I Listen /home/test/*.txt

在当前目录中查找包含字符串Listen 的文件,在查找过程中遇到子目录时,并不查找此目录中的文件

[root@localhost test]# grep -d skip Listen


六、用户及组管理

查看用户信息

[root@localhost etc]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

相关配置文件

/etc/default/useradd文件用于定义建立用户时的规则

less /etc/login.defs文件用于定义建立用户时相关选项的默认值

/etc/skel文件,子啊linux系统中建立用户时,所建立用户的登录脚本,家目录等所有信息都是在这个目录中的内容为模板

less /etc/passwd文件保存了系统中所有的用户信息,每一行代表一个用户

[root@localhost etc]# less /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

每一行有七列,用;隔开

第一列:用户名

第二列:密码,实际密码存在了/etc/shadow中

第三列:UID

第四列:GID

第五列:用户说明信息

第六列:家目录

第七列:shell,默认是/bin/bash,禁止用户登录的方式就是为用户指定/sbin/nologin的登录shell

/etc/shadow文件中存储系统中所有用户的密码

[root@localhost etc]# less /etc/shadow
root:$1$Ueeeea$PfffffdddsB/dddssfffss40.C1:17046:0:99999:7:::
bin:*:17046:0:99999:7:::

一共有九列

第一列:用户名

第二列:密码

第三列:最近更动密码的日期,该列记录了用户最后一次修改密码的日期。

第四列:密码最短更改时间,记录了对应用户最短需要几天才可以被修改密码,比如设置10天,那么当用户修改密码后十天内不能修改密码。

第五列:密码最长使用时间,指定了一个密码多少天后必须修改,否则对用用户将被禁用。

第六列:密码更改警告时间:linux系统会依据这个字段的配置天数发出警告,提醒再过指定的时间后密码就会失效,比如5,表示当离密码最长使用时间还有5天时向用户发出警告。

第七列:密码过期的时间,如果用户过了警告时间还没有更改密码使得密码失效后,还可以用这个密码在指定的天数内进行登录。比如指定7,表示密码过期后7天内还可以登录。

第八列:用户失效日期:在到达用户失效时间指定的天数后,用户将无法使用,这个日期和最近更动密码的日期一样。

第九列:保留,最后一个字段是保留的,目录还没有作用


/etc/group文件保存了系统用户组信息

[root@localhost etc]# less /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm

一共四列

第一列:组名称

第二列:组密码,x表示组密码,实际保存在/etc/gshadow文件中,对于目前linux系统组密码已经没有作用。

第三列:GID,该组对应的GID

第四列:组成员,将该组作为额外组的所有用户。


1、useradd 建立用户

建立一个mm用户

[root@localhost ~]# useradd mm

建立一个mm用户,并制定用户说明信息为"desc"

[root@localhost ~]# useradd mm -c desc

建立一个mm用户,并制定其登陆脚本为/sbin/nologin(该用户不能登陆)

[root@localhost ~]# useradd mm -s /sbin/nologin

建立一个mm用户,并指定其UID为999

[root@localhost ~]# useradd mm -u 999

建立一个mm用户,并指定初始组为group1

[root@localhost ~]# useradd mm -g group1

建立一个mm用户,并指定家目录为/home/her

[root@localhost ~]# useradd mm -d /home/her

2、passwd 更改用户密码

更改用户mm的密码

[root@localhost ~]# passwd mm

更改当前用户密码

[root@localhost ~]# passwd

将用户mm锁定

[root@localhost ~]# passwd -l mm

3、usermod更改用户信息

将用户mm的说明信息修改为24

[root@localhost ~]# usermod -c 24 mm

将用户mm原有的额外组删除并为其增加一个名为group1的额外组

[root@localhost ~]# usermod -G group1 mm

为mm用户增加一个名为group2的新额外组

[root@localhost ~]# usermod -aG group2 mm

3、userdel删除用户

删除名为mm的用户,但保留其家目录

[root@localhost ~]# userdel mm

删除名为mm的用户,同时删除其家目录

[root@localhost ~]# userdel -r mm

4、建立用户组

建立用户组为group1的用户组

[root@localhost ~]# groupadd group1

建立用户组group2 并且指定gid 为999

[root@localhost ~]# groupadd -g 999 group2

5、groupmod修改用户组的名称或gid

修改用户组group1 为group3 gid修改为998

[root@localhost ~]# groupmod group1 -n group3 -g 998

6、groupdel删除用户组

删除用户组group3

[root@localhost ~]# groupdel group3

7、chage修改用户密码

修改root用户密码策略

[root@localhost ~]# chage root

正在为 root 修改年龄信息
请输入新值,或直接敲回车键以使用默认值


        最小密码年龄 [0]: 
        最大密码年龄 [99999]: 
        最近一次密码修改时间 (YYYY-MM-DD) [2016-09-02]: 
        密码过期警告 [7]: 
        密码失效 [-1]: 
        帐户过期时间 (YYYY-MM-DD) [1969-12-31]: 

8、finger[-lmsp]查找并显示用户信息

[root@localhost ~]# finger root
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since 四  1月 19 20:07 (CST) on :0 (messages off)
On since 四  1月 19 20:08 (CST) on pts/1 from :0.0
   15 minutes 33 seconds idle
On since 四  1月 19 20:09 (CST) on pts/2 from 192.168.0.103
New mail received 四 11月 17 04:02 2016 (CST)
     Unread since 六  9月  3 18:17 2016 (CST)
No Plan.

[root@localhost ~]# finger root -l
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since 四  1月 19 20:07 (CST) on :0 (messages off)
On since 四  1月 19 20:08 (CST) on pts/1 from :0.0
   18 minutes 13 seconds idle
On since 四  1月 19 20:09 (CST) on pts/2 from 192.168.0.103
New mail received 四 11月 17 04:02 2016 (CST)
     Unread since 六  9月  3 18:17 2016 (CST)
No Plan.

9、w  显示当前登录系统的用户及用户进程信息

w[-fhlsu] [用户名]

[root@localhost ~]# w

当前时间      系统启动到现在的时间  登录用户的数量  系统在最近1秒,5秒,15秒的平均负载
 20:32:08 up 26 min,  3 users,  load average: 0.00, 0.02, 0.13

登录账号  终端名称   远程主机名  登录时间  空闲时间  JCPU  PCPU 
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT 

root     :0       -                20:07   ?xdm?  14.02s  0.40s /usr/bin/gnome-
root     pts/1    :0.0             20:08   23:36   0.05s  0.05s bash
root     pts/2    192.168.0.103    20:09    0.00s  0.18s  0.03s w

JCPU时间指的是和该终端TTY连接的所有进程占用的时间,这个时间里并不包括过去后台作业时间,但却包括当前正在运行的后台作业所占用的时间。

PCPI时间指的是当前进程所占用的时间。

10、who显示当前登录系统的用户信息

who[ami] [-bdHlpqru]

显示当前登录系统的用户信息

[root@localhost ~]# who
root     :0           2017-01-19 20:07
root     pts/1        2017-01-19 20:08 (:0.0)
root     pts/2        2017-01-19 20:09 (192.168.0.103)

只显示与自己相关的登录信息

[root@localhost ~]# whoami
root

显示当前的运行级别

[root@localhost ~]# who -r
         run-level 5  2017-01-19 20:06                   last=S

11、last 显示当前及过去登录系统的用户信息

last [-adRx] [-<显示列数>]  [用户名] [终端编号]

[root@localhost ~]# last
root     pts/2        192.168.0.103    Thu Jan 19 20:09   still logged in   
root     pts/1        :0.0             Thu Jan 19 20:08   still logged in 

显示当前及过去登录系统的用户信息

[root@localhost ~]# last -5
root     pts/2        192.168.0.103    Thu Jan 19 20:09   still logged in   
root     pts/1        :0.0             Thu Jan 19 20:08   still logged in   
root     :0                            Thu Jan 19 20:07   still logged in   
root     :0                            Thu Jan 19 20:07 - 20:07  (00:00)    
reboot   system boot  2.6.18-128.el5   Thu Jan 19 20:06          (00:41) 

显示终端tty1的登录信息

[root@localhost ~]# last tty1


wtmp begins Sat Sep  3 03:17:37 2016


12、su 切换用户

su [-] [-c<命令>] [-s] [用户名]

当前用户是root

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

切换到cha用户,同时改变工作目录和各种环境

[root@localhost ~]# su - cha

[cha@localhost ~]$

恢复原来的用户

[root@localhost ~]# exit

一般用户切换用户需要输入密码


13、sudo 以其他用户身份执行命令

默认只有root用户可以使用sudo命令,如果期望其他用户也可以使用sudo命令,必须由root用户使用visudo命令修改/etc/sudoers文件或使用vim编辑/etc/sudoers文件

由于root用户对/etc/sudoers文件的权限是只读,所以如果使用vim编辑/etc/sudoers文件后,保存需要使用!强制保存。

sudo [-u[<用户名>|#<UID>]] 命令

使用root用户身份执行 /sbin/iptables -L

[root@localhost ~]# sudo -u root /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
RH-Firewall-1-INPUT  all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:mysql 




七、用户切换







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值