(二)Linux常用命令
系统命令行含义
示例:[root@localhost ~]# root //用户名,root为超级用户 @ //分隔符 localhost //主机名称 ~ //当前所在目录,默认用户目录为~,会随着目录切换而变化,例如:(root@localhost /bin# ,当前位置在bin目录下) # //表示当前用户是超级用户,普通用户为$,例如:("chenqi@localhost /root$" ,表示使用用户"chenqi"访问/root文件夹)
- 命令行组成结构
命令 参数名 参数值
基础操作命令
关闭系统(shutdown)
shutdown -h now 或者 poweroff //立刻关机 shutdown -h 2 //两分钟后关机
重启系统(reboot)
shutdown -r now 或 reboot //立刻重启 shutdown -r 2 //两分钟后重启
帮助(help)
ifconfig --help //查看ifconfig命令的用法
命令说明书(man)
man ifconfig //打开命令说明后,可按“q”键退出
切换用户(su)
su chenqi //切换为用户“chenqi”,输入后回车需要输入该用户的密码,但是用户权限没有切换,需要使用“ su - ”完全切换 exit //退出当前用户
目录操作命令
.. 表示上级
. 表示当前目录
切换目录(cd)
cd / //切换到根目录 cd /bin //切换到根目录下的bin目录 cd ../ //切换到上一级目录 或者使用命令:cd .. cd ~ //切换到home目录 cd - //切换到上次访问的目录 cd 文件夹名 //打开本目录下的名为(文件夹名)的文件夹(相对路径) cd /xxx/xx/x //输入完整路径直接切换到目标目录,可使用tab键快速补全(绝对路径)
查看目录(ls)
ls //查看当前目录下的所有目录和文件 ls -a //查看当前目录下的所有目录和文件(包括隐藏文件) ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令“ll”效果一样 ls /bin //查看指定目录下的所有目录和文件
创建目录(mkdir make directory)
mkdir tools //在当前目录下创建一个名为tools的目录 mkdir /bin/tools //在指定目录下创建一个名为tools的目录
删除目录与文件(rm)
rm 文件名 //删除当前目录下的文件 rm -f 文件名 //删除当前目录的文件(不询问) rm -r 文件夹名 //递归删除当前目录下此名的目录 rm -rf 文件夹名 //递归删除当前目录下此名的目录(不询问) rm -rf * //将当前目录下的所有目录和文件全部删除 rm -rf /* //将根目录下的所有文件全部删除【相当于格式化系统】
修改目录(mv)
mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作 mv /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录剪切到 /opt目录下面 mv -r /usr/tmp/tool /opt //递归剪切目录中所有文件和文件夹
拷贝目录(cp)
- 复制文件或目录,语法格式同mv。使用该指令复制目录时,必须使用参数"-r"或者"-R":复制该目录下所有的子目录和文件
cp -r 源文件 目的文件
cp -r /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录复制到 /opt目录下面
搜索目录(find)
- 使用该命令时,不设置任何参数,则find命令将在当前目录(./)下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录
-
-type 以文件类型查找,d——目录;f——普通文件
- -exec 命令 {} \ 可执行操作,先find 出来,再进行对应操作。如:find /bin -name 'a*' -exec rm -rf {} \ ——查找/bin目录下的所有以a开头的文件并删除。
查看当前目录(pwd)
pwd //显示当前位置路径
文件操作
增(touch)
-
touch a.txt //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间
-
重定向:“>” ——覆盖;“>>” ——追加
删
-
rm 文件名 //删除当前目录下的文件
查
cat a.txt //一次性显示全部内容。-n 显示行号,包括空行;-b 显示行号,不包括空行 less a.txt //PgUp向上翻页,PgDn向下翻页,"q"退出查看 more a.txt //以一页一页的形式显示,回车查看下一行,空格查看下一页,按 b 键就会往回(back),q 退出查看 tail -100 a.txt //查看文件的后100行,"Ctrl+C"退出查看 head -20 a.txt //显示头20行的内容,默认参数是10行 sed //固定搜索一段的内容,两个关键字之间的内容,一般用于查看一段时间的日志 vi //也是查看文件的六个操作之一
- tail -f 日志文件:查看动态日志。查看后500行的日志文件:tail -500f 日志
编辑(vi /vim )
- vi 可以新建一个不存在的文档并进入。刚进入文件就是命令模式,通过方向键控制光标位置。想要进行修改,按 i , 查看o , a 进入编辑模式(insert mode)。编辑模式下按“esc”进入命令模式,再按“:”进入底行模式。
-
命令模式:
- “dd” 删除当前整行 ;“x” 删除当前光标处字符
- “nG” 进入第n行的行首,“G” 直接进入末行行首
- "/字段" 进行查找(从上往下);“?字段” 从下往上查找 ; “n” 下一个 ;“N” 上一个
- "i" 在光标所在字符前开始插入;"a" 在光标所在字符后开始插入 ;"o" 在光标所在行的下面另起一新行插入
- u 撤销 ; “^”快速定位到行首; “$” 快速定位到行末”
-
底行模式:
- “:q” 退出编辑 ; “:q!” 强制退出 ;“:wq” 保存并退出
- “:%s/字段”
用户管理
相关概念
- /etc/passwd文件是用户管理工作涉及的最重要的一个文件。/etc/passwd中一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如:
用户名:口令:用户标识-号:组标识号:注释性描述:主目录:登录Shell
用户
增(useradd)
useradd 选项 用户名
选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
- -l 新用户名 指定一个新的账号,即将原来的用户名改为新的用户名
增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等
删(userdel)
userdel 选项 用户名
选项:-r 把用户的主目录一起删除
改(usermod)
更改用户的有关属性,如用户号、主目录、用户组、登录Shell等
usermod 选项 用户名
选项:包括-c, -d, -m, -g, -G, -s, -u以及-o等
,这些选项的意义与useradd
命令中的选项一样
# usermod -s /bin/ksh -d /home/z –g developer qiqi //此命令将用户qiqi的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer。
查(id)
用户的信息记录在 /etc/passwd;组的信息记录在/etc/group里,使用more命令查看
id 用户名 //查看用户信息
用户口令的管理
- 用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
passwd 选项 用户名
选项:
- -l 锁定口令,即禁用账号。(lock)
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
- 若用户名缺省,则修改当前用户的口令。
组
- 组的增加、删除和修改实际上就是对/etc/group文件的更新。
增(groupadd)
-
-
groupadd 选项 用户组
选项:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
-
删(groupdel)
-
-
groupdel 用户组
-
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。
-
$ newgrp root
系统设置命令
echo
- 显示内容,如果涉及变量,需要在变量前加上 \$ 符号;删除变量 unset 变量名
export
- 用于设置或显示环境变量
export [-fnp] [变量名称]=[变量设置值]
alias
- 设置别名。仅输入alias,则可列出目前所有的别名设置。删除别名使用 unalias 别名
alias [别名]=[指令名称]
source
网络命令
ifconfig
uname -a 查看系统信息
hostname
cat /proc/version 查看具体版本信息
netstat
显示网络状态
netstat -anp | grep :22 //用户查看22端口信息;a:all 显示所有连线中的socket;n:numeric 直接使用IP地址 ; p:programs 显示正在使用socket的程序识别码和程序名称
ping
主要来检查网络是否畅通。执行ping指令会使用ICMP传输协议。
ping [ip]
telnet
连接远程。默认访问23端口;要访问33端口,则 telnet ip 33
ssh
跨服务器
ssh 用户名@ip //默认访问22端口,使用exit退出
scp
远程复制文件
scp [-r] 用户名@ip:目标文件路径 欲存放到本地的文件路径 //r为对目录操作
scp root@192.168.6.128:/root/haha/1.log . //将对方服务器上的1.log下载到本地当前目录下 scp ./2.log root@192.168.6.128:/root/haha //上传文件2.log到对方服务器
ftp
sftp
传输文件,get——取;put——上传
资源管理
df du
查看磁盘资源
mount
挂载;解除挂载:unmount 挂载点
top
实时查看系统的资源情况;vmstat也可以查看资源:vmstat 1 5 每一秒监控一次,输出五次
top -n 2 -b > 1.log //将更新显示二次的结果输入到名称为 1.log 的文件里 //-n:更新的次数,完成后退出top;-b:搭配 "n" 参数一起使用,可以用来将 top 的结果输出到文件内
ps
查看系统运行的进程,一般使用ps -ef | grep 进程名 获取进程id,使用kill [-9] 进程id 就可以停止 // -9 参数为彻底杀死进程;kill -KILL 强制杀死进程
service sshd start ——启动ssh服务
ps -ef //显示所有命令,连带命令行 ps -auxf | sort -nr -k 4 | head -10 //找出占用内存资源最多的前10个进程。 ps -auxf | sort -nr -k 3 | head -10 //找出占CPU资源最多的前10个进程
备份压缩
gzip
- 生成“.gz”的压缩包。只会压缩单个文件,单个文件压缩成单个包。不保留源文件
- gzip -d或gunzip 解压,解压中有目录需要加-r参数。-r 是压缩目录的,表示递归,本身gzip不压缩目录
gzip [参数] 文件名/目录
bzip
- 生成“.bz2”的压缩包。不保留源文件
- bzip -d 或bunzip 解压。
zip
- 生成“.zip”的压缩包。保留源文件
- unzip解压,这里-d表示从压缩文件内删除指定的文件
zip -r cp1.zip /root/ //压缩/root/目录生成名为“cp1.zip”的包
tar
- 用于备份文件
tar -cvf qiqi.tar qiqi //压缩 tar -xvf qiqi.tar //默认解压到当前,通过-C指向解压到的位置 //tar -xvf qiqi.tar -C /home
- 对于.tar.gz 或者.tgz
tar -zcvf qiqi.tar.gz qiqi //压缩 tar -zvxf qiqi.tar.gz //解压
war
- web项目包,java的
-
jar -xvf XX.war
jar
- jar包,里边是方法class,java的
rpm
- 是redhat专用包
-
+ 安装:rpm -ivh XXXX.rpm [--force] [--nodeps]-------解释:--force 强制 --nodeps 不依赖
+ 卸载:rpm -e XXXX.rpm [--force] [--nodeps]
+ 升级:rpm -Uvh XXXX.rpm
+ 查看已经安装了哪些rpm包:rpm -qa | grep XX
其他命令
grep(三剑客之一)
- 用于查找文件里符合条件的字符串
grep -i "the" demo_file //在文件中查找字符串(不区分大小写) grep -A 3 -i "example" demo_text //输出成功匹配的行,以及该行之后的三行 grep -r "ramesh" * //在一个文件夹中递归查询包含指定字符串的文件
-
- n或--line-number 在显示符合范本样式的那一列之前,标示出该列的列数编号。
- -i或--ignore-case 忽略字符大小写的差别。
- -v 反向查找 ; -V 显示版本信息
- [] 范围匹配,如:grep "qiqi[925]" qiqi.txt ,结果为qiqi9,qiqi2,qiqi5;
- . 表示一位,如:grep -n "1[3578]........." phone.txt 匹配移动的电话号码; .* 表示任意,相当于 like "%%"
- 一行以什么开头的关键字 ^ ; 一行以什么结尾 $ ;
- | 管道符。二次次搜索,相当于且。
sed(三剑客之一)
awk(三剑客之一)
sort
- 排序的:sort -nr -k 4 qiqi.txt ——对第4列数字排序,倒序
wc
- 用于计算字数,默认的情况下,wc将计算指定文件的行数、字数,以及字节数
wc [-clw][--help][--version][文件...]