您的位置:首页 > 运维架构 > Linux

linux 常用命令1

2016-11-15 18:28 197 查看
一、目录操作命令

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

七、用户切换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: