前言:
前面学习怎么对文件进行管理,基本上满足对文件的操作,但是(又是这个可恶的但是)平时再linux不仅仅只是对文件进行操作,可能还会对linux的资源进行管理,比如说,要知道linux操作系统上有哪些进程,修改系统的时间,查看系统的资源等。
1.basename/dirname命令:
basename用于返回一个字符串的基本文件名称:
- [xianzan@xianzan dir1]pwd
- /home/xianzan/dir1
- [xianzan@xianzan dir1]basename `pwd`
- dir1
` `为命令置换符,`pwd`将得到当前路径,home/xianzan/dir1是字符串;
basename `pwd`可以获得当前目录。
dirname:可以获得当前目录的上级目录的路径。
- [xianzan@xianzan dir1]dirname `pwd`
- /home/xianzan
这个命令很少直接在shell命令行中使用,我一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。
2.dos2unix/unix2dos命令:
说明:
有时我们把windows下的文件文件放到Linux下,或Linux下的文件放到Windows下用不通编辑器打开时,发现换行出现问题,这是因为:
Dos和windows采用回车+换行CR/LF表示下一行即/r/n;
UNIX/Linux采用换行符LF表示下一行/n;
苹果机(MAC OS系统)则采用回车符CR表示下一行/r.
在Linux下有两个命令可以实现windows和linux回车的转换:
- [user1@xianzan dir1]$ sudo yum install unix2dos
- [user1@xianzan dir1]$ sudo unix2dos hello.c
- unix2dos: converting file hello.c to DOS format ...
这两个命令系统默认没有安装,而需要自己安装unix2dos和dos2unix两个软件包才会有这两个命令。
3.Linux进程管理:
Linux是支持多进程运行的分时操作系统。ps命令用来查看进程,kill可以终止进程的运行:
查看当前进程:
- [user1@xianzan dir1]$ ps
- PID TTY TIME CMD
- 83768 pts/2 00:00:00 bash
- 84037 pts/2 00:00:00 ps
- [user1@xianzan dir1]$ ps ux
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- user1 83768 0.0 0.1 108336 1804 pts/2 S 12:08 0:00 bash
- user1 84041 0.0 0.1 110236 1128 pts/2 R+ 12:24 0:00 ps ux
- [user1@xianzan dir1]$ ps aux
- USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
- root 1 0.0 0.0 19364 972 ? Ss Jan14 0:04 /sbin/init
- root 2 0.0 0.0 0 0 ? S Jan14 0:00 [kthreadd]
- root 3 0.0 0.0 0 0 ? S Jan14 0:00 [migration/0] ...
可以对某个进行进行单独显示:
- [user1@xianzan dir1]$ ps aux |tail -1
- user1 84193 0.0 0.0 101244 740 pts/2 S+ 12:35 0:00 tail -1
- [user1@xianzan ~]$ ping www.baidu.com
- PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
- [user1@xianzan dir1]$ ps aux |grep ping |grep user1 |grep -v grep //-v是过滤后面的字符,即过滤掉grep进程
- user1 84297 0.1 0.1 109572 1008 pts/0 S+ 12:39 0:00 ping www.baidu.com
- [user1@xianzan dir1]$ kill 84297
- [user1@xianzan ~]$ ping www.baidu.com
- PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
- 已终止
要想进程变为后台进程,在命令后加个&
- [user1@xianzan dir1]$ ping www.baidu.com &
- [2] 84502
- [user1@xianzan dir1]$ ping 4.2.2.2 &
- [3] 84511
- [user1@xianzan dir1]$ ps aux |grep ping |grep user1 |grep -v grep
- user1 84502 0.0 0.1 109572 1012 pts/2 S 12:52 0:00 ping www.baidu.com
- user1 84511 0.0 0.0 103244 724 pts/2 S 12:52 0:00 ping 4.2.2.2
- [user1@xianzan dir1]$ps aux | grep ping |grep -v grep |tr -s ' ' |cut -d' ' -f2
ps aux:打印所有的运行中的进程;
grep ping:抓取 所有包含 ping进程;
grep -v grep:过滤含有grep字段的进程;
tr -s ' ':把所有的重复的空格去掉;
cut -d' ' -f2:以空格为开头截取第二个字段。
补充:
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 该进程使用的虚拟內存量(KB);
RSS 该进程占用的固定內存量(KB)(驻留中页的数量);
TTY 该进程在那个终端上运行(登陆者的终端位置),若与終端無关,則显示(?)。若为pts/0等,则表示由网络连接主机进程
WCHAN 当前进程是否正在进行,若为 - 表示正在进行;
START 该进程被触发启动时间;
TIME 该进程实际使用CPU运行的时间;
COMMAND 命令的名称和参数;
STAT 状态位常见的状态字符
D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;
4.Linux时间管理:
说明:
Linux将时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,简称RTC)两种:
1. RTC时间是RTC芯片的时钟,系统关机时主板上的纽扣电池供电(时钟)继续运行,Windows下需进入到BIOS里进行修改该时间,Linux使用hwclock命令查看/修改;
2. Linux系统时间是Linux系统看到的时钟,系统每次启动时从RTC拿时间设置该值,Linux下该时间可以由data命令来查看/修改;
3. 网络时钟: Linux、Windows系统都可以通过网络授时,Linux使用ntpdate命令获取网络时间;
- [user1@xianzan ~]$ date 显示系统时间
- 2016年 01月 16日 星期六 12:47:02 CST
- [user1@xianzan ~]$ date +"%Y-%m-%d %H:%M:%S" 修改显示系统时间的格式
- 2016-01-16 12:48:34
- [user1@xianzan ~]$ sudo date -s "2016-1-15 13:01:01"
- 2016年 01月 15日 星期五 13:01:01 CST
- [user1@xianzan ~]$ sudo hwclock -r
- 2016年01月16日 星期六 13时11分54秒 -0.735434 seconds
- [user1@xianzan ~]$ sudo hwclock -s
- [user1@xianzan ~]$ date
- 2016年 01月 16日 星期六 13:13:28 CST
- [user1@xianzan ~]$ sudo hwclock -w
- [user1@xianzan ~]$ date
- 2016年 01月 16日 星期六 13:17:22 CST
- [user1@xianzan ~]$ sudo ntpdate time.windos.com
5.Linux 查看系统资源:
查看CPU信息:
- [user1@xianzan ~]$ cat /proc/cpuinfo
- processor : 0
- vendor_id : GenuineIntel
- cpu family : 6
- model : 69
- model name : Intel(R) Core(TM) i3-4030U CPU @ 1.90GHz
- stepping : 1
- microcode : 29
- cpu MHz : 1895.615
- cache size : 3072 KB
- [user1@xianzan ~]$ cat /proc/meminfo
- MemTotal: 1004768 kB
- MemFree: 66476 kB
- Buffers: 40264 kB
- Cached: 359556 kB
- SwapCached: 9144 kB
- Active: 281388 kB
- [user1@xianzan ~]$ free
- total used free shared buffers cached
- Mem: 1004768 938260 66508 5648 40312 359556
- -/+ buffers/cache: 538392 466376
- Swap: 2097148 52172 2044976
- [user1@xianzan ~]$ sudo df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/sda2 28G 25G 1.5G 95% /
- tmpfs 491M 504K 491M 1% /dev/shm
- .host:/ 130G 110G 21G 85% /mnt/hgfs
- /dev/sr0 3.7G 3.7G 0 100% /media/CentOS_6.7_Final
- [user1@xianzan ~]$ top
- top - 13:40:01 up 1 day, 20:25, 3 users, load average: 0.03, 0.01, 0.00
- Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie
- [user1@xianzan ~]$ uptime
- 13:40:53 up 1 day, 20:26, 3 users, load average: 0.01, 0.01, 0.00
- [user1@xianzan ~]$ who
- root tty1 2015-12-26 13:39 (:0)
- root pts/0 2016-01-16 12:38 (:0.0)
- root pts/2 2016-01-16 12:00 (:0.0)
- [user1@xianzan ~]$ cat /etc/redhat-release
- CentOS release 6.7 (Final)
- [user1@xianzan ~]$ uname -a
- Linux xianzan 2.6.32-573.el6.x86_64 #1 SMP Thu Jul 23 15:44:03 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
- [user1@xianzan ~]$ sudo ntsysv