您的位置:首页 > 运维架构 > Linux

linux常用的基本命令

2016-01-16 10:55 621 查看

前言:

前面学习怎么对文件进行管理,基本上满足对文件的操作,但是(又是这个可恶的但是)平时再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.
先查找要结束的进程的进程pid:

[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
用kill+pid结束进程:

[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
修改系统时间:date -s +时间 -s表示设置时间(set)

[user1@xianzan ~]$ sudo date -s "2016-1-15 13:01:01"
2016年 01月 15日 星期五 13:01:01 CST
读取硬件时间(RTC):sudo hwclock -r

[user1@xianzan ~]$ sudo hwclock -r
2016年01月16日 星期六 13时11分54秒  -0.735434 seconds
将系统时间设置为硬件的时间:sudo hwclock -s

[user1@xianzan ~]$ sudo hwclock -s
[user1@xianzan ~]$ date
2016年 01月 16日 星期六 13:13:28 CST
将硬件时间设置为系统时间:sudo hwclock -w

[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
实时显示CPU、内存、进程等信息:

[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
查看linux运行时长:

[user1@xianzan ~]$ uptime
13:40:53 up 1 day, 20:26,  3 users,  load average: 0.01, 0.01, 0.00
查看哪些用户登录到了Linux系统上:

[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)
查看Red Hat系列发行版本:

[user1@xianzan ~]$ cat /etc/redhat-release
CentOS release 6.7 (Final)
查看Linux内核版本等信息:

[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
RedHat系列Linux设置随机启动的服务:

[user1@xianzan ~]$ sudo ntsysv


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: