Linux操作命令(二)

目录

 

1.文件和目录操作命令

2.用户和用户组操作命令

3.vim编辑器操作命令

4.打包和解压操作命令

5.系统操作命令

//用户与用户组操作命令

 

useradd  创建用户

 

1.不指定任何信息,创建一个用户

[root@localhost network-scripts]# useradd test_dir

修改的文件

(1)passwd文件:

test_dir:x:502:502::/home/test_dir:/bin/bash

 

(2)shadow文件

test_dir:!!:17270:0:99999:7:::

!!表示没有密码

17270为1970年1月1日到今天的天数,也就是时间戳

0表示两次密码修改间隔天数

99999表示密码的有效期,99999表示永久生效

7表示密码到期前的警告天数

  密码到期后宽限天数

 

(3)group文件-在创建test_dir这个用户的同时,也创建一个与test_dir相同名称的组

test_dir:x:502:---组

 

(4)gshadow文件-指test_dir组的密码

test_dir:!::

 

(5)家目录-新增一个test_dir的目录

[root@localhost home]# ll

drwx------. 2 test_dir test_dir 4096 Apr 14 22:08 test_dir

 

(6)邮件-新一个test_dir的目录

[root@localhost network-scripts]# ls -l /var/spool/mail/|grep test_dir

-rw-rw----. 1 test_dir mail 0 Apr 14 22:08 test_dir

 

2.添加参数增加用户

[root@localhost network-scripts]# useradd -u 555 -d /home/hom -c "tester" -g test -G wq test1

已经指定一个存在的初始组,那么就不会再增加与用户名相同的组

test1:$6$mjPKHzI/$dg6TtCABUBmzKIwv8Xrvv1iAQVtRhkN0CIoFIqu.8CdyA.E6Rds.s.FcowhXNQAf/rf.znrgVayd8vLfhsBIt0:17270:0:99999:7:::

有密码时,!!会变成被加密后的字符串

用户没有密码时,不能登录

 

passwd  修改用户密码

 

1.root用户去修改密码,可以设置简单的密码

格式 :passwd 用户名

[root@localhost network-scripts]# passwd test03

Changing password for user test03.

New password: 

BAD PASSWORD: it is too simplistic/systematic

BAD PASSWORD: is too simple

Retype new password: 

passwd: all authentication tokens updated successfully.

只有root才有权限去修改其它用户的密码,并且可以设置相对简单的密码

其他用户只能修改自己的密码,并且要根据linux密码设置规范去设置密码

 

2.test用户修改密码

格式:passwd

[test@localhost ~]$ passwd

Changing password for user test.

Changing password for test.

(current) UNIX password: 

New password: 

BAD PASSWORD: it is too simplistic/systematic

New password: 

Retype new password: 

passwd: all authentication tokens updated successfully.

不能少8个字符,且相对复杂的密码

 

3.passwd -S 显示用户的密码状态

[root@localhost network-scripts]# passwd -S test

test PS 2017-04-14 0 99999 7 -1 (Password set, SHA512 crypt.)

 

4.passwd -l暂时锁定用户

[root@localhost network-scripts]# passwd -l test

Locking password for user test.

passwd: Success

[root@localhost network-scripts]# cat /etc/shadow|grep test

test:!!$6$XQLbiOl1$b/OUZT0T21cZxnnLZrjBSIG1/IvyzvfFlqkERgTypWrdf5xJwmprm5.kntSiqJ2v9ozEVsPCI6OEfmPrQrBRa1:17270:0:99999:7:::

 锁定用户其实就是在用户的密码标志前加上!!,将密码致为失效,相当于用户没有密码,没有密码的用户是不能进行登录的

 

5.passwd -u 解锁用户

[root@localhost network-scripts]# passwd -u test

Unlocking password for user test.

passwd: Success

[root@localhost network-scripts]# cat /etc/shadow|grep test

test:$6$XQLbiOl1$b/OUZT0T21cZxnnLZrjBSIG1/IvyzvfFlqkERgTypWrdf5xJwmprm5.kntSiqJ2v9ozEVsPCI6OEfmPrQrBRa1:17270:0:99999:7:::

解锁用户就是去掉用户密码标志前的!!

3-5 中的命令只有root用户才有权限操作

 

usermod  修改用户的信息

 

1.修改test的UID为999 -u 手工指定的UID

[root@localhost network-scripts]# usermod -u 999 test

 

2.修改test用户的用户说明为“tester lead” -c

