一定要知道的,那些Linux操作命令
一定要知道的,那些Linux基本操作命令(一)
目录
1.文件和目录操作命令
2.用户和用户组操作命令
3.vim编辑器操作命令
4.打包和解压操作命令
5.系统操作命令
为什么要学习linux?
1.linux是一款操作系统
2.linux经常来作为服务器操作系统来用
作用:
1.查看日志(任何操作的日志)
2.定位bug(查看日志,日志级别:info/debug/error....)
3.搭建环境(搭建测试环境)
以上三条就是测试人员会在工作经常要用的三点
需要的软件
1.CENTOS 6.8----linux操作系统
2.Xshell 5---远程连接工具
其它还有PYTT secureCRT
3.winSCP---windows与linux传输工具
文件和目录操作命令
1.linux终端共有6个,分别tty1---tty6 通过ctrl + alt+F1~F6进行切换
2.[root@localhost ~]# 后光标闪烁表示可以执行命令/编辑
root===表示当前登录的用户名
@----表示在
localhost---主机域名
~ ---- 表示root用户的家目录
root用户的家目录路径:/root
普通用户的家目录 ~
普通用户的家目录 /home/普通用户的用户名目录
# ---- 表示是root $ ---表示是普通用户
3.快捷键
ctrl+c 终止当前命令
ctrl+l 清屏
ctrl+D =exit 当前用户退出
ctrl+z 暂停当前命令 fg---恢复执行
TAB键----自动补全
如果输入的字符串是唯一的,单击tab键就会自动补全
如果输入的字符串不是唯一的,双击tab键显示所有以输入的字符开头的目录或文件
linux命令一样的可以自动补全
注意点:自动补全只补全当前目录下存在的目录或文件名称
4.目录
/----表示根目录
常用目录
/home 普通用户的家目录
/root 是root用户的家目录
不管是普通用户还是root
登录成功后,所在位置都是在各自的家目录下
/etc 配置文件位置(用户、密码、服务的配置文件等)
/opt 保存第三方软件安装位置
/usr/local 安装第三方软件的位置
/tmp 临时文件,自动清空
不管是存放软件包或者文件时,都去新建相应的目录,最好是当前登录用户家目录下面,不要随意删除别人的文件
5.绝对路径和相对路径
什么是绝对路径?什么是相对路径?
绝对路径是从根目录开始的完整路径
相对路径是从当前位置(用户所在的路径位置)开始的路径
. 表示当前目录
.. 表示上一级目录
pwd
pwd --查看当前位置的路径(是从根目录开始)
cd
cd ----切换目录
ls
1.ls ---list---显示当前目录或指定目录下文件和目录
经常使用的选项:
ls -l ==ll ---查看当前目录下的文件和目录,以较长格式显示文件和目录
显示格式讲解:
第一个 -/d/l 表示文件类型
- 二进制文件 d 目录 l 软链接
第二个部分 rwxrwxrwx 表示各类用户的权限
r -read 读权限 w-wirte 写权限 x ---执行权限
r-x 表示只有读和执行权限
rwx rwx rwx
第一个rwx表示文件或目录所属用户的权限
第二个rwx表示文件或目录所属组的权限
第三个rwx表示文件或目录其他用户的权限
第三个部分 root 表示文件或目录所属用户的用户名
第四个部分 root 表示文件或目录所属组的组名
第五个部分 12288 表示文件或目录的大小
第六个部分 Feb 25 18:41 表示文件或目录的最后修改时间
第七个部分 文件或目录的名称
2.ls -a ==ls --all 查看当前目录下的所有文件和目录,包括隐藏文件
3.ls -h 表示以容易理解的格式显示文件的大小, 必须与-l一起使用,才能有所体现
4.ls -i 显示文件和目录的i节点
每一个文件和目录的i节点都是唯一的,我们可以通过i节点来查找文件和目录
mkdir
mkdir --创建新目录
格式:mkdir [-p] 路径/新目录名
1.在当前目录下创建新目录
2.在指定的目录下创建新目录
3.-p, --parents no error if existing, make parent directories as needed ---递归创建目录
rmdir
rmdir ---删除空目录
1.如果是目录是非空,不能删除
[root@localhost cc]# rmdir test/
rmdir: failed to remove `test/': Directory not empty'
2.不能删除非目录
[root@localhost ~]# rmdir install.log
rmdir: failed to remove `install.log': Not a directory'
rm
rm ---删除文件和目录
用法:rm [选项]... 文件...
不管是文件还是目录,经常使用就是
rm -rf 要删除的东西(可以是多个,中间用空格隔开)
[root@localhost tmp]# rm -rf cc test yum.log
rm -rf *---删除当前目录下所有文件和目录
rm -rf te*--删除以te开头的所有文件和目录
删除以.1og结尾的内容:rm -rf *.log
使用rm命令时,一定确保这个文件和目录确定要删除,在liunx系统里面删除是不可逆的,没有回收站
1.删除文件
[root@localhost tmp]# rm ifcfg-eth0
rm:是否删除普通文件 "ifcfg-eth0"?y
[root@localhost tmp]# rm -f test.log --删除不询问
2.删除目录--- -r 同时会询问是否删除
[root@localhost test_dir]# rm -r test/
rm: descend into directory `test'? y
rm: remove directory `test/testt'? y
rm: remove directory `test'? y'
3.如果不想在删除过程一直有询问,可以使用
-f---强制删除(需要更加谨慎) force
[root@localhost test_dir]# rm -rf test/
强制删除,并且没有询问
如果有些文件使用rm 不能删除,我们也可以加上-f,同样的含义强制删除,并且没有询问
cp
cp --复制文件或目录
用法:cp [选项] 原文件或目录 目标目录
语法:cp -rp [原文件或目录][目标目录]
1.复制文件:
[root@localhost test_dir]#cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/test
[root@localhost test_dir]#cp /etc/sysconfig/network-scripts/ifcfg-eth0 ..
[root@localhost test_dir]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp
2.-p 保留原文件或目录的属性,属性就是ls -l所展示的东西
[root@localhost tmp]# cp -p /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp
3.-r 复制目录
[root@localhost tmp]# cp -r ./test_dir/test .
结论:cp 复制文件或目录,复制成功后,原文件或目录还存在
在复制的过程中,还可以改名
mv
mv与cp 最大的区别就是一个不保留原文件,一个保留原文件
1.剪切--不改名
[root@localhost test_dir]# mv ../ifcfg-eth0 .
2.剪切-改名
[root@localhost tmp]# mv test_dir/ifcfg-eth0 ./test.log
3.改名
[root@localhost test_dir]# mv test tests
作用:用来备份
场景:放了一个lib文件运行,开发说你替换一下lib文件
但是我们保证开发的lib的文件就是OK ,那这种情况最好备份
mv chaa.lib chaa.lib.bak
touch
touch -创建空文件
[root@localhost test]# touch test.log
这个命令不经常用,创建文件是vim编辑器
cat
cat 显示文件内容
[root@localhost test]# cat yum.conf
一次性将文件内容完全展示出来,并且退出
从而可得出cat不适合查看文件很大的文件,cat只适合于查看文件内容偏小的文件
tac
tac 倒着显示文件内容
[root@localhost test]# tac test.log
适合查看文件内容偏小的,并且将最一行显示在最前面
more
more 分页显示文件的内容
空格或f 向下翻页
enter键 换行(一行一行的显示)
同时在页面最下方的位置显示文件显示的当前进度
q或Q 退出
缺点:只能向下翻页,不能向上查看
less
less 分页显示文件的内容(向上翻页)
空格或f 向下翻页
enter键 换行
q或Q 退出
pgup/pgdn 向上/向下一页一页切换
方向键 向上/向下一行一行切换
在文件中查找指定字符串时:
1.先输入 /
2.在/后面输入要查找的指定字符串
比如:/error
3.回车
目前显示的一个指定字符串是从当前位置查找到的第一个,
可以按“n”继续向下查找其它的
此方法经常用于在日志定位问题,或在修改文件要修改指定内容
less是显示文件内容命令中用得最多的
head
head --显示文件前面几行
1.在不跟任何选项和参数时,默认显示文件的前十行
[root@localhost test]# head services.log
2.只显示文件的前面5行(行数前的-很重要)
[root@localhost test]# head -5 services.log
tail
tail 显示文件最后的几行
1.默认显示文件的最后十行
[root@localhost test]# tail test.log
2.只显示文件的最后三行 -n
[root@localhost test]# tail -3 test.log
==[root@localhost test]# tail -n 3 test.log
3.-f 动态显示文件的最后几行(经常用)
tail -400f XX.log
动态就是显示文件新增的内容
用于场景:主要用于实时动态显示操作日志
同样是用于定位bug
chmod
chmod -改变文件或目录的权限(读写执行)
rw- r-- r--
user group other
所有者 所有组 其它人
+ 增加 - 删除 = 等于
1.将文件的写权限删除
[root@localhost test]# chmod u-w test.log
2.给所有组增加执行的权限
[root@localhost test]# chmod g+x test.log
3.给其它人赋于读写执行的权限
[root@localhost test]# chmod o=rwx test.log
4.错误方式
chmod u=rw o=r test.log
这种方式不行,不能同时修改所有者、所有组和其它人的权限
以上根据用户来+-=三种方式来修改权限,显得过于麻烦
解决方法:
r=4 w=2 x=1
4+2+1=7 用7这一个数字来代表所有权限
1.给所有者赋读写权限,所有组为读执行权限 其它人赋读权限
[root@localhost test]# chmod 654 test.log
通过数字的方式同时修改不同用户的权限
2.给所有用户都赋于读写权限6
[root@localhost test]# chmod 666 test.log
目前更改权限最简便的方法,也是最常用的
3.给目录赋权
[root@localhost test]# chmod 764 test12/
同时在文件或目录前可以加上绝对路径或相对路径
4.-R 递归修改文件或目录的权限(经常使用)
[root@localhost test]# chmod -R 644 ./test12/test
是同时将目录下面所有的文件和子目录中内容权限一并修改
chmod root和普通用户都有权限
chown
chown 改变文件的所有者(经常使用)
1.改变test_dir.log文件的所有者为root
[root@localhost test]# chown root test_dir.log
2.普通用户改变log.log的所有者
[test@localhost ~]$ chown test log.log
chown: changing ownership of `log.log': Operation not permitted'
chown普通用户是没权限进行操作这个命令,只有root才有权限去改变文件或目录的所有者
chgrp
chgrp 改变文件和目录的所有组
[root@localhost test]# chgrp test test
但是这个命令我们一般不用,因为很少会去只改变文件和目录的所有组
如果要改变所有组,一般会同时改变所有者和所有组
如果是同时改变所有者和所有组,可以用chown
经常使用的方式
[root@localhost test]# chown wq:wq test
umask
umask ---显示文件和目录的默认权限
775/755 创建一个目录
664/644 创建一个文件
022 umask---取反--755
7-0=7 7-2=5 7-2=5
代表一个目录初始的权限为755,一个文件的初始权限为644(文件没有可执行权限)
find
find ---文件搜索
格式:find [搜索范围][匹配条件]
1.根据name来搜索(经常用)
a.精确搜索
[root@localhost test]# find /etc -name services
b.模糊搜索init开头的文件和目录
[root@localhost test]# find /etc -name init*
c.模糊搜索init结尾的文件和目录
[root@localhost test]# find /etc -name *init
d.模糊搜索包含init的文件和目录
[root@localhost test]# find /etc -name *init*
e.模糊搜索以init开头的后面只有三个字符串的文件或目录
* 代表一组字符串
? 代表一个字符
[root@localhost test]# find /etc -name init???
linux对大小很敏感,而且空格也敏感
[root@localhost test]# find /etc -name INIT???
f.根据name搜索时,不区分大小写用选项 -iname
[root@localhost test]# find /etc -iname INIT???
/etc/inittab
[root@localhost test]# find /etc -name INIT???
没有搜索出任何数据
2.根据文件大小搜索
a.大于4096的文件 +4096
[root@localhost test]# find /etc -size +4096
b.小于4096的文件 -4096
[root@localhost test]# find /etc -size -4096
c.等于4096的文件
[root@localhost test]# find /etc -size 4096
d.大于4096同时小于641020的文件 -a
[root@localhost test]# find /etc -size +4096 -a -size -641020
e.大于4096或者小于641020的文件
[root@localhost test]# find /etc -size +4096 -o -size -641020
3.根据文件所有者去搜索
[root@localhost test]# find /home/test -user test
[root@localhost test]# find -user test
如果不写搜索范围,默认搜索从当前目录开始,搜索下面匹配的文件和目录
4.根据文件属性搜索
a.搜索5分钟之内内容被修改的文件
[root@localhost test]# find . -mmin -5
文件内容被修改的同时,文件属性也会被修改
b.搜索3分钟之内文件属性被修改的文件
[root@localhost test]# find . -cmin -3
amin cmin mmin后面接分钟
atime ctime mtime后面接小时
5.根据文件类型来搜索
- 二进制文件f d 目录 l 软链接
1.搜索目录---文件类型为d
[root@localhost test]# find . -type d
2.搜索当前目录下文件类型为文件 f
[root@localhost test]# find . -type - ---错误
find: -type 的参数未知: -
[root@localhost test]# find . -type f ---正确
3.搜索当前目录下的文件类型为软链接 l
[root@localhost test]# find . -type l
4.在根目录下搜索文件名称为services的文件
[root@localhost test]# find / -name services -type f
grep
grep --搜索文件的内容
1.搜索test.log这个文件中包含qwer字符串的行
[root@localhost test]# grep qwer ./test.log
2.不区分大小写进行搜索 选项 -i
[root@localhost test]# grep -i test test.log
3.搜索不包含123的文件内容
[root@localhost test]# grep -v 123 test.log
4.搜索不包含test的文件内容,不区分大小写
[root@localhost test]# grep -iv test test.log
5.搜索不是以1开头的文件内容
[root@localhost test]# grep -v ^1 test.log
6.搜索以1开头的行
[root@localhost test]# grep ^1 test.log
^ 表示以什么开头
在shell脚本 #表示注释
7.屏蔽掉注释行 --
[root@localhost test]# grep -v ^# sysctl.conf
8.经常使用的一种方法---管道 |
[root@localhost test]# ps -ef |grep java
ps -ef 查询进程
|管道符 command1 | command2
将command1的输出作为command2的输入
[root@localhost test]# ls -l |grep test
ln
ln --链接命令
链接分为软链接和硬链接
1.给目录创建软链接 -s
[root@localhost tmp]# ln -s /tmp/test/test12/test ./test1
lrwxrwxrwx. 1 root root 21 Apr 14 21:06 test1 -> /tmp/test/test12/test
软链接的大小非常小,只是一个链接
软链接相当于windows下面的快捷方式
2.给文件创建软链接
[root@localhost tmp]# ln -s /tmp/test/test12/test/tw.log .
软链接的目标文件和原文件的i节点不同
3.给文件创建一个硬链接
[root@localhost tmp]# ln /tmp/test/test12/test/tw.log ./tw1.log
硬链接的i节点相同
[root@localhost tmp]# ln /tmp/test/test12/test ./test_dir
ln: `/tmp/test/test12/test': hard link not allowed for directory'
硬链接不能针对目录使用,只能对文件使用
一定要知道的,那些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
//系统命令
软件测试经常用到的系统命令就是查看进程,或者是去看系统的健康状态
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
如果你们还有什么想说的,那就在后台留言吧。
一定要知道的,那些Linux操作命令的更多相关文章
- 每个极客都应该知道的Linux技巧
每个极客都应该知道的Linux技巧 2014/03/07 | 分类: IT技术 | 0 条评论 | 标签: LINUX 分享到:18 本文由 伯乐在线 - 欣仔 翻译自 TuxRadar Linux. ...
- [转载]你需要知道的 16 个 Linux 服务器监控命令
转载自: 你需要知道的 16 个 Linux 服务器监控命令 如果你想知道你的服务器正在做干什么,你就需要了解一些基本的命令,一旦你精通了这些命令,那你就是一个 专业的 Linux 系统管理员. 有些 ...
- 【转载】在IT界取得成功应该知道的10件事
在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...
- 隔壁小孩都要知道的Drupal配置
i春秋作家:Arizona 原文来自:隔壁小孩都要知道的Drupal配置 隔壁小孩都要知道的Drupal配置 Drupal是一个开源的PHP内容管理系统,具有相当复杂的架构.它还具有强大的安全模型.感 ...
- PHP程序员应该知道的15个库
最几年,PHP已经成为最受欢迎的一种有效服务器端编程语言.据2013年发布的一份调查报告显示,PHP语言已经被安装在全球超过2.4亿个网站以及210万台Web服务器之上.PHP代表超文本预处理器,它主 ...
- Android 程序员必须知道的 53 个知识点
1. android 单实例运行方法 我们都知道 Android 平台没有任务管理器,而内部 App 维护者一个 Activity history stack 来实现窗口显示和销毁,对于常规从快捷方式 ...
- 每个IT安全专业人员应该知道的12种根本漏洞
每个IT安全专业人员应该知道的12种根本漏洞 每年,IT安全专业人员都面临着数千个新的软件漏洞和数百万个不同的恶意软件程序,但只有12种根本漏洞会让这些软件漏洞和恶意软件程序攻击你的设备.了解这些根本 ...
- (0)开始 Raspberry Pi 项目前需要知道的 10 件事
https://www.digikey.cn/zh/articles/techzone/2017/feb/10-things-to-know-before-starting-a-raspberry-p ...
- 程序员必须要知道的Hadoop的一些事实
程序员必须要知道的Hadoop的一些事实.现如今,Apache Hadoop已经无人不知无人不晓.当年雅虎搜索工程师Doug Cutting开发出这个用以创建分布式计算机环境的开源软...... 1: ...
随机推荐
- 自定义Flume Sink:ElasticSearch Sink
Flume Sink的目的是从Flume Channel中获取数据然后输出到存储或者其他Flume Source中.Flume Agent启动的时候,它会为每一个Sink都启动一个SinkRunner ...
- php代码画足球场
用代码画了个足球场 原图: 代码画出的效果图: 代码如下: // 创建一个 200X200 的图像 $img = imagecreate(800, 500); // 分配颜色 $bg = imagec ...
- 我永远无法学会的dp
起源:在codeforceround518之后我发现别人都会div1A我根本写不出来,所以我决定退役 咕咕咕咕
- JavaScript 运行机制详解
一.为什么JavaScript是单线程? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊. Java ...
- web项目访问地址前添加小图片
修改HTML 1.head标签添加 <link rel="icon" type="image/x-icon" href="images/icon ...
- map里面的set方法
let a=[1,2,3,4,1,2,3,4,1,4];let b= new Set(a);console.log(b) 还有add方法介绍下: let a=new Set();let b=[1,1, ...
- juqery 点击分页显示,指定一页显示多少个,首次加载显示多少个
源代码html: //源代码:html <div class="jq22"> <div class="hidden"> <li&g ...
- linux学习:【第3篇】远程连接及软件安装
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! linux学习:[第3篇]远程连接及软件安装 远程连接 xshell , xftp软件官网 : ...
- Django之中间件&信号&缓存&form上传
中间件 1.中间件是什么? 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用, ...
- Oracle单行函数
一.尽管各个数据库都是支持sql语句的.可是每一个数据库也有每一个数据库所支持的操作函数,这些就是单行函数.假设想进行数据库开发的话.除了要回使用sql语句外,就是要多学习函数. 1.单行函数的分类: ...