课程目标
1、了解Linux操作系统的硬盘分区信息
2、了解Linux操作系统重各目录的作用
3、了解Linux的启动级别以及关机和重启命令
课程实验
在xshell中使用df -h ,df -T,du -sh,fdisk -|,cd ,pwd
使用top ,free,cat/proc/xxx等命令查看系统的运行情况,CPU和内存信息等
利用各种方式实现Linux的关机和重启
课堂的引入
在windows中,我们知道有磁盘C盘,D盘等盘符的概念,而在Linux中,则完全 没有这样的概念,取而代之的是各种/开头的目录,这也是初学者容易出现的理解上的问题,但是实际上,在Linux中也有分区的概念,只是不同的分区,其功能是有所不同的,其功能是有所区别的。同时,在windows中,格式化硬盘时,通常会选择使用NTFS和FAT32的文件系统类型,在Linux中则通常会使用ext4,xfs等文件系统,诸如此类的功能,在我们学习Linux中,均可以用自己熟悉的windows做一个对比,进而帮助我们更好的理解Linux操作系统
授课的进程
一、文件系统解读
在Linux下运行“df -h”命令 ,可以查看到目前Linux中存在的硬盘的分区情况,以及每个分区的硬盘的使用情况。
[root@kali ~]# 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 37G 1.3G 36G 4% / /dev/sda1 1014M 137M 878M 14% /boot tmpfs 98M 0 98M 0% /run/user/0
上述的命令的结果可以看到,filesystem列表表示文件系统,四则表示硬盘的大小,used表示已经使用了多大了,Avail表示剩余使用量,Use%表示占用百分比,mounted on表示目前挂载在那个目录下。
另外,对上述几个挂载的目录进行一下简单的说明。
(1)/dev:dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。
(2)/dev/shm:/dev/shm是Linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存中,因此在Linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm就可以达到很好的优化效果,该分区的大小通常是系统内存的一般大小,由于该目录是驻留在内存中,所以对于在系统中需要使用的临时数据,可以将其存储在该目录中,就相当于我们直接使用内存在读写文件,速度相当的快(基本上来说,内存的读写速度可以达到硬盘的100倍左右)。内存除了快以外,还有一个特性:断电则会数据全部丢失
(3)/run:一些运行过程中跟用户或进程有关的数据,属于核心级别的文件。
(4)/sys/fs/cgroup:关于运行进程中的CPU,内存等数据,属于内核级别的文件。
(5)/:根目录,用户可以使用额保存操作系统其他问价的目录,用户也可以创建自己的目录。
(6)/boot:操作系统的内核以及在引导过程中使用的文件。
(7)/home:普通用户使用的根目录,通常也称之为“家目录”。类似于windows下的c:\users目录。
(8)/run/user/0:编号ID为0的用户(通常称之为root)在运行过程中产生的数据。
另外,在Linux中,文件系统通常由一下类型构成,其特点总结如下:
1TB=1024GB 1PB=1024TB 1EB=1024PB目前还没有单个存储器能够达到EB这个容量级别。
二、Linux根目录说明
重点几个
1:/bin这里面是Linux中的所有命令都在这里面
[root@kali ~]# cd /bin [root@kali bin]# ls [ linux32 setup-nsssysinit.sh addr2line linux64 setvtrgb alias linux-boot-prober sftp apropos ln sg ar loadkeys sg_compare_and_write arch loadunimap sg_copy_results as locale sg_dd aserver localectl sg_decode_sense aulast localedef sg_emc_trespass aulastlog logger sg_format ausyscall login sg_get_config auvirt loginctl sg_get_lba_status awk logname sg_ident base64 look sginfo basename ls sg_inq bash lsattr sg_logs bashbug lsblk sg_luns bashbug-64 lscpu sg_map bg lsinitrd sg_map26 bond2team lsipc sgm_dd bootctl lslocks sg_modes busctl lslogins sg_opcodes cal lsmem sgp_dd ca-legacy lsns sg_persist captoinfo lsscsi sg_prevent cat lua sg_raw catchsegv luac sg_rbuf catman lz4 sg_rdac cd lz4c sg_read centrino-decode lz4cat sg_read_block_limits certutil machinectl sg_read_buffer c++filt mailq sg_readcap chacl mailq.postfix sg_read_long chage make sg_reassign chattr makedb sg_referrals chcon man sg_requests chfn mandb sg_reset chgrp manpath sg_rmsn chmem mapscrn sg_rtpg chmod mcookie sg_safte chown md5sum sg_sanitize chronyc mesg sg_sat_identify chrt mixartloader sg_sat_phy_event chsh mkdir sg_sat_set_features chvt mkfifo sg_scan cksum mkinitrd sg_senddiag clear mknod sg_ses cmp mktemp sg_start cmsutil modutil sg_stpg col more sg_sync colcrt mount sg_test_rwbuf colrm mountpoint sg_turs column msgattrib sg_unmap comm msgcat sg_verify command msgcmp sg_vpd coredumpctl msgcomm sg_write_buffer cp msgconv sg_write_long cpio msgen sg_write_same cpupower msgexec sg_wr_mode crlutil msgfilter sg_xcopy crontab msgfmt sh csplit msggrep sha1sum csslint-0.6 msghack sha224sum curl msginit sha256sum cut msgmerge sha384sum cvtsudoers msgunfmt sha512sum date msguniq showconsolefont db_archive mv showkey db_checkpoint namei shred db_deadlock ndptool shuf db_dump neqn signver db_dump185 newaliases size db_hotbackup newaliases.postfix skill db_load newgidmap slabtop db_log_verify newgrp sleep db_printlog newuidmap slogin db_recover nf-ct-add snice db_replicate nf-ct-list soelim db_stat nf-exp-add sort db_tuner nf-exp-delete sotruss db_upgrade nf-exp-list split dbus-binding-tool nf-log sprof dbus-cleanup-sockets nf-monitor sqlite3 dbus-daemon nf-queue ssh dbus-monitor ngettext ssh-add dbus-run-session nice ssh-agent dbus-send nisdomainname ssh-copy-id dbus-test-tool nl ssh-keygen dbus-update-activation-environment nl-addr-add ssh-keyscan dbus-uuidgen nl-addr-delete ssltap db_verify nl-addr-list stat dd nl-class-add stdbuf deallocvt nl-class-delete strings df nl-classid-lookup strip dgawk nl-class-list stty diff nl-cls-add su diff3 nl-cls-delete sudo dir nl-cls-list sudoedit dircolors nl-fib-lookup sudoreplay dirname nl-link-enslave sum dmesg nl-link-ifindex2name sync dnsdomainname nl-link-list systemctl domainname nl-link-name2ifindex systemd-analyze dracut nl-link-release systemd-ask-password du nl-link-set systemd-cat dumpkeys nl-link-stats systemd-cgls dwp nl-list-caches systemd-cgtop echo nl-list-sockets systemd-coredumpctl egrep nl-monitor systemd-delta eject nl-neigh-add systemd-detect-virt elfedit nl-neigh-delete systemd-escape env nl-neigh-list systemd-firstboot envsubst nl-neightbl-list systemd-hwdb eqn nl-pktloc-lookup systemd-inhibit ex nl-qdisc-add systemd-loginctl expand nl-qdisc-delete systemd-machine-id-setup expr nl-qdisc-list systemd-notify factor nl-route-add systemd-nspawn fallocate nl-route-delete systemd-path false nl-route-get systemd-run fc nl-route-list systemd-stdio-bridge fg nl-rule-list systemd-sysv-convert fgconsole nl-tctree-list systemd-tmpfiles fgrep nl-util-addr systemd-tty-ask-password-agent file nm tabs find nmcli tac findmnt nm-online tail fipscheck nmtui tailf fipshmac nmtui-connect tar firewall-cmd nmtui-edit taskset firewall-offline-cmd nmtui-hostname tbl flock nohup teamd fmt nproc teamdctl fold nroff teamnl free nsenter tee fusermount nss-policy-check test gapplication numfmt testgdbm gawk objcopy tic gdbus objdump timedatectl gencat od timeout genl-ctrl-list oldfind tload geqn open tmon getconf openssl toe getent openvt top getfacl os-prober touch getkeycodes p11-kit tput getopt passwd tr getopts paste tracepath gettext pathchk tracepath6 gettext.sh pchrt troff gio pflags true gio-querymodules-64 pgawk truncate glib-compile-schemas pgrep trust gmake pic tset gneqn pinentry tsort gnroff pinentry-curses tty gpasswd ping turbostat gpg ping6 tzselect gpg2 pinky udevadm gpg-agent pk12util ul gpgconf pkaction ulockmgr_server gpg-connect-agent pkcheck umask gpg-error pkexec umount gpgparsemail pkg-config unalias gpgsplit pkill uname gpgv pkla-admin-identities unexpand gpgv2 pkla-check-authorization unicode_start gpg-zip pkttyagent unicode_stop gpic pldd uniq gprof plymouth unlink grep pmap unlz4 groff post-grohtml unshare grops powernow-k8-decode unxz grotty pr update-ca-trust groups preconv update-mime-database grub2-editenv pre-grohtml uptime grub2-file printenv urlgrabber grub2-fstest printf users grub2-glue-efi prlimit usleep grub2-kbdcomp ps usx2yloader grub2-menulst2cfg psfaddtable utmpdump grub2-mkfont psfgettable uuidgen grub2-mkimage psfstriptable vdir grub2-mklayout psfxtable VGAuthService grub2-mknetdir ptaskset vi grub2-mkpasswd-pbkdf2 ptx view grub2-mkrelpath pwd vlock grub2-mkrescue pwdx vmhgfs-fuse grub2-mkstandalone pwmake vmstat grub2-render-label pwscore vm-support grub2-script-check pydoc vmtoolsd grub2-syslinux2cfg python vmware-checkvm gsettings python2 vmware-guestproxycerttool gsoelim python2.7 vmware-hgfsclient gtar ranlib vmware-namespace-cmd gtbl raw vmware-rpctool gtroff read vmware-toolbox-cmd gunzip readelf vmware-vgauth-cmd gzexe readlink vmware-xferlogs gzip realpath vxloader hdsploader recode-sr-latin w head rename wait hexdump renice wall hostid rescan-scsi-bus.sh watch hostname reset watchgnupg hostnamectl resizecons wc i386 rev wdctl iconv rm whatis id rmail whereis idiag-socket-details rmail.postfix which idn rmdir whiptail igawk rpcgen who info rpm whoami infocmp rpm2cpio write infokey rpmdb x86_64 infotocap rpmkeys x86_energy_perf_policy install rpmquery xargs ionice rpmverify xgettext ipcalc rsyslog-recover-qi.pl xmlcatalog ipcmk runcon xmllint ipcrm run-parts xmlsec1 ipcs rvi xmlwf iptables-xml rview xsltproc isosize scp xz jobs script xzcat join scriptreplay xzcmp journalctl scsi_logging_level xzdec kbdinfo scsi_mandat xzdiff kbd_mode scsi_readcap xzegrep kbdrate scsi_ready xzfgrep kdumpctl scsi-rescan xzgrep kernel-install scsi_satl xzless kill scsi_start xzmore kmod scsi_stop yes last scsi_temperature ypdomainname lastb sdiff yum lastlog secon zcat lchfn sed zcmp lchsh seq zdiff ld setarch zegrep ld.bfd setfacl zfgrep ldd setfont zforce ld.gold setkeycodes zgrep less setleds zless lessecho setmetamode zmore lesskey setpriv znew lesspipe.sh setsid zsoelim lexgrog setterm link setup-nsssysinit
/lib 存放系统动态链接共享库,通常后缀名是.so,类似于windows下的.dll
cat /proc/meminfo
[root@kali ~]# cat /proc/meminfo MemTotal: 995684 kB MemFree: 695224 kB MemAvailable: 682644 kB Buffers: 2108 kB Cached: 102400 kB SwapCached: 0 kB Active: 96316 kB Inactive: 81688 kB Active(anon): 74008 kB Inactive(anon): 7308 kB Active(file): 22308 kB Inactive(file): 74380 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 73548 kB Mapped: 26852 kB Shmem: 7820 kB Slab: 57116 kB SReclaimable: 20924 kB SUnreclaim: 36192 kB KernelStack: 3952 kB PageTables: 4564 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 2594988 kB Committed_AS: 297780 kB VmallocTotal: 34359738367 kB VmallocUsed: 180616 kB VmallocChunk: 34359310332 kB Percpu: 33280 kB HardwareCorrupted: 0 kB AnonHugePages: 12288 kB CmaTotal: 0 kB CmaFree: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 79744 kB DirectMap2M: 968704 kB DirectMap1G: 0 kB
cat /proc/meminfo 查看CPU的信息
[root@kali ~]# cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 23 model : 24 model name : AMD Ryzen X XXXXX with Radeon Vega Mobile Gfx stepping : 1 microcode : 0xffffffff cpu MHz : 2096.002 cache size : 512 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : bogomips : 4192.00 TLB size : 2560 4K pages clflush size : 64 cache_alignment : 64 address sizes : 45 bits physical, 48 bits virtual power management:
通常情况下我们可以使用/opt表示可选目录,默认是空的交由用户使用和/home目录,这两个目录均是由用户自由的处理,不存在敏感文件。也可以将程序安装在/opt/目录下,默认情况相爱,程序安装路径会在/usr/bin或者/var/目录下。
三、常见命令使用
1、top命令
类似于windows的任务管理器,可以查看CPU和内存等使用的情况,也可以查看每个进程所消耗的CPU和内存,以及进程ID等信息。
直接在Linux中使用top命令行,因为top命令是全屏输出结果,退出的方式就是键盘的Q或者Ctrl键+c
2、其他命令
pwd命令查看当前所在目录
[root@kali ~]# pwd /root
cd../或者cd..(相对的目录)
[root@centqiang opt]#cd[root@centqiang /]#[root@centqiang /l# pwd [root@centqiang /#cd /etc/sysconfig/network-scripts[root@centqiang network-scripts]#[root@centqiang [network-scripts]#[root@centqiang network-scripts]# pwd/etc/sysconfig/network-scripts [root@centqiang network-scripts]#
当不知道自己在那个目录下面的时候就先切换到根目录下面 直接cd /
fdisk -l查看磁盘分区列表
[root@kali ~]# fdisk -l 磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x00031fcf 设备 Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 83886079 40893440 8e Linux LVM 磁盘 /dev/mapper/centos-root:39.7 GB, 39720058880 字节,77578240 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/mapper/centos-swap:2147 MB, 2147483648 字节,4194304 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节du -sh /etc
[root@kali ~]# du -sh 28K . [root@kali ~]# du -sh /etc 32M /etc [root@kali ~]# 使用du -sh不仅仅可以查看文件也可以查看目录
四、Linux的启动级别
字符界面切换到图形界面的方法:
1、此方法切换至图形化不需要重新输用户名和密码登录:
[root@localhost ~]# startx
2、此方法切换需重新输用户名和密码登录,可以通过systemctl isolate multi-user.target再切换回命令行模式:
[root@localhost ~]# systemctl isolate graphical.target
3、此方法切换需重新输用户名和密码登录,可以通过init3再切换回命令行模式:
[root@localhost ~]# init 5
4、通过快捷键方式切换:
可使用Ctrl+Alt+F1~6进行切换,Ctrl+Alt+1为图形界面。