1.Linux基础操作:主题4 常用Linux指令(系统登录和环境有关指令)

来源:互联网 发布:肯塔基大学 知乎 编辑:程序博客网 时间:2024/04/28 15:12

学习Shell编程,首先要对Shell命令有足够了解。所以,从本讲开始,分类对常用的Shell命令及其常用参数进行讲解。因为本讲义并不是专门针对Shell编程或Linux系统管理,所以只讲解一些常用的知识。有兴趣的童鞋可以课后进行讨论。

1.uname 

之所以将这个命令作为第一个介绍,是因为Linux系统的差异性,有些问题首先要明确操作系统谈论起来才有意义。

如果是简单的uname命令,将显示最基本的信息,只是告诉你“老子是Linux”,加上“-a"参数后,该说的就都说了。这里只需要记住-a 就行了,其他的现用现查就好。


[densintian@rachel ~]$ uname Linux[densintian@rachel ~]$ uname -aLinux rachel 3.16.6-200.fc20.x86_64 #1 SMP Wed Oct 15 13:06:51 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux[densintian@rachel ~]$

2. uptime 

系统运行时间

[densintian@rachel ~]$ uptime  23:11:18 up  1:59,  2 users,  load average: 0.06, 0.03, 0.05[densintian@rachel ~]$


3. su

进入根用户权限(最高权限),在此权限下,一切操作都要谨慎小心。

[densintian@rachel ~]$ uptime  23:11:18 up  1:59,  2 users,  load average: 0.06, 0.03, 0.05[densintian@rachel ~]$


4. exit 

Shell的退出指令。当进入su下,exit将退出根用户模式。如果在一般用户下,将直接退出Shell界面,如果是远程终端访问,将直接关闭Session
[root@rachel ~]# exit登出[densintian@rachel ~]$

5. pwd

当前的工作目录。虽然在fedora下,提示符中有当前的目录信息,但是别的Linux可不一定有。而且fedora下,也都是最后一个层级的目录信息。比如在$HOME下有一个文件夹叫bin,而根目录下,也有一个文件夹叫bin,这时候提示符是相同的。所以需要pwd命令来确定当前的工作目录到底是谁。下面就是这种情况的判断,请注意目录的跳转和提示符的变化
[densintian@rachel bin]$ pwd/bin[densintian@rachel bin]$ cd ~/bin[densintian@rachel bin]$ pwd/home/densintian/bin[densintian@rachel bin]$ 

6. man

这个命令的名字就是单词manual的缩写。功能就是打印命令的手册。包括常用参数等信息。因为手册的长度都比较长,在输出的过程中,回车是向下延伸一行,空格是翻页。q是随时退出。
我个人的用法是经常用输出转向把手册弄到文件里面去看。
[densintian@rachel ~]$ man man[densintian@rachel ~]$ man man > 1.txt[densintian@rachel ~]$ cat 1.txt

7. date

这就是一个顾名思义的命令。输出现在的系统时间。可以简单的设置一些格式。
[densintian@rachel ~]$ date2014年 11月 01日 星期六 21:46:47 CST[densintian@rachel ~]$ date +%Y/%m/%d.%H:%M:%S2014/11/01.21:46:26[densintian@rachel ~]$ date +%Y%m%d%H%M%S #这个参数经常用户在Shell程序中拼接日志文件的文件名20141101214641[densintian@rachel ~]$



8. ps 

查询运行的进程。
主要有三个参数
ps -a 当前终端所有进程 
ps -e 除核心进程外的所有进程
ps -f 产生一个完整的列表,作为非系统管理员的话,前两个参数用处不是很大,而-f 是经常被用到的。因为它能够看出进程间的关系。
[densintian@rachel ~]$ ps  PID TTY          TIME CMD 1740 pts/0    00:00:00 bash 2008 pts/0    00:00:00 vim 2009 pts/0    00:00:00 ps[densintian@rachel ~]$ ps -fUID        PID  PPID  C STIME TTY          TIME CMDdensint+  1740  1718  0 21:43 pts/0    00:00:00 -bashdensint+  2008  1740  0 22:02 pts/0    00:00:00 vimdensint+  2010  1740  0 22:02 pts/0    00:00:00 ps -f[densintian@rachel ~]$ 

