Linux实操命令学习笔记

Linux实操命令

一、开关机、重启、用户登录注销

shutdown:条件关机

#表示立即关机
shutdown -h now
# 表示1分钟后关机
shutdown -h 1
# 立即重启
shutdown -r now

就是直接使用,效果等价于关机
就是重启系统。
把内存的数据同步到磁盘

halt:关机

reboot:重启

sync:内存数据持久化到磁盘

当我们关机或者重启时,都应该先执行以下sync指令,把内存的数据写入磁盘,防止数据丢失。

logout:注销用户

logout在图形运行级别中无效,运行级别3下有效

二、用户管理

useradd:添加用户

# 如果创建用户没有指定组,则会创建一个和用户同名的组,把他放在该组之下,/home/目录下会多一个xm的目录
useradd helin
# 指定用户目录(会自动创建/home/hss目录,如果先创建会提示已有目录创建失败)
useradd -d /home/hss helin
# 创建用户时直接把他加入he用户组
useradd -g he helin

passwd:给用户设置密码

# 给用户设置密码。即使出现无效的密码,只要第二次输入和第一次匹配依然可以创建成功
passwd helin
更改用户 helin 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
无效的密码: 密码包含用户名在某些地方
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 已经超出服务重试的最多次数
# 如果成功
passwd:所有的身份验证令牌已经成功更新。

userdel:删除用户

# 删除用户不删除/home/helin目录
userdel helin
# 删除用户以及/home/helin目录
userdel -r helin

id:查询用户信息

# uid:用户id  gid:所在组id  组:组名称
[helin@localhost /]$ id helin
uid=1000(helin) gid=1000(helin)=1000(helin)
[helin@localhost /]$ id root
uid=0(root) gid=0(root)=0(root)
# 如果用户不存在
[helin@localhost /]$ id he
id: he: no such user

su:切换用户

# 低权限用户切换到同权限或高权限用户需要输入密码
[helin@localhost /]$ su
密码:
# 输入exit返回原用户
[root@localhost /]$ exit
exit
[helin@localhost /]$ 

# 高权限用户切换到低权限用户不需要输入密码
[root@localhost home]$ su helin
[helin@localhost home]$ exit
exit
您在 /var/spool/mail/root 中有新邮件	#登陆日志会记录
[root@localhost home]$ cd /var/spool/mail/root

三、用户组

groupadd:增加组

[root@localhost ~]$ groupadd he

groupdel:删除组

[root@localhost ~]$ groupdel he

usermod:修改用户的组

# user -g 用户组 用户名
[root@localhost home]$ usermod -g he helin
[root@localhost home]$ id helin
uid=1000(helin) gid=1001(he)=1001(he)

四、用户配置文件

/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
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
jenkins:x:998:994:Jenkins Automation Server:/var/lib/jenkins:/bin/false
gitlab-www:x:997:993::/var/opt/gitlab/nginx:/bin/false
git:x:996:992::/var/opt/gitlab:/bin/sh
gitlab-redis:x:995:991::/var/opt/gitlab/redis:/bin/false
gitlab-psql:x:994:990::/var/opt/gitlab/postgresql:/bin/sh
registry:x:993:989::/var/opt/gitlab/registry:/bin/sh
gitlab-prometheus:x:992:988::/var/opt/gitlab/prometheus:/bin/sh
# helin:用户名 x:密码 1000:用户id 1001:组id  [空格]:注释 /home/helin:主目录 /bin/bash:登陆shell
helin:x:1000:1001::/home/helin:/bin/bash

/etc/shadow 文件

  • 密码口令的配置文件
root:$6$peFneqycKw7tWHom$BIMcVZRoyz/20trdcX90XPxMvBF7UfwAmUnOho2Pb7nzjcLkLXFSUfr0EeVLMuGQgdCtcGmohNOMMRcs4X7AV1::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::
lp:*:17632:0:99999:7:::
sync:*:17632:0:99999:7:::
shutdown:*:17632:0:99999:7:::
halt:*:17632:0:99999:7:::
mail:*:17632:0:99999:7:::
operator:*:17632:0:99999:7:::
games:*:17632:0:99999:7:::
ftp:*:17632:0:99999:7:::
nobody:*:17632:0:99999:7:::
systemd-network:!!:18274::::::
dbus:!!:18274::::::
polkitd:!!:18274::::::
tss:!!:18274::::::
sshd:!!:18274::::::
postfix:!!:18274::::::
jenkins:!!:18278::::::
gitlab-www:!!:18282::::::
git:!!:18282::::::
gitlab-redis:!!:18282::::::
gitlab-psql:!!:18282::::::
registry:!!:18282::::::
gitlab-prometheus:!!:18282::::::
# helin:用户名 $6$iVe……:加密密码 18283:最后一次修改时间 0:最小时间间隔 99999:最大时间间隔 7:警告时间 
# [空格]:不活动时间 [空格]:失效时间 [空格]:标志
helin:$6$iVepFI8W$MFhTqifwXzAEZ4jXl3CB8JkzVJGH0GYMZdI9ZdajXDomH97YW5HplPvWasxiMUlXAicAxNfn9FtzvdjYY4nII/:18283:0:99999:7:::

/etc/group 文件

  • 组的配置文件
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
tss:x:59:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
cgred:x:996:
docker:x:995:
jenkins:x:994:
gitlab-www:x:993:
git:x:992:
gitlab-redis:x:991:
gitlab-psql:x:990:
registry:x:989:
gitlab-prometheus:x:988:
# helin:组名 x:密码 1000:组id [空格]:组内用户列表
helin:x:1000:
he:x:1001:

五、运行级别

  • 七个运行级别
  1. 关机
  2. 单用户【找回丢失密码】
  3. 多用户状态没有网络服务【类似安全模式】
  4. 多用户状态有网络服务【命令行模式】
  5. 系统未使用保留给用户
  6. 图形界面
  7. 系统重启
  • 常用的运行级别是3和5
# 编辑/etc/inittab文件
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target

#CentOS6才有此行,修改其数字可以变更默认运行级别
id:5:initdefault

init:切换到指定运行级别

# 关机
[root@localhost etc]$ init 0 

六、帮助指令

man:获取帮助信息

man ls