[root@localhost network-scripts]# usermod -c "tester lead" test

 

3.修改test用户的附加组为wq -G

[root@localhost network-scripts]# usermod -G wq test

表示wq这个组的附加用户有test1用户,test用户

 

一个用户的初始组只有一个,可以拥有多个附加组

  chage 修改用户的密码状态

  -l ---显示密码的详细列表

  -m ---修改二次密码间隔天数

  -M ---修改密码的有效期 

  -W ---修改密码的警告天数

  -I ---修改密码的宽限天数

  -E ---修改账户失效日期

  

userdel  删除用户

 

1.userdel 用户名

执行userdel 用户名时,文件的内容被修改的就是以下几个文件(etc)

[root@localhost ~]# find /etc -mmin -2

而家目录下面,相同用户名的目录没有被删除

 

2.userdel -r 用户名

[root@localhost home]# userdel -r test01

使用这个选项-r,不仅将etc下面的四个文件内容被修改了,而且还将home和mail目录下面,与用户名相同的目录被删除了

根据以上的信息,我们可以知道不管增加还是删除用户,修改的文件就是passwd shadow group gshadow ,还包含的home和mail目录

从而得知,如果是手工添加用户或删除用户,直接去修改这几个文件也可以达到相同的效果

 

id  显示用户的组ID和用户ID

格式:id 用户名

[root@localhost mail]# id test

uid=999(test) gid=501(test) groups=501(test),500(wq)

不仅显示了用户ID,还显示了初始组ID,同时组中还包含了附加组的ID

[root@localhost mail]# cat /etc/group |grep test

wq:x:500:test1,test

test:x:501:

 

su 切换用户

1.使用su命令时,一定要记得加上 - 代表同时切换环境变量

(经常用)

[root@localhost mail]# su - test

使用su命令时,不加 - 不能完全切换,这种用法是错误的

 

2.在不切换用户的时候,可以跟上 -c 使用其用户执行一次的命令

[test@localhost home]$ su root -c "useradd test02"

Password: 

 

groupadd 添加组

1.groupadd 组名

添加一个组时,修改的文件为group gshadow

 

2.-g 手工指定组ID

[root@localhost mail]# groupadd -g 1222 t2

groupadd所增加不是任何一个用户的初始组或者附加组、

 

 

groupmod  修改组信息

 

1.修改组ID -g

格式:groupmod -g 新的组ID 组名

[root@localhost mail]# groupmod -g 1112 t1

 

2.修改组的组名

格式:groupmod -n 新组名 旧组名

要把组名为t1的组改成组名为tt1

[root@localhost mail]# groupmod -n tt1 t1

 

groupdel 删除组

 

1.删除的组既不是初始组也不是附加组

[root@localhost mail]# groupdel t2

删除时修改的文件为group gshadow

 

2.删除初始组

[root@localhost mail]# groupdel test

groupdel: cannot remove the primary group of user 'test'

用户的初始组不可以删除

如果要删除,解除绑定,将组改成非初始组

 

3.删除附加组

[root@localhost mail]# cat /etc/group |grep test04

tt1:x:1112:test04

test04:x:1002:

[root@localhost mail]# groupdel tt1

[root@localhost mail]# cat /etc/group |grep test04

test04:x:1002:

如果一个组是某用户的附加组,可以被删除

从而得出初始组不能被删除,附加组可以被删除

 

gpasswd  给组添加附加用户或给组删除附加用户

 

gpasswd操作都是附加组

1.将test用户作为test03组的附加用户

格式:gpasswd -a 用户名 组名

[root@localhost mail]# gpasswd -a test test03

Adding user test to group test03

test03:x:1000:test

表示test用户为test03的附加用户

 

2.删除test03组的附加用户test

格式:gpasswd -d 附加用户名 组名

[root@localhost mail]# gpasswd -d test test03

Removing user test from group test03

[root@localhost mail]# cat /etc/group|grep test03

test03:x:1000:

 

//文档的压缩与打包

 

gzip  压缩

 

格式:gzip 文件名

1.压缩文件

[root@localhost test]# gzip services

使用这条命令,引起的变化:

 1.文件的大小变了,从626K-125K

gzip可以对文件进行60%-70%的压缩

 2.文件的名字改变了,从services 变成services.gz

其实就是在文件的名字后加上了.gz

原文件被删除,新增一个.gz的文件

压缩后文件格式变成.gz

 

gunzip 解压

 

 

 

格式:gunzip 文件名.gz

1.对.gz文件使用gunzip命令解压

