一、关机,重启命令
命令 | 说明 |
---|---|
sync | 将数据同步保存到硬盘中 |
shutdown | 关机 |
shutdown -h now | 现在关机 |
shutdown -h 10 | 10分钟后关机 |
shutdown -h 18:21 | 今天18:21关机 |
half | 关机 |
shutdown -r now | 重启 |
shutdown -r 10 | 10分钟后重启 |
reboot | 重启 |
二、linux的目录结构
/bin:bin 是Binay的缩写,这个命令存放一些经常使用的命令。
/boot:存放启动linux时的一些核心文件(如:连接问价、镜像)。
/dev:dev是Device(设备)的缩写,存放linux的外部设备。
/etc:存放系统管理所需要的配置文件(如:java、Tomcat)和子目录。
/home:用户的主目录,每个用户都有自己的主目录(目录名为用户名)。
/lib:存放系统最基础的连接动态共享库。
/lib64:
/media:linux会自动识别一些设备(如:U盘、光驱),linux会将设备的设备挂载到这个目录下,我们可以通过这个目录查看设备中的内容。
/mnt:存放用户临时挂载的别的文件系统的目录(如:光驱,U盘)。
/opt:存放安装的一些软件的目录(如:数据库、jdk)。
/proc:是一个虚拟目录,是系统内存的映射,我们可以访问这个目录来获取系统信息。
/root:该目录为系统管理元目录。
/run:临时文件系统,存放linux运行中的信息。重启后该目录下的文件就会被删除。
/sbin:这里存放的是系统管理员存放的系统管理程序。(s是super的意思)。
/srv:该目录存放一些服务启动以后需要提取的数据。
/sys:该目录中安装了2.6内核中新出现的一个文件系统sysfs。
/tmp:用来存放一些临时文件。
/usr:这是一个很重要的目录,用户的很多的应用程序和文件都存放在这。(类似于Windows的program files目录)
/usr/bin:存放系统用户使用的应用程序。
/usr/sbin:存放系统超级用户使用的应用程序。
/usr/src:内核源代码默认存放的目录。
/var:这个目录下存放一些经常需要修改的文件(如:日志)。
三、基本命令
# cd /path
:切换目录
# cd ../
:返回上一级目录
# pwd
:打印当前目录的全路径
# mkdir 目录名
:创建一个目录
# mkdir -p 目录1/目录2/目录3
:递归创建目录
# rmdir 目录名
:删除一个空目录
# rmdir -p 目录1/目录2/目录3
:递归删除目录
# ls
:列出当前目录下的内容
# ls -a
:查看当前目录所有文件
# ls -l
:列出当前目录所有非隐藏文件以及详情
# ls -al
:列出当前目录所有文件以及详情
# cp /oldPth / newPath
:复制目录或文件
# rm /path
:删除目录和文件
# rm -f /path
:强制删除(不会询问)目录和文件
# rm -r /path
:递归删除目录和文件
# rm -rf /path
:强制递归删除目录和文件
rm -rf /:不要执行这个命令,会删除根目录下的所有目录和文件
# mv /oldPath /oldPath
:移动目录和文件(oldPath = oldPath 时,为重命名)
# mv -f /oldPath /newPath
:强制移动目录和文件
# mv -u /oldPath /newPath
:只替换更新过的文件
我们通过 ls -l
可以查看目录中目录和文件的详细信息。我们可以发现在打印出的东西的第一列有d、l...
的字母,其含义是什么呢。
d:代表是目录
l:代表为连接文档
-:代表是文件
b:代表装置文件里文件里面的可存储的接口设备(如:磁盘)
c:代表装置文件里文件里面的可串行端口设备(如:鼠标、键盘)
接下来的字符三个一组(读 写 执行)。第一组表示root用户的权限;第二组表示组权限;第三组表示其他用户权限
r:代表读权限
w:代表写权限
x:代表执行权限
rwx:表示具有读写执行权限
r_x:表示只具有读和执行权限
r_ _:表示只具有读权限
接下来,分别表示文件的个数、文件/目录 所属主、文件/目录 所属组
修改文件属性组
# chgrp 属组名 文件名
:修改文件所属组
# chgrp -R 属组名 文件名
:递归修改文件所属组
修饰文件属主
# chown [-R] 属主名 文件名
:修饰文件属主
# chown [-R] 属主名:属组名 文件名
:修饰文件属主和属组
修改文件的权限
修改文件的权限的方式有两种:一种是使用符号(r w x),另一种是使用数字(4代表r,2代表w,1代表x)。
# chmod rwxrwxrwx 文件名或目录
:文件或目录的属主、属组、其他用户都具有读写执行的权限
# chmod 777 文件名或目录
:同上
# chmod rwxr-xr-x 文件名或目录
:文件或目录的属主具有读写执行权限、属组具有读和执行的权限、其他用户都具有读和执行的权限
# chmod 755 文件名或目录
:同上
# ifconfig
:查看网络配置
如果你的 linux 中没有 ifconfig 命令,你可以执行此命令:yum install net-tools
# cat 文件名
:打印文件内容
# tac 文件名
:倒叙打印文件内容
# nl 文件名
:显示的时候打印行号
# more 文件名
:一页一页的显示文件内容(空格向下翻页,回车向下翻行)。q 键退出。
# less 文件名
: 一页一页的显示文件内容(空格向下翻页,↓键向下翻行,↑键向上翻行)。输入 / 从当前位置向下搜索(n表示向下翻行显示搜索内容,n表示向上翻行显示搜索内容);输入 ? 从当前位置向上搜索(n表示向下翻行显示搜索内容,n表示向上翻行显示搜索内容)。q 键退出。
# head -n 数字 文件名
:只看文件的前几行
# tail -n 数字 文件名
:只看文件的后几行
如果你的 linux 上没有 vim 编辑器,你可以执行此命令:yum -y install vim*
vim是从vi发展过来的一个文本编辑器。其作用有:代码补全、编译、错误跳转… 。vim通过一些插件可以实现IED的功能
① 查看内容
# vim 文件名
:查看文件内容
:q
:退出(shift+:打印出:,输入q 退出)
② 编辑内容
: set nu
:设置行号
: set nonu
:取消行号
在编辑模式下,可以使用的按键:
Enter:换行
Backspace:删除光标前一个字符
Del/Delete:删除光标后一个字符
方向键:移动光标
Home/End:移动光标当行首/行尾
Page Up:向上翻页
Page Dn:向下翻页
Esc:退出当前模式
③ 保存内容和退出
当我对编辑过的文本,我们在退出前都需要进行保存
:w
:保存(先按 Esc 然后 shift+:打印出:,输入w 退出)
:q
:退出(先按 Esc 然后 shift+:打印出:,输入q 退出)
:wq
:保存并退出
:q!
:不保存并退出
:wq!
:强制保存并退出
四、硬链接与软连接
一个文件的硬链接更像是一个文件可以同步内容的副本,当我们将原文件删除后,硬链接依然可以访问。
# ln 原文件 硬链接名
:创建一个硬链接
一个文件的软连接就像是Windows中的快捷方式,当我们将原文件删除后,软链接不可以访问。
# ln -s 原文件 软链接名
:创建一个软连接
五、账号管理
格式:useradd -选项 用户名
会自动在 /home 目录下创建用户的主目录:useradd -m 用户名
[root@localhost home]# ls
[root@localhost home]# useradd -m tiger # 添加用户
[root@localhost home]# ls
tiger # home下自动生成的目录
[root@localhost home]#
/etc/passwd
目录中记录了一些用户的相关信息
[root@localhost home]# tail -n 1 /etc/passwd # 打印最后一行
tiger:x:1000:1000::/home/tiger:/bin/bash # /home/tiger 表示 tiger 的家目录
[root@localhost home]#
创建用户是给用户分配用户组:useradd -m 用户名 -G 用户组
root修改其他用户密码
格式:passwd 用户名
[root@localhost home]# passwd tiger # 修改用户(tiger)密码
更改用户 tiger 的密码 。
新的 密码: # 输入新密码
无效的密码: 密码少于 8 个字符 # 没关系,不影响密码的正常修改,只不过是安全等级低
重新输入新的 密码: # 重新输入密码
passwd:所有的身份验证令牌已经成功更新。
[root@localhost home]#
修改当前登录的账户的密码
格式:passwd
[root@localhost home]# passwd
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost home]#
清空用户密码
当一个用户的密码被清空后,那么该用户就无法登录 linux 系统了。
格式:passwd -d 用户名
格式:userdel -选项 用户名
userdel -r 用户名
:删除用户的同时会连带着用户的相关信息一起删除(如:home下的目录)
[root@localhost home]# userdel -r tiger
[root@localhost home]# ls
[root@localhost home]#
[root@localhost home]# tail -n 1 /etc/passwd
chrony:x:998:996::/var/lib/chrony:/sbin/nologin # 我们可以发现最后已经没有tiger的信息了
[root@localhost home]#
修改用户的家目录:usermod -d 新的目录 用户名
[root@localhost home]# tail -n 1 /etc/passwd
tiger:x:1000:1000::/home/tiger:/bin/bash # tiger 的家目录为 /home/tiger
[root@localhost home]# usermod -d /home/tiger_home tiger # 修改 tiger 的家目录为 /home/tiger_home
[root@localhost home]# tail -n 1 /etc/passwd
tiger:x:1000:1000::/home/tiger_home:/bin/bash # tiger 的家目录为 /home/tiger_home
[root@localhost home]#
格式:su 用户名
[root@localhost home]# su tiger # 切换成 tiger (root 切换其他用户是不需要密码)
[tiger@localhost home]$ # 切换成功
[tiger@localhost home]$ su root # 切换成 root
密码: # 注意:在 linux 中输入密码时是不会明文显示的
[root@localhost home]# # 切换成功
切换成原来用户 :exit
[root@localhost home]# su tiger
[tiger@localhost home]$ exit # 从 tiger 切换成原来的 root
exit
[root@localhost home]#
当某一个账号被锁定时,那么该账号就无法登录linux系统了,只有在用户被解锁后才可以正常的登录 linux 系统。
锁定格式 : passwd -l 用户名 (l: Lock)
解锁格式 : passwd -u 用户名 (u:Unlock)
格式:hostname 新主机名
注意:这种方式是临时修改主机名,linux 重启后就失效了,但是够用了。
[root@localhost home]# hostname StudiuosTiger # 修改主机名为 StudiuosTiger
[root@localhost home]#
[root@localhost home]# bash # 使修改后的主机名生效(显示)
[root@StudiuosTiger home]#
六、用户组管理
每一个用户都有一个用户组,系统可以对一个用户组中的用户进行集中管理。不同的 linux 系统对用户组的规定有不同的规定,如:linux 下的用户属于与它同名的用户组,这个用户在创建的时候其用户组同时被创建。
用户组的管理,涉及用户组的添加、删除和修改。组的添加、删除和修改实际上是对 /etc/group 文件的更新。
创建用户组:# groupadd 用户组名
[root@StudiuosTiger home]# groupadd adminUser # 创建一个用户组
[root@StudiuosTiger home]# tail -n 1 /etc/group
adminUser:x:1001: # /etc/group 已经存在adminUser 相关信息(1001 表示用户组ID)
[root@StudiuosTiger home]#
创建用户组并指定组ID:# groupadd -g ID 用户组名
[root@StudiuosTiger home]# groupadd -g 1024 adminUser02
[root@StudiuosTiger home]# tail -n 1 /etc/group
adminUser02:x:1024:
[root@StudiuosTiger home]#
删除用户组:# groupdel 用户组名
[root@StudiuosTiger home]# groupdel adminUser02 # 删除用户组 adminUser02
[root@StudiuosTiger home]# tail -n 1 /etc/group
adminUser:x:1001: # 我们可以发现/etc/group中已经没有adminUser02相关的信息了
[root@StudiuosTiger home]#
修改组名:groupmod -n 新的组名 被修改的组名
修改组ID:groupmod -g 新的组ID 被修改的组名
修改组名和ID:groupmod -g 新的组ID -n 新的组名 被修改的组名
[root@StudiuosTiger home]# tail -n 1 /etc/group
adminUser:x:1001: # 原组名和组ID
[root@StudiuosTiger home]# groupmod -g 1011 -n new_adminUser adminUser # 修改组名和组ID
[root@StudiuosTiger home]# tail -n 1 /etc/group
new_adminUser:x:1011: # 我们可以发现组名和组ID已经被修改
[root@StudiuosTiger home]#
注意:只有 root 和 组管理员 能够改变组的成员
为用户组添加用户:gpasswd –a 用户组名 用户名
为用户组添加用户:gpasswd –d 用户组名 用户名
七、磁盘管理
Linux 磁盘管理常用两个命令为 df 和 du 命令。
df(英文全称:disk full):列出文件系统的整体磁盘使用量
du(英文全称:disk used):检查磁盘空间使用量
df命令参数功能:检查文件系统的磁盘空间占用情况(就如同 Windows 中的 CDE 盘符一样)。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df [-ahikHTm] [目录或文件名]
选项与参数:
-a :列出所有的文件系统。
-k :以 KBytes 单位显示容量情况。
-m :以 MBytes 单位显示容量情况。
-h :以 GBytes, MBytes, KBytes 等单位显示容量情况。
-H :以 M=1000K 取代 M=1024K 的进位方式。
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出。
-i :不用硬盘容量,而以 inode 的数量来显示。
[root@localhost ~]# df -h #列出盘符的使用情况
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.7M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/mapper/centos-root 17G 1.5G 16G 9% /
/dev/sda1 1014M 137M 878M 14% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@localhost ~]#
Linux du 命令也是查看使用空间的,但是与 df 命令不同的是 du 命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
语法:du [-ahskm] 文件或目录名称
选项与参数:
-a :列出所有的文件与目录容量。
-h :以人们较易读的容量格式 (G/M) 显示。
-s :列出总量而已,而不列出每个各别的目录占用容量。
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 单位显示容量情况。
-m :以 MBytes 单位显示容量情况。
[root@localhost home]# du -ah # 列出 /home 下的磁盘使用情况(全部)
4.0K ./tiger/.bash_logout
4.0K ./tiger/.bash_profile
4.0K ./tiger/.bashrc
4.0K ./tiger/.bash_history
16K ./tiger
0 ./tiger_home
16K .
[root@localhost home]#
八、进程管理
在linux系统中,每一个程序都有一个自己的进程,每一个进程都存在一个进程ID。每一个进程会有一个父进程。
进程的模式有两种,一种是前台运行的进程,另一种是后台运行的进程。
查看当前系统中正在执行的进程信息
语法:du [-auxef]
选项与参数:
-a:显示当前终端下的所有进程信息,包含其他用户的进程信息。和 x 选项结合使用可以显示系统中所有进程的信息
-u:使用以用户为主的格式输出进程信息
-x:显示当前用户在所有终端下的进程信息
-e:显示系统内所有进程的信息。与 -A 选项功能相同
-f:使用完整 (full) 的格式显示进程信息,如果只有 ps -e 则输出进程信息的格式和只使用 ps 一样
[root@localhost home]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.2 0.6 193700 6768 ? Ss 10:51 0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0.0 0.0 0 0 ? S 10:51 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 10:51 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 10:51 0:00 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 10:51 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 10:51 0:00 [rcu_bh]
......
[root@localhost home]#
我们一般并不会这样使用,因为这一的结果实在是太混杂了。我们会结合 | 和 grep 进行过滤操作。
|:管道符。命令A|命令B,即命令1的正确输出作为命令B的操作对象。
grep: 命令用于查找文件里符合条件的字符串。
例如:ps -aux | grep usr
: 搜索 “ps -aux” 的结果中与 usr 相关的信息
[root@localhost home]# ps -aux | grep usr # 搜索 "ps -aux" 的结果中与 usr 相关的信息
root 1 0.1 0.6 193700 6768 ? Ss 10:51 0:05 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 514 0.0 0.2 37112 2924 ? Ss 10:51 0:00 /usr/lib/systemd/systemd-journald
root 538 0.0 0.6 192908 6112 ? Ss 10:51 0:00 /usr/sbin/lvmetad -f
root 542 0.0 0.6 49208 6164 ? Ss 10:51 0:02 /usr/lib/systemd/systemd-udevd
root 699 0.0 0.1 21688 1316 ? Ss 10:51 0:00 /usr/sbin/irqbalance --foreground
root 704 0.0 0.6 99692 6056 ? Ss 10:51 0:00 /usr/bin/VGAuthService -s
root 705 0.2 0.6 305500 6548 ? Ssl 10:51 0:06 /usr/bin/vmtoolsd
dbus 706 0.0 0.2 66476 2592 ? Ssl 10:51 0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
chrony 711 0.0 0.1 117808 1724 ? S 10:51 0:00 /usr/sbin/chronyd
polkitd 714 0.0 1.1 613016 11904 ? Ssl 10:51 0:00 /usr/lib/polkit-1/polkitd --no-debug
root 715 0.0 0.1 26480 1792 ? Ss 10:51 0:00 /usr/lib/systemd/systemd-logind
root 722 0.0 0.1 126384 1668 ? Ss 10:51 0:00 /usr/sbin/crond -n
root 737 0.0 2.9 359024 29700 ? Ssl 10:51 0:01 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root 775 0.0 1.1 700176 11116 ? Ssl 10:52 0:00 /usr/sbin/NetworkManager --no-daemon
root 904 0.0 0.5 102904 5484 ? S 10:52 0:00 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens33.pid -lf /var/lib/NetworkManager/dhclient-33519b99-b1e4-4367-8e50-9714e6506475-ens33.lease -cf /var/lib/NetworkManager/dhclient-ens33.conf ens33
root 1093 0.0 1.9 574300 19468 ? Ssl 10:52 0:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root 1094 0.0 0.4 112924 4316 ? Ss 10:52 0:00 /usr/sbin/sshd -D
root 1097 0.0 0.4 214456 4040 ? Ssl 10:52 0:00 /usr/sbin/rsyslogd -n
root 1186 0.0 0.2 89704 2124 ? Ss 10:52 0:00 /usr/libexec/postfix/master -w
root 1379 0.0 0.2 72252 2848 ? Ss 10:52 0:00 /usr/libexec/openssh/sftp-server
root 3294 0.0 0.0 112828 976 pts/0 S+ 11:34 0:00 grep --color=auto usr
[root@localhost home]#
如果你的linux中没有 psmisc 命令,那么你可以执行 yum -y install psmisc
进行安装。
pstree命令将所有行程以树状图显示,从中我们可以看到进程之间的关系(如:父子关系)。树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。
[root@localhost home]# pstree -pu
systemd(1)─┬─NetworkManager(775)─┬─dhclient(904)
│ ├─{NetworkManager}(788)
│ └─{NetworkManager}(792)
├─VGAuthService(704)
├─auditd(676)───{auditd}(677)
├─chronyd(711,chrony)
├─crond(722)
├─dbus-daemon(706,dbus)───{dbus-daemon}(713)
├─firewalld(737)───{firewalld}(901)
├─irqbalance(699)
├─login(727)───bash(1352)
├─lvmetad(538)
├─master(1186)─┬─pickup(1192,postfix)
│ └─qmgr(1193,postfix)
├─polkitd(714,polkitd)─┬─{polkitd}(730)
│ ├─{polkitd}(731)
│ ├─{polkitd}(732)
│ ├─{polkitd}(733)
│ ├─{polkitd}(734)
│ └─{polkitd}(735)
├─rsyslogd(1097)─┬─{rsyslogd}(1104)
│ └─{rsyslogd}(1111)
├─sshd(1094)─┬─sshd(1371)───bash(1386)───pstree(4142)
│ └─sshd(1375)───sftp-server(1379)
├─systemd-journal(514)
├─systemd-logind(715)
├─systemd-udevd(542)
├─tuned(1093)─┬─{tuned}(1341)
│ ├─{tuned}(1342)
│ ├─{tuned}(1344)
│ └─{tuned}(1345)
└─vmtoolsd(705)───{vmtoolsd}(741)
[root@localhost home]#
kill 命令发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,
通常我们会使用强制结束进程,格式:kill -9 进程号
✈ ❀ 希望平凡の我,可以给你不凡の体验 ☂ ✿…