###
NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information  about  the  FILEs  (the  current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor
       --sort is specified.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              do not ignore entries starting with .

       -A, --almost-all
              do not list implied . and ..

等等……

# 输入h获取帮助或输入q退出

help:获得shell内置命令的帮助信息

[root@localhost etc]$ help cd
cd: cd [-L|[-P [-e]]] [dir]
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
    
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
    
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
    
    Options:
        -L	force symbolic links to be followed
        -P	use the physical directory structure without following symbolic
    	links
        -e	if the -P option is supplied, and the current working directory
    	cannot be determined successfully, exit with a non-zero status
    
    The default is to follow symbolic links, as if `-L' were specified.
    
    Exit Status:
    Returns 0 if the directory is changed, and if $PWD is set successfully when
    -P is used; non-zero otherwise.


七、文件目录

pwd:显示当前工作目录的绝对路径

[root@localhost etc]$ pwd
/etc

ls:显示当前目录文件和目录

[helin@localhost home]$ ls
helin
# 显示当前目录所有文件和目录,包括隐藏的
[helin@localhost home]$ ls -a
.  ..  helin
# 以列表的方式和显示信息,可以和a一起用
[helin@localhost home]$ ls -la
总用量 0
drwxr-xr-x.  3 root  root  19 1月  22 22:17 .
dr-xr-xr-x. 20 root  root 274 1月  15 19:12 ..
drwx------   2 helin he    83 1月  22 22:43 helin

cd:切换到指定目录

# 回到自己的/home/helin目录
[helin@localhost home]$ cd ~	#或[helin@localhost home]$ cd
[helin@localhost ~]$
# 回到当前目录的上级目录
[helin@localhost ~]$ cd ..		#../../返回当前目录上两级目录
[helin@localhost home]$
#回到根目录
[helin@localhost home]$ cd /
[helin@localhost /]$

mkdir:创建目录

# 创建单目录
[helin@localhost ~]$ mkdir a
[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 2 helin helin 6 1月  23 00:09 a
# 如果上级目录不存在会报错
[helin@localhost ~]$ mkdir b/a
mkdir: 无法创建目录"b/a": 没有那个文件或目录
# 创建多级目录,中间不存在的目录都会创建
[helin@localhost ~]$ mkdir -p b/a

rmdir:删除目录

[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 2 helin helin  6 1月  23 00:09 a
drwxrwxr-x 3 helin helin 15 1月  23 00:11 b
# 删除空目录
[helin@localhost ~]$ rmdir a
[helin@localhost ~]$ ll
总用量 0
drwxrwxr-x 3 helin helin 15 1月  23 00:11 b
# 如果目录不为空,则会删除失败
[helin@localhost ~]$ rmdir b
rmdir: 删除 "b" 失败: 目录非空

touch:创建空文件

# 创建单个文件,如果文件存在,则不会创建
[helin@localhost ~]$ touch a.txt
[helin@localhost ~]$ ls
a.txt
# 创建多个文件
[helin@localhost ~]$ touch b.txt c.txt
[helin@localhost ~]$ ls
a.txt  b.txt  c.txt

cp:拷贝文件到指定目录

[helin@localhost ~]$ ll
总用量 8
-rw-rw-r-- 1 helin helin  9 1月  23 00:17 a.txt
-rw-rw-r-- 1 helin helin 12 1月  23 00:17 b.txt
-rw-rw-r-- 1 helin helin  0 1月  23 00:15 c.txt
drwxrwxr-x 2 helin helin  6 1月  23 00:19 dir
-rw-rw-r-- 1 helin helin  0 1月  23 00:17 d.txt
# 拷贝文件a.txt到dir/文件夹中
[helin@localhost ~]$ cp a.txt dir/


[helin@localhost ~]$ ls
a.txt  b.txt  c.txt  dir  dir1  d.txt
# 递归复制dir整个文件夹到dir1/目录下,目标目录下有相同文件会提示是否覆盖
[helin@localhost ~]$ cp -r dir dir1/

# 强制覆盖不提示的方法
[helin@localhost ~]$ \cp -r dir dir1/

rm:删除文件或目录

[helin@localhost ~]$ ll
总用量 8
-rw-rw-r-- 1 helin helin  9 1月  23 00:24 a.txt
-rw-rw-r-- 1 helin helin 12 1月  23 00:17 b.txt
-rw-rw-r-- 1 helin helin  0 1月  23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月  23 00:19 dir
drwxrwxr-x 3 helin helin 17 1月  23 00:21 dir1
-rw-rw-r-- 1 helin helin  0 1月  23 00:17 d.txt
# 删除文件
[helin@localhost ~]$ rm b.txt 
[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin  9 1月  23 00:24 a.txt
-rw-rw-r-- 1 helin helin  0 1月  23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月  23 00:19 dir
drwxrwxr-x 3 helin helin 17 1月  23 00:21 dir1
-rw-rw-r-- 1 helin helin  0 1月  23 00:17 d.txt

#无法直接删除文件夹
[helin@localhost ~]$ rm dir
rm: 无法删除"dir": 是一个目录

#递归删除整个目录
[helin@localhost ~]$ rm -r dir
[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin  9 1月  23 00:24 a.txt
-rw-rw-r-- 1 helin helin  0 1月  23 00:15 c.txt
drwxrwxr-x 3 helin helin 17 1月  23 00:21 dir1
-rw-rw-r-- 1 helin helin  0 1月  23 00:17 d.txt

#递归强制删除不提示
[helin@localhost ~]$ rm -rf dir1

mv:移动文件目录或重命名

[helin@localhost ~]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月  23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月  23 00:15 c.txt
drwxrwxr-x 2 helin helin 6 1月  23 00:28 dir
-rw-rw-r-- 1 helin helin 0 1月  23 00:17 d.txt
# 移动文件
[helin@localhost ~]$ mv a.txt dir/
[helin@localhost ~]$ ll
总用量 0
-rw-rw-r-- 1 helin helin  0 1月  23 00:15 c.txt
drwxrwxr-x 2 helin helin 19 1月  23 00:29 dir
-rw-rw-r-- 1 helin helin  0 1月  23 00:17 d.txt

# 移动文件同时重命名,如果只要重命名就把目标目录设为当前目录
[helin@localhost ~]$ mv c.txt dir/cc.txt
[helin@localhost ~]$ cd dir
[helin@localhost dir]$ ll
总用量 4
-rw-rw-r-- 1 helin helin 9 1月  23 00:24 a.txt
-rw-rw-r-- 1 helin helin 0 1月  23 00:15 cc.txt

cat:以只读的方式打开文件查看内容

# 查看内容
[helin@localhost dir]$ cat a.txt 
1111111

# 显示行号
[helin@localhost dir]$ cat -n a.txt 
     1	1111111
     2	
# 带上管道命令进行分页浏览
[helin@localhost dir]$ cat -n a.txt |more

more:全屏分页显示文本内容

# 查看内容
[helin@localhost dir]$ more a.txt

  • 快捷键
操作 功能说明
space 向下翻一页
enter 向下翻一行
q 离开more
ctrl+f 向下滚动一屏
ctrl+b 返回上一屏
= 输出当前行号
:f 输出文件名和当前行的行号

less:分屏查看文件内容

  • 类似more,但强于more。部分加载,所以大文件打开效率高
# 查看内容
[helin@localhost dir]$ less a.txt

  • 快捷键
操作 功能说明
space 向下翻一页
pagedown 向下翻一页
pageup 向上翻一页
/字符串 向下搜索字符串,n:向下查找 N:向上查找
?字符串 向上搜索字符串,n:向上查找 N:向下查找
q 离开less

>:输出重定向(将原来的文件内容覆盖)

# 把当前目录覆写到d.txt中
[helin@localhost ~]$ ls -l >d.txt 
[helin@localhost ~]$ cat d.txt 
总用量 0
drwxrwxr-x 2 helin helin 33 1月  23 00:36 dir
-rw-rw-r-- 1 helin helin  0 1月  23 14:47 d.txt

>>:追加(追加内容到文件尾部)

# 把当前内容追加到文件尾部
[helin@localhost ~]$ ls -al >>d.txt 
[helin@localhost ~]$ cat d.txt 
总用量 0
drwxrwxr-x 2 helin helin 33 1月  23 00:36 dir
-rw-rw-r-- 1 helin helin  0 1月  23 14:47 d.txt
总用量 28
drwx------  3 helin he     139 1月  23 00:48 .
drwxr-xr-x. 3 root  root    19 1月  22 22:17 ..
-rw-------  1 helin he     799 1月  23 00:50 .bash_history
-rw-r--r--  1 helin he      18 4月  11 2018 .bash_logout
-rw-r--r--  1 helin he     193 4月  11 2018 .bash_profile
-rw-r--r--  1 helin he     231 4月  11 2018 .bashrc
drwxrwxr-x  2 helin helin   33 1月  23 00:36 dir
-rw-rw-r--  1 helin helin  108 1月  23 14:47 d.txt
-rw-------  1 helin helin   41 1月  23 00:48 .lesshst
-rw-------  1 helin helin 1729 1月  23 00:36 .viminfo

echo:输出内容到控制台

#输出环境变量
[helin@localhost ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/helin/.local/bin:/home/helin/bin

head:默认显示文件前10行

# 显示前10行
[helin@localhost dir]$ head a.txt 
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
1111111
# 查看前3行,行数可以任意
[helin@localhost dir]$ head -n 3 a.txt 
1111111
1111111
1111111

tail:默认显示文件后10行

# 显示后10行
[helin@localhost dir]$ tail cc.txt 
111111
222222
333333
444444
555555
666666
777777
888888
999999
000000
# 查看后3行,行数可以任意
[helin@localhost dir]$ tail -n 3 cc.txt 
888888
999999
000000

#实时追踪文档更新,常用于查看日志
[helin@localhost dir]$ tail -f cc.txt 
111111
222222
333333
444444
555555
666666
777777
888888
999999
000000
# 输入ctrl+c退出监控

ln:软链接

# 建立软链接,在/home/helin目录下创建一个指向/home/helin/dir/a.txt的软链接,名叫alink.txt
[helin@localhost ~]$ ln -s /home/helin/dir/a.txt alink.txt
[helin@localhost ~]$ ll
总用量 4
lrwxrwxrwx 1 helin he     21 1月  23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin  33 1月  23 14:55 dir
-rw-rw-r-- 1 helin helin 660 1月  23 14:49 d.txt
[helin@localhost ~]$ head -n 3 alink.txt 
1111111
1111111
1111111
# 删除软链接(不会删除到源文件)
[helin@localhost ~]$ rm -rf alink.txt

history:查看已经执行过的历史命令,也可以执行历史命令

# 查看历史命令
[helin@localhost ~]$ history
    1  exit
    2  ll
    3  pwd
    4  useradd he
    5  su useradd he
    6  sudo useradd he
    7  sudo
    8  sudo -V
…………等等

# 查看历史3个命令
[helin@localhost ~]$ history 3
  125  head -n 3 alink.txt 
  126  history
  127  history 3
 
# 执行第127个命令
[helin@localhost ~]$ !127
history 3
  125  head -n 3 alink.txt 
  126  history
  127  history 3

wc:计算文件字数

# 计算d.txt的行数,字数,字节数  14:行数  112:字数  660:字节数
[helin@localhost ~]$ wc d.txt 
 14 112 660 d.txt
 
 # 统计多个文件
 [helin@localhost ~]$ wc d.txt helintask.sh 
 14 112 660 d.txt
  1   3  31 helintask.sh
 15 115 691 总用量
 
 # 只显示字节数
 [helin@localhost ~]$ wc -c d.txt 
660 d.txt

# 只显示字数
[helin@localhost ~]$ wc -w d.txt 
112 d.txt

# 只显示行数
[helin@localhost ~]$ wc -l d.txt 
14 d.txt

八、时间日期

date:显示当前日期

# 显示当前时间
[helin@localhost ~]$ date
2020年 01月 23日 星期四 15:16:15 CST

# 显示当前年月日
[helin@localhost ~]$ date "+%Y-%m-%d"
2020-01-23

# 显示当前年月日时分秒
[helin@localhost ~]$ date "+%Y-%m-%d %H:%M:%S"
2020-01-23 15:18:45

# 设置当前时间
[helin@localhost ~]$ date -s "2020-01-10 11:11:11"
2020年 01月 10日 星期五 11:11:11 CST
[helin@localhost ~]$ date
2020年 01月 10日 星期五 11:11:11 CST

cal:查看日历

# 查看日历,当天是23日,所以23会高亮
[helin@localhost ~]$ cal
      一月 2020     
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 '23' 24 25
26 27 28 29 30 31

# 显示2020年日历
[helin@localhost ~]$ cal 2020
                               2020                               

        一月                   二月                   三月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
          1  2  3  4                      1    1  2  3  4  5  6  7
 5  6  7  8  9 10 11    2  3  4  5  6  7  8    8  9 10 11 12 13 14
12 13 14 15 16 17 18    9 10 11 12 13 14 15   15 16 17 18 19 20 21
19 20 21 22 '23' 24 25   16 17 18 19 20 21 22   22 23 24 25 26 27 28
26 27 28 29 30 31      23 24 25 26 27 28 29   29 30 31

        四月                   五月                   六月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
          1  2  3  4                   1  2       1  2  3  4  5  6
 5  6  7  8  9 10 11    3  4  5  6  7  8  9    7  8  9 10 11 12 13
12 13 14 15 16 17 18   10 11 12 13 14 15 16   14 15 16 17 18 19 20
19 20 21 22 23 24 25   17 18 19 20 21 22 23   21 22 23 24 25 26 27
26 27 28 29 30         24 25 26 27 28 29 30   28 29 30
                       31
        七月                   八月                   九月        
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
          1  2  3  4                      1          1  2  3  4  5
 5  6  7  8  9 10 11    2  3  4  5  6  7  8    6  7  8  9 10 11 12
12 13 14 15 16 17 18    9 10 11 12 13 14 15   13 14 15 16 17 18 19
19 20 21 22 23 24 25   16 17 18 19 20 21 22   20 21 22 23 24 25 26
26 27 28 29 30 31      23 24 25 26 27 28 29   27 28 29 30
                       30 31
        十月                  十一月                 十二月       
日 一 二 三 四 五 六   日 一 二 三 四 五 六   日 一 二 三 四 五 六
             1  2  3    1  2  3  4  5  6  7          1  2  3  4  5
 4  5  6  7  8  9 10    8  9 10 11 12 13 14    6  7  8  9 10 11 12
11 12 13 14 15 16 17   15 16 17 18 19 20 21   13 14 15 16 17 18 19
18 19 20 21 22 23 24   22 23 24 25 26 27 28   20 21 22 23 24 25 26
25 26 27 28 29 30 31   29 30                  27 28 29 30 31

九、搜索查找

find:从指定目录向下递归遍历子目录,查找所有满足条件的文件和目录

# 查询/home目录下叫cc.txt的文件和目录(精确查询)  -name:指定文件名方式查找
[helin@localhost ~]$ find /home -name cc.txt
/home/helin/dir/cc.txt
# 用通配符模糊查询,需要带引号
[helin@localhost ~]$ find /home -name "*.txt"
/home/helin/d.txt
/home/helin/dir/cc.txt
/home/helin/dir/a.txt
/home/helin/alink.txt

# 查询/home目录下用户名为helin的文件和目录  -user:指定所属用户方式查找
[helin@localhost ~]$ find /home -user helin
/home/helin
/home/helin/.bash_logout
/home/helin/.bash_profile
/home/helin/.bashrc
/home/helin/.bash_history
/home/helin/d.txt
/home/helin/dir
/home/helin/dir/cc.txt
/home/helin/dir/a.txt
/home/helin/.lesshst
/home/helin/.viminfo
/home/helin/alink.txt

# 查询/home 目录下大于1kb的文件(+n:大于 -n:小于 n:等于)   -size:指定文件大小范围方式查找
[helin@localhost ~]$ find /home -size +1k
/home/helin/dir/a.txt
/home/helin/.viminfo

locate:快速定位文件路径

# 由于locate基于数据库进行查询,第一次运行前必须使用updatedb创建locate数据库
[root@localhost helin]# updatedb
#如果出现“-bash: updatedb: 未找到命令”,则安装mlocate包
[helin@localhost ~]$ su root
密码:
[root@localhost helin]# yum -y install mlocate

# 搜索
[helin@localhost ~]$ locate cc.txt
/home/helin/dir/cc.txt

grep:过滤查找

  • |:管道符,表示将前一个命令的处理结果输出传递给后面的命令进行处理
# 显示cc.txt文件中0的所在之处,匹配默认区分大小写 -n:显示匹配行以及行号
[helin@localhost ~]$ cat /home/helin/dir/cc.txt|grep -n 0
10:00000
20:000000
# 显示cc.txt文件中YY的所在之处,忽略大小写  -i:忽略字母大小写
[helin@localhost ~]$ cat /home/helin/dir/cc.txt|grep -ni YY
11:yyyYYY
12:yYadd

十、压缩解压

gzip:压缩文件

# 压缩文件,不保留原文件
[helin@localhost dir]$ gzip a.txt 
[helin@localhost dir]$ ll
总用量 8
-rw-rw-r-- 1 helin he     57 1月  23 00:36 a.txt.gz
-rw-rw-r-- 1 helin helin 220 1月  23 15:00 cc.txt

gunzip:解压文件

# 解压文件,不保留压缩包
[helin@localhost dir]$ gunzip a.txt.gz 
[helin@localhost dir]$ ll
总用量 12
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt

zip:压缩文件

# 把dir/目录压缩成dir.zip文件  -r:递归压缩目录
[helin@localhost ~]$ zip -r dir.zip dir/
  adding: dir/ (stored 0%)
  adding: dir/cc.txt (deflated 59%)
  adding: dir/a.txt (deflated 100%)
[helin@localhost ~]$ ll
总用量 8
lrwxrwxrwx 1 helin he     21 1月  23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin  33 1月  23 16:00 dir
-rw-r--r-- 1 helin he    576 1月  23 16:02 dir.zip
-rw-rw-r-- 1 helin helin 660 1月  23 14:49 d.txt

unzip:解压文件

# 解压文件到/home/helin目录  -d:指定解压文件存放目录
[helin@localhost ~]$ unzip -d /home/helin/ dir.zip 
Archive:  dir.zip
# 已有文件,是否覆盖cc.txt
# [y]es,[n]o,[A]ll,[None],[r]ename
replace /home/helin/dir/cc.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: cc1
  inflating: /home/helin/cc1        
replace /home/helin/dir/a.txt? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: a1
  inflating: /home/helin/a1          
[helin@localhost ~]$ ll
总用量 20
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a1
lrwxrwxrwx 1 helin he      21 1月  23 15:02 alink.txt -> /home/helin/dir/a.txt
drwxrwxr-x 2 helin helin   33 1月  23 16:00 dir
-rw-rw-r-- 1 helin he     220 1月  23 15:00 cc1
-rw-r--r-- 1 helin he     576 1月  23 16:02 dir.zip
-rw-rw-r-- 1 helin helin  660 1月  23 14:49 d.txt

tar:打包解压

  • 压缩
# 把cc1.txt、a1.txt、d.txt压缩成dir.tar.gz
[helin@localhost ~]$ tar -zcvf dir.tar.gz cc1.txt a1.txt d.txt 
cc1.txt
a1.txt
d.txt
[helin@localhost ~]$ ll
总用量 24
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a1.txt
lrwxrwxrwx 1 helin he      21 1月  23 15:02 alink.txt -> /home/helin/dir/a.txt
-rw-rw-r-- 1 helin he     405 1月  23 16:12 cc1.txt
drwxrwxr-x 2 helin helin   33 1月  23 16:00 dir
-rw-r--r-- 1 helin he     948 1月  23 16:13 dir.tar.gz
-rw-r--r-- 1 helin he     576 1月  23 16:02 dir.zip
-rw-rw-r-- 1 helin helin  660 1月  23 14:49 d.txt

  • 解压
# 把dir.tar.gz解压到/home/helin/dir/目录中  -C:指定解压目录,该目录必须存在
[helin@localhost ~]$ tar -zxvf dir.tar.gz -C /home/helin/dir/ 
cc1.txt
a1.txt
d.txt
[helin@localhost ~]$ cd dir
[helin@localhost dir]$ ll
总用量 28
-rw-r--r-- 1 helin he    6601 1月  23 00:36 a1.txt
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-r--r-- 1 helin he     405 1月  23 16:12 cc1.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt

  • 压缩指令选项
选项 功能
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后文件名
-z 打包同时压缩
-x 解压.tar文件

十一、组管理

  • 每个文件都有

    1. 所有者:一般是文件的创建者
    2. 所在组:用户创建文件后,文件所在组默认为用户所在组
    3. 其他组:除了文件所有者的所在组和文件的所在组以外,系统其它的组都是其它组
    4. 改变用户所在的组

    的概念。

ls -ahl:查看文件的所有者和所在组

# 查看文件所有者,第一列helin为文件的所有者,第二列为所在组
[helin@localhost dir]$ ls -ahl
总用量 28K
drwxrwxr-x 2 helin helin   75 1月  23 16:49 .
drwx------ 3 helin he     218 1月  23 16:13 ..
-rw-r--r-- 1 helin he    6.5K 1月  23 00:36 a1.txt
-rw-rw-r-- 1 helin he    6.5K 1月  23 00:36 a.txt
-rw-r--r-- 1 helin he     405 1月  23 16:12 cc1.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt

chown:修改文件所有者

[root@localhost dir]$ touch root.txt
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 root  root     0 1月  23 17:07 root.txt

# 修改文件所有者为helin
[root@localhost dir]$ chown helin root.txt 
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 helin root     0 1月  23 17:07 root.txt

# 修改d.txt所有者为helin,所在组为he  -R:处理指定目录以及目录下所有文件
[root@localhost helin]$ chown -R helin:he d.txt 
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxr-xr-x 1 helin he    660 1月  23 14:49 d.txt

# 若文件是其他所有者的
[root@localhost dir]$ chown root root.txt 
[root@localhost dir]$ ll
总用量 16
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 root  root     0 1月  23 17:07 root.txt
# 其他用户只有只读权限
[helin@localhost dir]$ cat root.txt 
root
[helin@localhost dir]$ vim root.txt #只有只读权限
# 如果要强行写入,输入wq!强制执行,执行后文件的所有者和所在组均变为修改用户的
[helin@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 helin he       8 1月  23 17:18 root.txt

chgrp:修改文件所在组

# 修改文件的所在组为helin
[root@localhost dir]$ chgrp helin root.txt 
[root@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 helin helin    8 1月  23 17:18 root.txt

# 修改目录下所有的文件和目录的所在组为he
[root@localhost dir]$ chgrp -R he root.txt 
[root@localhost dir]$ ll
总用量 20
-rw-rw-r-- 1 helin he    6601 1月  23 00:36 a.txt
-rw-rw-r-- 1 helin helin  220 1月  23 15:00 cc.txt
-rw-r--r-- 1 helin he     660 1月  23 14:49 d.txt
-rw-r--r-- 1 helin he    8 1月  23 17:18 root.txt

usermod:改变用户所在组

# 查看helin的当前所在组为he
[root@localhost dir]# id helin
uid=1000(helin) gid=1001(he)=1001(he)

# 修改helin的所在组为helin   第一个helin:组名  第二个helin:用户名
[root@localhost dir]# usermod -g helin helin
[root@localhost dir]# id helin
uid=1000(helin) gid=1000(helin)=1000(helin)

# 修改helin用户home目录到/home/he/目录下
[root@localhost ~]$ usermod -d /home/he/ helin

十二、权限管理

文件目录基本属性说明

[helin@localhost ~]$ ll
总用量 4
# 第1个字符'-':文件类型(-:普通文件 d:目录 l:软链接 c:串口设备[键鼠] b:块文件[硬盘])
# 第2-4个字符'rw-':文件所有者权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--User
# 第5-7个字符'rw-':文件所在组用户的权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--Group
# 第8-10个字符'r--':文件其它组的用户拥有的权限(1.读r 2.写w 3.执行x,权限位置不变,没有权限为'-')--Other
# 后面的'1':如果是文件,表示硬链接数;如果是目录则表示子目录个数
# 后面'helin helin':分别表示文件所有者和所在组
# 后面'660':表示文件或目录大小660字节
# 后面'1月 23 14:49':文件最后修改时间
# 后面'd.txt':文件名
-rw-rw-r-- 1 helin helin 660 1月  23 14:49 d.txt
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir

  • rwx权限详解

rwx作用到文件

  1. [r]代表可读(read):可以读取,查看
  2. [w]代表可写( write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该
    文件所在的目录有写权限,才能删除该文件.
  3. [x]代表可执行( execute:可以被执行

rwx作用到目录

  1. [r]代表可读(read):可以读取,ls查看目录内容
  2. [w]代表可写( write):可以修改,目录内创建+删除+重命名目录
  3. [x]代表可执行( execute):可以进入该目录

rwx的数字表示(r=4,w=2,x=1)

  • 因此
    • rw=6,rx=5,wx=3
    • rwx=7

chmod:修改文件或目录权限

  • 变更权限
    1. =:设置权限
    2. +:增加权限
    3. -:移除权限
  • 权限主体
    1. u:所有者权限(user)
    2. g:所在组用户权限(group)
    3. o:其它组用户权限(other)
    4. a:所有用户权限(all)
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rw-rw-r-- 1 helin helin 660 1月  23 14:49 d.txt
# 修改d.txt权限,所有者([u]ser)权限改为rwx,所在组([g]roup)用户权限改为r-x,其它组([o]ther)用户权限改为--x

[root@localhost helin]$ chmod u=rwx,g=rx,o=x d.txt 
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxr-x--x 1 helin helin 660 1月  23 14:49 d.txt

# 删除d.txt文件的other中x权限
[root@localhost helin]$ chmod o-x d.txt 
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxr-x--- 1 helin helin 660 1月  23 14:49 d.txt

# 删除d.txt文件的group中x权限,添加w权限
[root@localhost helin]$ chmod g-x,g+w d.txt 
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxrw---- 1 helin helin 660 1月  23 14:49 d.txt

# 数字方式变更权限,等于u=rwx,g=r-x,o=r-x
[root@localhost helin]$ chmod 755 d.txt 
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxr-xr-x 1 helin helin 660 1月  23 14:49 d.txt

# 修改dir目录下所有文件和目录的权为775
[root@localhost helin]$ chmod -R 775 dir/
[root@localhost helin]$ ll
总用量 4
drwxrwxr-x 2 helin helin  62 1月  23 17:26 dir
-rwxr-xr-x 1 helin he    660 1月  23 14:49 d.txt

十三、定时(crond)任务调度

crontab:操作定时任务

  • linux的cron表达式
项目 含义 范围
第一个* 一小时中的第几分钟 0~59
第二个* 一天中的第几小时 0~23
第三个* 一个月中的第几天 1~31
第四个* 一年中的第几个月 1~12
第五个* 一周中的星期几 0~7(0和7都是周日)
  • 特殊符号说明
特殊符号 含义
* 代表任何时间。
, 代表不连续的时间。比如“0 8,12,16 * * *”命令,表示在每天8点0分,12点0分,16点0分都执行一次。
- 代表连续的时间范围。比如“0 5 * * 1-6”命令,表示在周一到周六的5点0分执行。
*/n 代表每隔多久执行一次。比如“*/10 * * * *”命令,表示每隔10分钟就执行一次。
# 设置定时任务 -e:添加编辑当前crontab定时任务
[root@localhost helin]$ crontab -e
# 编写任务
# 从任意时间的0秒开始每1秒执行一次,把/etc目录下的所有文件和目录list追加到/tmp/to.txt中
*/1 * * * * ls -l /etc >> /tmp/to.txt
# 保存后显示‘crontab: installing new crontab’表示设置成功

# 列出当前有哪些定时任务调度
[root@localhost tmp]$ crontab -l
*/1 * * * * ls -l /etc >> /tmp/to.txt

# 删除当前任务调度
[root@localhost tmp]$ crontab -r
[root@localhost tmp]$ crontab -l
no crontab for root

# 启动cron服务
[root@localhost tmp]$ systemctl start crond
# 停止cron服务
[root@localhost tmp]$ systemctl stop crond
# 重启cron服务
[root@localhost tmp]$ systemctl restart crond
# 开机启动cron服务
[root@localhost tmp]$ systemctl enable crond.service

  • 案例:每隔一分钟就将当前日期信息追加到/home/helin/tmp/mydate
# 编写可执行任务脚本  .sh文件是可执行文件
[helin@localhost ~]$ vim helintask.sh
date >> /home/helin/tmp/mydate
# 给helintask.sh分配权限,所有者可执行权限
[helin@localhost ~]$ chmod 744 helintask.sh
# 创建新的任务
[helin@localhost ~]$ crontab -e
# 任务内容
*/1 * * * * /home/helin/helintask.sh
# 执行成功
no crontab for helin - using an empty one
crontab: installing new crontab

十四、磁盘分区、挂载

分区基础知识

  • 分区的方式
    • mbr分区
      1. 最多支持四个主分区
      2. 系统只能安装在主分区
      3. 扩展分区要占一个主分区
      4. MBR最大只支持2TB,但拥有最好的兼容性
    • gtp分区:
      1. 支持无限多个主分区(但操作系统可能限制,比如 windows下最多128个分区
      2. 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
      3. windows7 64位以后支持gtp

lsblk:查看当前系统的分区情况

# 查询当前系统的分区情况
[root@localhost tmp]$ lsblk -f
NAME        FSTYPE  LABEL           UUID                                 MOUNTPOINT
sr0         iso9660 CentOS 7 x86_64 2018-05-03-20-55-23-00
# 硬盘类型
nvme0n1  
# nvme0n1p1:分区情况  xfs:分区类型   d22086c9……:40位UUID   /boot:挂载点
├─nvme0n1p1 xfs                     d22086c9-1fe1-498b-a5ae-e97bb7e74528 /boot
├─nvme0n1p2 swap                    c4d32e73-2b41-4c21-aadc-11790dda029c [SWAP]
└─nvme0n1p3 xfs                     f1c5703b-df9a-42c6-ba3a-e1f7db7c45d4 /

# 查看当前系统的分区情况(查看分区大小)
[root@localhost tmp]$ lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0          11:0    1  4.2G  0 rom  
nvme0n1     259:0    0   20G  0 disk 
├─nvme0n1p1 259:1    0  300M  0 part /boot
├─nvme0n1p2 259:2    0  512M  0 part [SWAP]
└─nvme0n1p3 259:3    0 19.2G  0 part /

df:查询系统整体磁盘使用情况

# 查询磁盘使用情况
[root@localhost tmp]$ df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/nvme0n1p3   20G  5.8G   14G   30% /
devtmpfs        3.9G     0  3.9G    0% /dev
tmpfs           3.9G     0  3.9G    0% /dev/shm
tmpfs           3.9G   13M  3.8G    1% /run
tmpfs           3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/nvme0n1p1  297M  117M  180M   40% /boot
tmpfs           781M     0  781M    0% /run/user/0
tmpfs           781M     0  781M    0% /run/user/1000

du:查询指定目录的磁盘占用情况

# 查询指定目录的磁盘占用情况,默认为当前目录    -h:带计量单位
[root@localhost tmp]$ du -h /home/helin/
20K		/home/helin/dir
4.0K	/home/helin/tmp
56K		/home/helin/

# 查询指定目录磁盘占用大小汇总   -s:磁盘占用大小汇总 
[root@localhost tmp]$ du -sh /home/helin/
56K	/home/helin/

# 查询带文件的大小占用   -a:包含文件
[root@localhost tmp]$ du -ah /home/helin
4.0K	/home/helin/.bash_logout
4.0K	/home/helin/.bash_profile
4.0K	/home/helin/.bashrc
4.0K	/home/helin/.bash_history
4.0K	/home/helin/d.txt
4.0K	/home/helin/dir/cc.txt
8.0K	/home/helin/dir/a.txt
4.0K	/home/helin/dir/d.txt
4.0K	/home/helin/dir/root.txt
20K	/home/helin/dir
4.0K	/home/helin/.lesshst
4.0K	/home/helin/helintask.sh
4.0K	/home/helin/tmp/mydate
4.0K	/home/helin/tmp
4.0K	/home/helin/.viminfo
56K	/home/helin

# 查询明细同时查出汇总值   -c:列出明细同时查询汇总值
[root@localhost tmp]$ du -ch /home/helin/
20K	/home/helin/dir
4.0K	/home/helin/tmp
56K	/home/helin/
56K	总用量

# 查询1级子目录的磁盘占用    --max-depth=1:设置子目录深度
[root@localhost tmp]$ du -ch --max-depth=1 /home/helin/ 
20K	/home/helin/dir
4.0K	/home/helin/tmp
56K	/home/helin/
56K	总用量

统计/home/helin目录下文件个数和目录个数

# 查询/home/helin目录下所有文件和目录,然后过滤查询以“-”开头的文件("^-"是正则表达式),然后统计(wc是统计总数)
# 把“ls -la /home/helin |grep "^-"”过滤得到的内容当做文件,使用wc -l查询该“文件”的行数即为文件数
[root@localhost home]$ ls -la /home/helin |grep "^-" |wc -l
8
# 查询目录个数
[helin@localhost ~]$ ls -la /home/helin |grep "^d" |wc -l
3
# 递归查询目录中(包括子目录)的所有文件个数
[helin@localhost ~]$ ls -laR /home/helin |grep "^-" |wc -l
12
# 递归查询目录中(包括子目录)的所有目录个数
[helin@localhost ~]$ ls -laR /home/helin |grep "^d" |wc -l
5

tree:以树状图显示目录结构

# 如果没有tree则使用yum安装
[root@localhost helin]$ tree
-bash: tree: 未找到命令
[root@localhost helin]$ yum install tree
# 使用tree展示文件结构目录
[root@localhost helin]$ tree
.
├── dir
│   ├── a.txt
│   ├── cc.txt
│   ├── d.txt
│   └── root.txt
├── d.txt
└── helintask.sh

1 directory, 6 files

十五、网络配置

ping:测试主机之间网络连通性

# 测试4次
[root@localhost helin]$ ping -c 4 192.168.0.106
PING 192.168.0.106 (192.168.0.106) 56(84) bytes of data.
64 bytes from 192.168.0.106: icmp_seq=1 ttl=128 time=0.413 ms
64 bytes from 192.168.0.106: icmp_seq=2 ttl=128 time=0.602 ms
64 bytes from 192.168.0.106: icmp_seq=3 ttl=128 time=0.335 ms
64 bytes from 192.168.0.106: icmp_seq=4 ttl=128 time=0.800 ms

--- 192.168.0.106 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.335/0.537/0.800/0.181 ms

ifconfig:查看网络配置

# 查看网络配置
[root@localhost helin]$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 02:42:c5:70:f4:95  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.137.250  netmask 255.255.255.0  broadcast 192.168.137.255
        inet6 fe80::3891:39fa:7869:3871  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:fb:0b:6c  txqueuelen 1000  (Ethernet)
        RX packets 17908  bytes 6855419 (6.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11960  bytes 1762402 (1.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 244850  bytes 692066693 (660.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 244850  bytes 692066693 (660.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

设置linux系统固定ip

# 修改网卡配置文件
[root@localhost helin]$ vim /etc/sysconfig/network-scripts/ifcfg-ens33  # 有可能是ifcfg-eth0
# 文件内容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static  # 从none改为static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33	# 网卡名称
UUID=cbe94f25-5b23-4448-b1f7-afb722f0194d
DEVICE=ens33
ONBOOT=yes	# 改为yes

IPADDR=192.168.137.250	# 指定固定ip
NETMASK=255.255.255.0	# 指定子网掩码
GATEWAY=192.168.137.2	# 指定网关
# 如果需要配DNS
# DNS1=192.168.137.2

# 最后重启网络服务
[root@localhost helin]$ systemctl start network.service
# 或
[root@localhost helin]$ service network restart

十六、进程管理

ps:查看进行中的进程

# 显示所有包含其他使用者的行程 
# -a:显示当前终端所有进程信息 -u:以用户的格式显示进程信息 -x:显示后台进程运行参数
# USER:进程所有者	PID:进程识别号	%CPU:CPU占用率 %MEM:内存占用率 VSZ:占用的虚拟内存大小
# RSS: 占用的物理内存大小 TTY: 使用的终端  STAT: 进程的状态(s:休眠 r:运行)  START: 开始时间
# TIME: 占用cpu总时间  COMMAND:所执行的指令
[root@localhost network-scripts]$ ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.0 191272  4272 ?        Ss   1月23   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    1月23   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    1月23   0:07 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   1月23   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    1月23   0:01 [migration/0]
root          8  0.0  0.0      0     0 ?        S    1月23   0:00 [rcu_bh]
root          9  0.1  0.0      0     0 ?        S    1月23   1:13 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   1月23   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    1月23   0:00 [watchdog/0]
root         12  0.0  0.0      0     0 ?        S    1月23   0:00 [watchdog/1]
root         13  0.0  0.0      0     0 ?        S    1月23   0:01 [migration/1]
root         14  0.0  0.0      0     0 ?        S    1月23   0:05 [ksoftirqd/1]
root         16  0.0  0.0      0     0 ?        S<   1月23   0:00 [kworker/1:0H]
root         17  0.0  0.0      0     0 ?        S    1月23   0:00 [watchdog/2]
root         18  0.0  0.0      0     0 ?        S    1月23   0:01 [migration/2]
…………等等


# 只查询docker的进程状态,使用管道符配合grep过滤
[root@localhost network-scripts]$ ps -aux|grep docker
root        828  0.0  0.9 907388 72772 ?        Ssl  1月23   0:15 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root      55217  0.0  0.0 112724   980 pts/0    S+   03:00   0:00 grep --color=auto docker

# 查询指令父进程  
# UID:进程所有者用户ID PID:进程ID  PPID:父进程ID  STIME:进程启动的时间  CMD:启动进程所用命令和参数
# C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是IO密集型运算,执行优先级会提高

[root@localhost network-scripts]$ ps -ef|more
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 1月23 ?       00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 1月23 ?       00:00:00 [kthreadd]
root          3      2  0 1月23 ?       00:00:07 [ksoftirqd/0]
root          5      2  0 1月23 ?       00:00:00 [kworker/0:0H]
root          7      2  0 1月23 ?       00:00:01 [migration/0]
root          8      2  0 1月23 ?       00:00:00 [rcu_bh]


  • 进程状态(STAT)
符号 状态说明
S 睡眠
s 该程是会话先导进程
N 优先级较低的进程
R 正在运行
D 无法中断的休眠状态(通常 IO 的进程)
Z 僵尸进程(不存在但暂时无法消除)
T 被跟踪或被停止
X 死掉的进程(从来没见过);
W 进入内存交换(从内核2.6开始无效)
< 优先级高的进程
L 有些页被锁进内存
l 多进程的
+ 位于后台的进程组

kill:通过进程号杀死进程

# 查询系统登陆的用户
[root@localhost network-scripts]$ ps -aux|grep sshd
root        817  0.0  0.0 112856  4296 ?        Ss   1月23   0:00 /usr/sbin/sshd -D
root       1823  0.0  0.0 161468  6040 ?        Ss   1月23   0:00 sshd: root@pts/0
root       1910  0.0  0.0 161468  5972 ?        Ss   1月23   0:00 sshd: helin [priv]
helin      1916  0.0  0.0 161632  2500 ?        S    1月23   0:00 sshd: helin@pts/1
root      55513  0.0  0.0 112724   984 pts/0    S+   03:50   0:00 grep --color=auto sshd
# 踢掉helin用户
[root@localhost network-scripts]$ kill 1916
# 终止sshd进程,禁止远程访问
[root@localhost network-scripts]$ kill 817
# 强制终止进程
[root@localhost network-scripts]$ kill -9 1823

killall:通过进程名杀死进程

# 通过名称杀掉进程,支持通配符
[root@localhost network-scripts]$ killall docker

pstree:以树状展示进程

# 如果没有pstree,安装
[root@localhost helin]$ pstree -pu
-bash: pstree: 未找到命令
[root@localhost helin]$ yum -y install psmisc
# 查询
[root@localhost helin]$ pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─VGAuthService
        ├─agetty
        ├─auditd───{auditd}
        ├─containerd───18*[{containerd}]
        ├─crond
        ├─dbus-daemon
        ├─dockerd───16*[{dockerd}]
        ├─irqbalance
        ├─java───46*[{java}]
        ├─lvmetad
        ├─master─┬─pickup
        │        └─qmgr
        ├─polkitd───5*[{polkitd}]
        ├─rsyslogd───2*[{rsyslogd}]
        ├─runsvdir───16*[runsv───svlogd]
        ├─sshd─┬─sshd───bash───pstree
        │      └─sshd───sshd───bash
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tuned───4*[{tuned}]
        └─vmtoolsd───{vmtoolsd}
      
# -p:显示进程PID  -u:显示进程所属用户
[root@localhost helin]$ pstree -pu
systemd(1)─┬─NetworkManager(578)─┬─{NetworkManager}(602)
           │                     └─{NetworkManager}(605)
           ├─VGAuthService(576)
           ├─agetty(609)
           ├─auditd(552)───{auditd}(553)
           ├─containerd(826)─┬─{containerd}(1010)
           │                 ├─{containerd}(1011)
           │                 ├─{containerd}(1012)
           │                 ├─{containerd}(1015)
           │                 ├─{containerd}(1016)
           │                 ├─{containerd}(1045)
           │                 ├─{containerd}(1046)
           │                 ├─{containerd}(1047)
           │                 ├─{containerd}(1075)
           │                 ├─{containerd}(1079)
           │                 ├─{containerd}(1091)
           │                 ├─{containerd}(1188)
           │                 ├─{containerd}(2381)
           │                 ├─{containerd}(2382)
           │                 ├─{containerd}(2589)
           │                 ├─{containerd}(3696)
           │                 ├─{containerd}(15829)
           │                 └─{containerd}(15830)
           ├─crond(590)
           ├─dbus-daemon(577,dbus)
           ├─dockerd(828)─┬─{dockerd}(1104)
           │              ├─{dockerd}(1105)
           │              ├─{dockerd}(1106)
           │              ├─{dockerd}(1107)
           │              ├─{dockerd}(1110)
           │              ├─{dockerd}(1134)
           │              ├─{dockerd}(1153)
           │              ├─{dockerd}(1156)
           │              ├─{dockerd}(1164)
           │              ├─{dockerd}(1165)
           │              ├─{dockerd}(1171)
           │              ├─{dockerd}(1189)
           │              ├─{dockerd}(1251)
           │              ├─{dockerd}(1252)
           │              ├─{dockerd}(1255)
           │              └─{dockerd}(1260)
           ├─irqbalance(580)
           ├─java(1366,jenkins)─┬─{java}(1385)
           │                    ├─{java}(1389)
           │                    ├─{java}(1390)
           │                    ├─{java}(1391)
           │                    ├─{java}(1392)
           │                    ├─{java}(1393)
           │                    ├─{java}(1394)
           │                    ├─{java}(1395)
           │                    ├─{java}(1396)
           │                    ├─{java}(1415)
           │                    ├─{java}(1432)
           │                    ├─{java}(1434)
           │                    ├─{java}(1455)
           │                    ├─{java}(1457)
           │                    ├─{java}(1460)
           │                    ├─{java}(1461)
           │                    ├─{java}(1462)
           │                    ├─{java}(1466)
           │                    ├─{java}(1467)
           │                    ├─{java}(1669)
           │                    ├─{java}(1670)
           │                    ├─{java}(1672)
           │                    ├─{java}(1673)
           │                    ├─{java}(1675)
           │                    ├─{java}(1677)
           │                    ├─{java}(1721)
           │                    ├─{java}(1722)
           │                    ├─{java}(1724)
           │                    ├─{java}(1725)
           │                    ├─{java}(1726)
           │                    ├─{java}(1821)
           │                    ├─{java}(1847)
           │                    ├─{java}(1853)
           │                    ├─{java}(1854)
           │                    ├─{java}(1855)
           │                    ├─{java}(1856)
           │                    ├─{java}(1857)
           │                    ├─{java}(1858)
           │                    ├─{java}(1870)
           │                    ├─{java}(1879)
           │                    ├─{java}(1880)
           │                    ├─{java}(1884)
           │                    ├─{java}(1885)
           │                    ├─{java}(1886)
           │                    ├─{java}(33585)
           │                    └─{java}(43650)
           ├─lvmetad(418)
           ├─master(1101)─┬─pickup(55517,postfix)
           │              └─qmgr(1124,postfix)
           ├─polkitd(583,polkitd)─┬─{polkitd}(594)
           │                      ├─{polkitd}(595)
           │                      ├─{polkitd}(600)
           │                      ├─{polkitd}(603)
           │                      └─{polkitd}(610)
           ├─rsyslogd(823)─┬─{rsyslogd}(842)
           │               └─{rsyslogd}(843)
           ├─runsvdir(1512)─┬─runsv(1514)───svlogd(1538)
           │                ├─runsv(1515)───svlogd(1539)
           │                ├─runsv(1516)───svlogd(1534)
           │                ├─runsv(1517)───svlogd(1540)
           │                ├─runsv(1518)───svlogd(1535)
           │                ├─runsv(1519)───svlogd(1537)
           │                ├─runsv(1520)───svlogd(1523)
           │                ├─runsv(1521)───svlogd(1547)
           │                ├─runsv(1522)───svlogd(1545)
           │                ├─runsv(1524)───svlogd(1532)
           │                ├─runsv(1526)───svlogd(1548)
           │                ├─runsv(1527)───svlogd(1553)
           │                ├─runsv(1528)───svlogd(1560)
           │                ├─runsv(1529)───svlogd(1557)
           │                ├─runsv(1530)───svlogd(1559)
           │                └─runsv(1531)───svlogd(1543)
           ├─sshd(817)─┬─sshd(1823)───bash(1828)───pstree(55581)
           │           └─sshd(55519)───sshd(55521,helin)───bash(55522)
           ├─systemd-journal(400)
           ├─systemd-logind(585)
           ├─systemd-udevd(437)
           ├─tuned(818)─┬─{tuned}(1324)
           │            ├─{tuned}(1334)
           │            ├─{tuned}(1337)
           │            └─{tuned}(1468)
           └─vmtoolsd(582)───{vmtoolsd}(613)

free: 显示内存状态

[root@localhost ~]$ free
              total        used        free      shared  buff/cache   available
Mem:        1865284      591028      827712        9668      446544     1059216
Swap:        524284           0      524284

十七、服务管理

service:服务指令(Centos 6)

# 启动防火墙
[root@localhost network-scripts]$ service iptables start
# 关闭防火墙
[root@localhost network-scripts]$ service iptables stop
# 重启防火墙
[root@localhost network-scripts]$ service iptables restart
# 查看状态
[root@localhost network-scripts]$ service iptables status

systemctl:服务指令(Centos7)

#启动防火墙:  
systemctl start firewalld
#查状态:
systemctl status firewalld 
#禁用:  
systemctl disable firewalld
#停止:  
systemctl stop firewalld
#在开机时启用一个服务:
systemctl enable firewalld.service
#在开机时禁用一个服务:
systemctl disable firewalld.service
#查看服务是否开机启动:
systemctl is-enabled firewalld.service
#查看已启动的服务列表:
systemctl list-unit-files|grep enabled
#查看启动失败的服务列表:
systemctl --failed

setup:查看系统服务

# 如果没安装则进行安装
[root@localhost ~]$ setup
-bash: setup: 未找到命令
# 安装setuptool 
[root@localhost ~]$ yum -y install setuptool
# 系统服务管理 
[root@localhost ~]$ yum -y install ntsysv
# setup中配套的防火墙设置也得装上去,不然会出现很多selinux上面的问题
[root@localhost ~]$ yum -y install system-config-securitylevel-tui
# 安装setup中配套的网络设置 
[root@localhost ~]$ yum -y install system-config-network-tui
# 安装时区,不然装上软件,会发现时间不对劲的。 
[root@localhost ~]$ yum -y install system-config-date
# 之后执行该命令能操作图形界面
[root@localhost ~]$ setup

Linux实操命令学习笔记_第1张图片

chkconfig:给每个服务的各个运行级别设置自启动/关闭

[root@localhost helin]$ chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

jenkins        	0:关	1:关	2:关	3:开	4:关	5:开	6:关
netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
# 查看jenkins的运行级别是否自动开启
[root@localhost helin]$ chkconfig --list|grep jenkins

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

jenkins        	0:关	1:关	2:关	3:开	4:关	5:开	6:关

# sshd服务在运行级别为5的情况下不自启动
[root@localhost helin]$ chkconfig --level 5 sshd off

# sshd服务在所有运行级别的情况下不自启动
[root@localhost helin]$ chkconfig sshd off

# 重启生效
[root@localhost helin]$ reboot

  • 注意:

    ​ chkconfig重新设置服务自动启动或关闭,需要重启才生效

top:动态显示正在执行的进程

# 动态显示正在执行的进程(3秒自动刷新一次)
# 04:39:43:当前时间  up 14:04:系统运行时间  2 users:2个登陆用户   load average: 0.00, 0.01, 0.05:负载均衡
# Tasks: 174 total:总共174个进程  1 running:1个正在运行   173 sleeping:173个休眠  0 stopped:0个停止
# 0 zombie:0个僵尸进程  %Cpu(s):cpu使用情况  KiB Mem:内存使用情况  KiB Swap:虚拟内存使用情况
[root@localhost helin]$ top 
top - 04:39:43 up 14:04,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 174 total,   1 running, 173 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7992312 total,  5253992 free,  1354668 used,  1383652 buff/cache
KiB Swap:   524284 total,   524284 free,        0 used.  6240340 avail Mem 
# 输入u后出现下面文字,输入用户名回车查询该用户的所有进程
Which user (blank for all) helin
# 输入k后出现下面文字,输入PID回车杀死进程
PID to signal/kill [default pid = 1] 55521
# 输入P按照%CPU大小排序(默认),M按照%MEM大小排序,N按照PID排序
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                              
    57 root      20   0       0      0      0 S   0.3  0.0   0:17.82 kworker/1:1                                                          
 55606 root      20   0  161976   2324   1584 R   0.3  0.0   0:00.03 top                                                                  
     1 root      20   0  191272   4272   2592 S   0.0  0.1   0:01.68 systemd                                                              
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.04 kthreadd                                                             
     3 root      20   0       0      0      0 S   0.0  0.0   0:07.98 ksoftirqd/0                                                          
     5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H                                                         
     7 root      rt   0       0      0      0 S   0.0  0.0   0:01.89 migration/0                                                          
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh    
     
 # q或ctrl+c退出
 # 设置10秒刷新一次
 [root@localhost helin]$ top -d 10
 # 不显示闲置或僵尸进程
 [root@localhost helin]$ top -i
 # 仅仅监控某进程的状态
 [root@localhost helin]$ top -p 55521

netstat:查看系统网络服务情况

# 查看系统所有的网络服务 -an:按一定顺序排列输出  -p:显示哪个进程在调用
[root@localhost helin]$ netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      817/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1101/master         
tcp        0     52 192.168.137.250:22      192.168.137.1:8960      ESTABLISHED 1823/sshd: root@pts 
tcp        0      0 192.168.137.250:22      192.168.137.1:6425      ESTABLISHED 55519/sshd: helin [ 
tcp6       0      0 :::8080                 :::*                    LISTEN      1366/java           
tcp6       0      0 :::22                   :::*                    LISTEN      817/sshd            
tcp6       0      0 ::1:25                  :::*                    LISTEN      1101/master         
udp6       0      0 :::33848                :::*                                1366/java           
udp6       0      0 :::5353                 :::*                                1366/java           
raw6       0      0 :::58                   :::*                    7           578/NetworkManager 

RPM(RedHat Package Manager)包管理

rpm:rpm包操作

# 查询docker是否安装
[root@localhost ~]$ rpm -qa|grep docker
# docker-ce-19.03.5:文件名和版本号  el7.x86_64:centos7.x的64位系统版本
# 如果是i686、i386表示32位系统版本,noarch表示通用
docker-ce-19.03.5-3.el7.x86_64
docker-ce-cli-19.03.5-3.el7.x86_64

# 查询安装的所有rpm软件包
[root@localhost ~]$ rpm -qa

# 查询软件包是否安装
[root@localhost ~]$ rpm -q docker
未安装软件包 docker
[root@localhost ~]$ rpm -q jenkins
jenkins-2.214-1.1.noarch

# 查询软件包信息
[root@localhost ~]$ rpm -qi jenkins
Name        : jenkins
Version     : 2.214
Release     : 1.1
Architecture: noarch
Install Date: 2020年01月18日 星期六 00时49分58秒
Group       : Development/Tools/Building
Size        : 62436894
License     : MIT/X License, GPL/CDDL, ASL2
Signature   : DSA/SHA1, 2020年01月13日 星期一 07时38分14秒, Key ID 9b7d32f2d50582e6
Source RPM  : jenkins-2.214-1.1.src.rpm
Build Date  : 2020年01月13日 星期一 07时38分11秒
Build Host  : atlas
Relocations : (not relocatable)
URL         : http://jenkins.io/
Summary     : Jenkins Automation Server
Description :
Jenkins is an open source automation server which enables developers around the world to reliably automate  their development lifecycle processes of all kinds, including build, document, test, package, stage, deployment, static analysis and many more.

Jenkins is being widely used in areas of Continuos Integration, Continuous Delivery, DevOps, and other areas. And it is not only about software, the same automation techniques can be applied in other areas like Hardware Engineering, Embedded Systems, BioTech, etc.

For information see https://jenkins.io


Authors:
--------
    Kohsuke Kawaguchi <[email protected]>
    
# 查询软件包中的文件
[root@localhost ~]$ rpm -ql jenkins
/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

# 查询/etc/init.d/jenkins文件所属的软件包
[root@localhost ~]$ rpm -qf /etc/init.d/jenkins
jenkins-2.214-1.1.noarch

# 卸载软件包
[root@localhost ~]$ rpm -e gitlab-ee
# 如果卸载报错(有其他软件依赖此软件)
[root@localhost ~]$ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
# 强制卸载(不推荐)
[root@localhost ~]$ rpm -e --nodeps foo

# 安装软件包  i:install安装   v=verbose安装   h=hash  进度条
[root@localhost ~]$ rpm -ivh /opt/firefox-45.0.1-1.el7.centos.X86_64.rpm

yum:shell前端软件包管理器

# 查询yum服务器所有安装包list
[root@localhost ~]$ yum list
# 查询yum服务器是否有jenkins安装包
[root@localhost ~]$ yum list|grep jenkins
jenkins.noarch                              2.214-1.1                  @jenkins 
hudson.noarch                               1.395-1.1                  jenkins  
jenkins.noarch                              2.217-1.1                  jenkins
# 联网安装
[root@localhost ~]$ yum install jenkins

# 更新所有软件命令
[root@localhost ~]$ yum update
# 列出所有可更新的软件清单
[root@localhost ~]$ yum check-update
# 查找软件包
[root@localhost ~]$ yum search jenkins
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
========================================================== N/S matched: jenkins ===========================================================
jenkins.noarch : Jenkins Automation Server

  名称和简介匹配 only,使用“search all”试试。
# 删除软件包
[root@localhost ~]$ yum remove jenkins

  • 替换yum源为网易163源
# 备份/etc/yum.repos.d/CentOS-Base.repo
[root@localhost ~]$ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
[root@localhost ~]$ wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@localhost ~]$ mv CentOS6-Base-163.repo CentOS-Base.repo
# 生成缓存
[root@localhost ~]$ yum clean all
[root@localhost ~]$ yum makecache

wget:linux下载文件工具

wget是Linux下下载文件的最常用命令。wget支持HTTPHTTPSFTP`协议,支持自动下载,即可以在用户退出系统后在后台执行,直到下载结束。
用法:wget [参数] [URL]

  • 常用参数

    • -o:将日志信息写入FILE;
    • -b:启动后转入后台;
    • -O:将文档写入FILE(重命名);
    • -q:安静模式(无信息输出);
    • -N:只获取比本地文件新的文件;
    • --no-check-certificate:不要验证HTTPS服务器的证书;
    • -r:指定递归下载;
    • -c:断点续传下载文件。
# 下载nginx安装包
wget http://nginx.org/download/nginx-1.10.1.tar.gz

你可能感兴趣的:(linux)