[root@localhost test]# gunzip services.gz

gunzip变化与gzip相反

 

2.对.gz文件使用gzip -d 解压

[root@localhost test]# gzip services

[root@localhost test]# ls -lh services.gz

-rwxr-xr-x. 1 root root 125K Apr 14 17:55 services.gz

[root@localhost test]# gzip -d services.gz

[root@localhost test]# ls -hl services

-rwxr-xr-x. 1 root root 626K Apr 14 17:55 services

 

gzip压缩工具解压文件,gzip工具压缩率非常高,所以使用也非常频繁

 

tar 命令

 

打包和压缩:

打包是指将一大堆文件或目录变成一个总的文件

压缩则是将一个大的文件通过一些压缩算法变成一个小文件

这是二个步骤,是分开的

 -c, --create               创建一个新归档

 -x, --extract, --get       从归档中解出文件

 -f, --file=ARCHIVE         使用归档文件或 ARCHIVE 设备

      --force-local

                             即使归档文件存在副本还是把它认为是本地归档

-v, --verbose              详细地列出处理的文件

-z, --gzip, --gunzip, --ungzip   通过 gzip 过滤归档

 

0.归档文件,并创建一个新的归档文件

将123233和yum.conf打包在一起

[root@localhost test]# tar -cf 12.tar 123233 yum.conf 

变化:

 

1.文件大小没变

[root@localhost test]# ls -hl 123233 12.tar yum.conf 

-rw-r--r--. 1  501 test   9 4月  12 17:21 123233

-rw-r--r--. 1 root root 10K 4月  17 20:17 12.tar

-rwxrw-r--. 1 root root 969 4月  12 16:40 yum.conf

 

2.将二个文件生成一个.tar的文件

tar:在window来说就是将多个文件放到一个文件夹

 

3.将一个tar文件打开

[root@localhost test12]# tar -xvf 12.tar

 

4.在打包的同时并压缩--- -czvf(经常用)

[root@localhost test12]# tar -czvf qq.tar.gz 123233 yum.conf

-rw-r--r--. 1 root root  10240 4月  17 20:23 12.tar

-rw-r--r--. 1 root root    757 4月  17 20:30 qq.tar.gz

以上二个文件内容相同,第一个文件是将多个文件只是打包在一起,第二个文件是将多个文件打包的同时并压缩

 

5.解包并解压

[root@localhost test12]# tar -xzvf q.tar.gz 

tar命令打包并压缩:原文件没有被删除,而是生成一个新的.tar.gz

解压的时候也是将.tar.gz里的文件被释放出来,如果有相同的文件名被覆盖

打包压缩:tar -czvf 新文件名.tar.gz 文件1 文件2 ... 目录1 目录2...

解包解压:tar -xzvf 解包解压的文件名

 

6.将某个目录所有的文件和目录都打包压缩

[root@localhost test12]# tar -czvf test12.tar.gz *

 

zip 对文件或目录压缩

 

1.压缩文件

[root@localhost test]# zip q.zip 123233 yum.conf 

对比gzip和zip压缩后的文件大小:

-rw-r--r--. 1 root root   757 4月  17 20:57 1.tar.gz

-rw-r--r--. 1 root root   891 4月  17 20:56 q.zip

可以得到gzip比zip压缩率高

 

2.压缩目录 -r

[root@localhost test]# zip -r test.zip test12

原目录与压缩后的文件

drwxrwxrwx. 3 root root   4096 4月  17 20:44 test12

-rw-r--r--. 1 root root 516448 4月  17 21:00 test.zip

压缩过程中原文件或原目录不会被删除

 

unzip 解压.zip文件

 

1.解压

[root@localhost test]# unzip test.zip      

 

2.将解压的结果显示在屏幕上 -c

[root@localhost test]# unzip -c q.zip 

将文件的内容直接展示在屏幕上

 

3.-n 解压时不要覆盖原有的文件

使用-n时,原有文件存在

[root@localhost test]# unzip -n q.zip 

Archive:  q.zip

使用-n时,原有文件不存在

[root@localhost test]# unzip -n q.zip               

unzip解压后原来的.zip还存在

 

bzip2 压缩文件

格式:bzip2 文件名

1.bzip2压缩文件且原文件删除

[root@localhost test]# bzip2 yum.conf 

 并新生成了一个.bz2的文件

 

 2.-k 压缩文件的同时保留原文件

[root@localhost test]# bzip2 -k services 

 

bunzip2 解压

[root@localhost test]# bunzip2 123233.bz2 