可以看到ps 和 ps -f 现实的进程是一样的,但是-f会现实进程的父进程。-bash 是我们登录Shell界面的进程,而其他的进程,都是这个进程的子进程。

9. env

Linux系统有很多环境变量,这些变量可以在Shell中直接调用。当然,不用的用户登录,env变量会不用。这个东西可以在用户的.bashrc文件中设定。
env命令可以查看全部的环境变量


[densintian@rachel ~]$ envREMOTEHOST=localhostXDG_SESSION_ID=1HOSTNAME=rachelSHELL=/bin/bashTERM=xtermHISTSIZE=1000QTDIR=/usr/lib64/qt-3.3TIME_STYLE=+%Y/%m/%d.%H:%M:%SQTINC=/usr/lib64/qt-3.3/includeQT_GRAPHICSSYSTEM_CHECKED=1USER=densintian......# 省略了一些过长的变量SHLVL=1HOME=/home/densintianLOGNAME=densintianQTLIB=/usr/lib64/qt-3.3/libLESSOPEN=||/usr/bin/lesspipe.sh %sXDG_RUNTIME_DIR=/run/user/1000DISPLAY=192.168.0.105:0.0_=/bin/env[densintian@rachel ~]$ 

10. df

检查磁盘空间的占用情况。简单知道就好,初学的情况下,作为一个超省资源的操作系统,基本不太考虑占用情况。

[densintian@rachel ~]$ df文件系统                        1K-blocks    已用       可用 已用% 挂载点/dev/mapper/fedora_rachel-root   51475068 5724844   43112400   12% /devtmpfs                          4050704       0    4050704    0% /devtmpfs                             4061004      80    4060924    1% /dev/shmtmpfs                             4061004     980    4060024    1% /runtmpfs                             4061004       0    4061004    0% /sys/fs/cgrouptmpfs                             4061004      20    4060984    1% /tmp/dev/sda2                          487652  132696     325260   29% /boot/dev/sda1                          204580    9748     194832    5% /boot/efi/dev/mapper/fedora_rachel-home 1141335660 2603556 1080732540    1% /home[densintian@rachel ~]$ 


11. init 0/6 & reboot

init 是Linux必不可少的一个引导进程。进程号永远为1。这里我们只讲解他的两个参数,0 和 6
0 -- 操作系统停机
1 -- 操作系统重启

Linux还有一个重启命令reboot
那么reboot和init 6 有什么区别呢?

'init 6' 调用一系列shutdown脚本(/etc/rc0.d/K*)来使系统优雅关机; 
'reboot'并不执行这些过程,reboot更是一个 kernel级别的命令,不对应用使用shutdown脚本。 .
我们应该在通常情况下使用 init 6.
在出问题的状况下或强制重启 时使用reboot. 

12. which

which可以输出命令所在的位置
[densintian@rachel ~]$ which cd/bin/cd[densintian@rachel ~]$ which lsalias ls='ls --color=auto'  #这一行表示的是,这个命令会自动应用“--color=auto”这个参数。/bin/ls             #这是命令的实际位置[densintian@rachel ~]$ 

[densintian@rachel ~]$ which lsalias ls='ls --color=auto'/bin/ls[densintian@rachel ~]$ which llalias ll='ls -l --color=auto'  # 通过which 命令,使用者能够发现,一些命令实际上是由另外的命令添加特别的参数实现的。/bin/ls[densintian@rachel ~]$ 


13. who

who 是查看谁正在登录这台电脑。管理登录对于服务器或者在公网上的服务器来说尤其重要。

[densintian@rachel ~]$ who densintian :0           2014-11-01 22:47 (:0)         #这表示的是直接在服务器上登录densintian pts/0        2014-11-01 21:43 (localhost)  #pts表示通过终端登录[densintian@rachel ~]$





0 0