[root@localhost test]# ll

-rw-r--r--. 1 root root      9 4月  12 17:21 123233

 生成一个新文件,原来的.bz2被删除了

 

 

//vim编辑器   vi命令

 

vim编辑器有三种模式:

一般模式:使用vi命令进入的那个模式就是一般模式

 

命令模式:在一般模式下输入:或/ 即进入了命令模式

 

编辑模式:在一般模式下按I,i,A,a,O,o,R 即进入了编辑模式

在编辑模式下会提示INSERT REPLACE字样

从命令模式或者编辑模式切换到一般模式,按ESC

 

一般模式下的命令:

1.方向键 单个字符上下左右切换

2.pageup、pagedown 向上 向下翻页

ctrl+f  ctrl+d 

3.0/shift+6 回到本行的行首

4.shift+4 回到本行的行尾

 

进入到编辑模式按I,i,A,a,O,o,R 

按I---在光标所在行的行首插入字符

按i---在光标的前面插入字符

按A---在光标所在行的行尾插入字符

按a---在光标后面插入字符

按O---在光标所在行的上方插入新的一行

按o---在光标所在行的下方插入新的一行

按以上6个字母,都可以从一般模式切换到编辑模式,且显示“INSERT”字样

以上6个,都插入字符,只是位置不同,如果记不住全部的,记住一个也行

 

按R---从一般模式切换到编辑模式,显示“REPLACE”

表示从光标所在处开始替换输入的字符串,直到按ESC结束

 

一般模式下:    

在一般模式下按r---只替换光标所在处的一个字符

按u---撤消

可以一直按,直到“Already at oldest change”,表示文件版本已经回到原始文档状态

 

以下命令都是在一般模式下使用:

x---删除光标所在处的字符

nx---删除从光标所在处开始n个字符

dd---删除光标所在行整个一行

ndd---删除从光标所在行开始的n行

dG---删除从光标所在行到该文件的最后一行(包括最一行)

D---删除从光标所在处到本行的行尾

gg---回到该文件的首行

G---回到该文件的最后一行

nG--到n行

yy---复制当前行

nyy---复制从当前行往下n行(包括当前行)

dd---剪切当前行

ndd---剪切当前行往下n行

p---粘贴在光标所在行的行下

P---粘贴在光标所在行的行上

 

在命令模式下命令:

:n1,n2d---删除从第n1行到第n2行

  :set nu---设置行号

:set nonu---取消行号

:n---到n行

  /搜索的字符串---在文件中搜索指定的字符串

      一般是从光标所在行开始往下搜索,按n查找下一个指定的字符串

:set ic---搜索过程中不区分大小写

:set noic---搜索过程中区分大小写

 

替换:

:%s/old/new/g----将全文中old的字符串一次性全部替换成new

:%s/old/new/c----找到第一个要替换的old字符串,并且询问是否要替换

replace with test (y/n/a/q/l)?

  y-yes n-no a-all q-quit l-only

:n1,n2s/old/new/g---在n1行到n2行之间中这old字符串替换成new字符串

 

:wq  ---保存并退出

:wq! ---强制保存并退出

:q  ---退出,不保存修改

:q!  --强制退出,不保存修改

:w  --保存

:w new_name  ---另存为指定文件

ZZ  ==:wq

q是没有修改内容时退出,如果有修改内容则会提示保存;
wq是保存并退出;
q!是不管有没有修改内容,都不保存强制退出;
!q是错误的命令;

//系统命令

 

软件测试经常用到的系统命令就是查看进程,或者是去看系统的健康状态

1.top---查看linux系统的健康状态

PID ---进程ID

2.free--查看liunx系统的空闲空间

 

3.kill  --杀死进程

 

4.ps -ef

ps -ef|grep java

查看进程中包含java的进程,其实也相当查询java服务有没有启动起来

 

5.kill ---用于结束服务或进程

格式:kill 进程号

1.强制结束进程 -9

 格式:kill -9 进程号----强制杀死该进程

2.一次性结束多个进程

 格式:kill 进程号1 进程号2 ....

 

6.查看端口号

[root@localhost test]# netstat -lnp|grep 3306

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      2043/mysqld 

 

7.执行服务

[root@localhost bin]# ./startup.sh  

[root@localhost bin]#  ./shutdown.sh

 

8.启动/停止mysqld服务

service mysqld start/stop 

posted @ 2021-03-12 15:28  test-zlq  阅读(576)  评论(0)    收藏  举报