linux常用命令

一、基本命令格式

1.

[用户@主机名 当前所在目录]#

[root@localhost ~]#

root:当前登陆用户(root表示超级用户,即管理员)

localhost:主机名

~:当前所在目录(~表示家目录)

#:超级用户的提示符(普通用户的提示符为$)

注:超级用户的家目录是名为/root的一级目录;而普通用户的家目录则是名为/home/用户名的二级目录。e.g.

[root@localhost ~]# pwd
/root
[username@localhost ~]$ pwd
/home/username

 

2. 命令格式

命令 [选项] [参数]

选项的作用是用来调整命令的功能。

注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起。

 

3. 查询目录中内容:ls

ls [选项] [文件或目录]

选项:

  • -a:显示所有文件,包括隐藏文件
  • -l:显示详细信息
  • -d:查看目录属性
  • -h:人性化显示文件大小
  • -i:显示inode

(1)-l:查看目录下的信息

[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1776 3月  31 16:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1824 3月  31 17:10 initial-setup-ks.cfg

其中,详细信息包括文件的权限、引用计数、文件的所有组、所属组、大小最后修改时间和文件名。

文件权限:

  • 第1位:文件类型(-表示文件;d表示目录;l表示软链接)
  • 第2~4/5~7/8~10位:所有者/所属组/其他人的权限(r代表读;w代表写;x代表执行)
  • 第11位:.表示“ACL权限”

(2)-h:文件大小使用K、M、G来表示

[root@localhost ~]# ls -lh
总用量 8.0K
-rw-------. 1 root root 1.8K 3月  31 16:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1.8K 3月  31 17:10 initial-setup-ks.cfg
[root@localhost ~]# ls -lh an*
-rw-------. 1 root root 1.8K 3月  31 16:29 anaconda-ks.cfg

(3)-a:隐藏文件以.开头,表示系统文件。

[root@localhost ~]# ls -a
.                .bash_logout   .config  initial-setup-ks.cfg
..               .bash_profile  .cshrc   .pki
anaconda-ks.cfg  .bashrc        .dbus    .tcshrc
.bash_history    .cache         .gnupg   .xauth7Z3Tg8

(4)-d:查看当前目录本身的信息,而不是目录下的信息

[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1776 3月  31 16:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1824 3月  31 17:10 initial-setup-ks.cfg
[root@localhost ~]# ls -ld
dr-xr-x---. 7 root root 251 4月   1 10:48

(5)-i:查看目录的id号

[root@localhost ~]# ls -i
33582146 anaconda-ks.cfg  33582166 initial-setup-ks.cfg

 

二、目录处理命令

1. 创建目录:mkdir

mkdir -p [目录名]

-p:递归创建,即连续创建多级目录。

[username@localhost ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面
[username@localhost ~]$ mkdir test/C++
mkdir: 无法创建目录"test/C++": 没有那个文件或目录
[username@localhost ~]$ mkdir -p test/C++
[username@localhost ~]$ cd test
[username@localhost test]$ mkdir python
[username@localhost test]$ ls
C++  python

 

2. 切换所在目录:cd

cd [目录]

简化操作:

  • cd或者cd ~:进入当前用户的家目录
  • cd -:进入上一次访问的目录
  • cd ..:进入上一级目录
  • cd .:进入当前目录
[username@localhost ~]$ cd /
[username@localhost /]$ cd
[username@localhost ~]$ cd test/python
[username@localhost python]$ cd ../C++
[username@localhost C++]$ cd /usr/src
[username@localhost src]$ 

注:可以使用tab键来实现目录补全或命令补全(如果存在多种补全方式,则需要按两次tab键来显示所有的情况)。

 

3. 查询所在目录位置:pwd

[username@localhost src]$ pwd
/usr/src

 

4. 删除空目录: 

rmdir [目录]

[username@localhost test]$ ls
C++  python
[username@localhost test]$ rmdir python
[username@localhost test]$ ls
C++
[username@localhost test]$ rmdir ..
rmdir: 删除 ".." 失败: 目录非空

 

5. 删除文件或目录

rm -rf [文件或目录]

选项:

  • -r:删除目录
  • -f:强制
[username@localhost ~]$ touch abc
[username@localhost ~]$ ls
abc                             test  模板  图片  下载  桌面
google-chrome-package-in-linux  公共  视频  文档  音乐.
[username@localhost ~]$ rm abc
[username@localhost ~]$ ls
google-chrome-package-in-linux  公共  视频  文档  音乐
test                            模板  图片  下载  桌面
[username@localhost ~]$ rm -rf test
[username@localhost ~]$ ls
google-chrome-package-in-linux  公共  模板  视频  图片  文档  下载  音乐  桌面

 

6. 复制命令

cp [选项] [原文件或目录][目标目录]

选项:

  • -r:复制目录
  • -p:连带文件属性复制
  • -d:若源文件是链接文件,则复制链接属性
  • -a:相当于-pdr

注:在复制过程中可以实现重命名,如下所示(ll是ls -l的别名):

[root@localhost ~]# cp anaconda-ks.cfg /tmp/ana
[root@localhost ~]# ll
总用量 8
-rw-------. 1 root root 1776 3月  31 16:29 anaconda-ks.cfg
-rw-r--r--. 1 root root 1824 3月  31 17:10 initial-setup-ks.cfg
[root@localhost ~]# ll /tmp
总用量 1280
-rw-------. 1 root   root     1776 4月   1 14:35 ana

从上面可以看到源文件和复制后的文件的时间属性是不一样的,要想保证属性的一致则需要使用-a(即包括了-p和-d)。

[root@localhost ~]# cp -a anaconda-ks.cfg /tmp/ana2
[root@localhost ~]# ll /tmp
总用量 1284
-rw-------. 1 root   root     1776 4月   1 14:35 ana
-rw-------. 1 root   root     1776 3月  31 16:29 ana2

 

7. 剪切或改名命令

mv [原文件或目录] [目标目录]

注:和复制不同,剪切目录不需要使用-p选项。

[username@localhost test]$ ls
file1
[username@localhost test]$ mv file1 C++
[username@localhost test]$ ls
C++

 

8. 常用目录的作用

  • /:根目录
  • /bin:命令保存目录(普通用户就可以读取的命令)
  • /boot:启动目录,启动相关文件
  • /dev:设备文件保存目录
  • /etc:配置文件保存目录
  • /home:普通用户的家目录
  • /lib:系统库保存目录
  • /mnt:系统挂载目录
  • /media:挂载目录
  • /root:超级用户的家目录
  • /tmp:临时目录
  • /sbin:命令保存目录(只有超级用户才能使用的命令)
  • /proc:直接写入内存的
  • /sys:直接写入内存的
  • /usr:系统软件资源目录
  • /var:系统相关文档目录

 

9. 链接命令:ln

ln -s [原文件] [目标文件]

选项:

  • -s:创建软链接

(1)硬链接:

  • 拥有相同的i节点和存储block块,可以看做是同一个文件
  • 可通过i节点识别
  • 不能跨分区
  • 不能针对目录使用

可以看到两个文件的i节点相同,引用计数为2:

[username@localhost C++]$ ln a.cpp ../python/a.py
[username@localhost C++]$ ll a.cpp ../python/a.py
-rw-rw-r--. 2 username username 0 4月   1 15:07 a.cpp
-rw-rw-r--. 2 username username 0 4月   1 15:07 ../python/a.py
[username@localhost C++]$ ls -i a.cpp ../python/a.py
20374606 a.cpp  20374606 ../python/a.py

修改其中一个文件的内容,另一个也会改变。删除其中一个文件,引用计数就会减为1:

[username@localhost C++]$ rm -rf a.cpp
[username@localhost C++]$ ll ../python/a.py
-rw-rw-r--. 1 bigyao bigyao 0 4月   1 15:07 ../python/a.py

(2)软链接

  • 类似于Windows快捷方式
  • 软链接拥有自己的i节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据
  • 软链接文件的权限为rwxrwxrwx
  • 修改任意文件,另一个都改变
  • 删除原文件,软链接不能使用
[username@localhost C++]$ ln -s a.cpp ../python/a.py
[username@localhost C++]$ ls -i a.cpp ../python/a.py
20374592 a.cpp  34519735 ../python/a.py
[username@localhost C++]$ rm -rf a.cpp
[username@localhost C++]$ cat ../python/a.py
cat: ../python/a.py: 没有那个文件或目录

 

三、文件搜索命令

1. 文件搜索命令:locate

locate [文件名]

在后台数据库中按文件名搜索,搜索速度比find快

locate命令所搜索的后台数据库为/var/lib/molocate

对于自己新建的文件,需要先更新数据库,然后再查找:

[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@localhost ~]# locate anaconda-ks.cfg 
/root/anaconda-ks.cfg
[root@localhost ~]# touch UPlayBasketballLikeCaiXunkun
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  UPlayBasketballLikeCaiXunkun
[root@localhost ~]# locate UPlayBasketballLikeCaiXunkun      
[root@localhost ~]# updatedb
[root@localhost ~]# locate UPlayBasketballLikeCaiXunkun 
/root/UPlayBasketballLikeCaiXunkun

locate搜索依照配置文件/etc/updatedb.conf进行限制(whereis和which也是):

  • PRUNE_BIND_MOUNTS="yes"    # 开启搜索限制
  • PRUNEFS = [搜索时不搜索的文件系统]
  • PRUNENAMES = [搜索时不搜索的文件类型]
  • PRUNEPATHS = [不搜索的路径]
[root@localhost ~]# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs"
PRUNENAMES = ".git .hg .svn"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/spool/cups /var/spool/squid /var/tmp"

 

2. 命令搜索命令:whereis与which

(1)搜索命令所在路径及帮助文档所在位置

whereis [命令名]

选项:

  • -b:只查找可执行文件
  • -m:只查找帮助文件
[username@localhost ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[username@localhost ~]$ whatis ls
ls (1)               - 列目录内容
ls (1p)              - list directory contents

(2)搜索命令所在路径及别名(不是所有的命令都有别名)

which [文件名]

 

[username@localhost ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[username@localhost ~]$ which ll
alias ll='ls -l --color=auto'
	/usr/bin/ls
[username@localhost ~]$ which pwd
/usr/bin/pwd

(3)PATH环境变量:系统搜索命令的路径

[username@localhost ~]$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/username/.local/bin:/home/username/bin

搜索的路径以冒号分隔。

 

3. 文件搜索命令:find

find [搜索范围] [搜索条件]

使用find要避免大范围搜索,因为会非常耗费系统资源。

find是在系统当中搜索复合条件的文件名。如果需要匹配,可使用通配符:

*匹配任意内容
?匹配任意一个字符
[ ]匹配任意一个中括号内的字符
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg
[root@localhost ~]# find / -name initial*
find: ‘/run/user/1000/gvfs’: 权限不够
/root/initial-setup-ks.cfg

由于以上搜索的是整个根目录,所以耗费时间长。

find [搜索范围] -iname [文件名]    # 不区分大小写

find [搜索范围] -user [用户]    # 按所有者搜索(e.g. root)

find [搜索范围] -nouser    # 查找没有所有者的文件

find [搜索范围] -mtime +10    # 搜索10天前修改的文件

  • -10:10天内修改的文件
  • 10:往前第10天当天修改的文件
  • +10:10天前修改的文件
  • atime:访问文件的时间
  • ctime:改变文件属性的时间
  • mtime:修改文件内容的时间

find [查找范围] -size 25k    # 查找文件大小是25KB的文件

  • -25k:小于25KB的文件
  • 25k:等于25KB的文件
  • +25k:大于25KB的文件
  • 大小使用两个单位:G——GB;M——MB;k——KB;b——byte;不显示带单位——数据块

e.g.

[root@localhost ~]# find /etc -size +20k -a -size -50k
# 查找/etc/目录下,大于20KB并且小于50KB的文件
  • -a:and,逻辑与
  • -o:or,逻辑或
[root@localhost ~]# find /etc -size +20k -a -size -50k -exec ls -lh {} \;
# 查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
# -exec/-ok 命令 {} \; 对搜索结果执行操作(-exec的参数中{}和\;之间要有一个空格)

find [搜索范围] -inum [节点号]    # 按inode搜索

 

4. 字符串搜索命令:grep

在文件中匹配符合条件的字符串

grep [选项] 字符串 文件名

选项:

  • -i:忽略大小写
  • -v:排除指定字符串
[root@localhost ~]# grep "nochange" initial-setup-ks.cfg 
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty

root@localhost ~]# ps -ef | grep bin
root         1     0  0 09:51 pts/0    00:00:00 /bin/bash
root         8     0  0 09:52 pts/1    00:00:00 /bin/bash
root        71     0  0 10:13 pts/2    00:00:00 /bin/bash
root       113     0  0 10:35 pts/3    00:00:00 /bin/bash
root       132   113  0 10:42 pts/3    00:00:00 grep --color=auto bin

find命令和grep命令的区别:

  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
  • grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配

 

四、帮助命令

1. 查看帮助命令:man

man [选项] 命令

man ls

使用“/关键词”可以精确定位到内容:

查看man的级别:

man man

有些指令或程序可能有一个以上的主题,它们位于不同的区段中。因此,要查看较后的区段,你可以在此指定 man 查找区段的顺序。具体区段划分如下所示:

  • 区段1:用户指令(查看命令的帮助)
  • 区段2:系统调用(查看可被内核调用的函数的帮助)
  • 区段3:程序库调用(查看函数和函数库的帮助)
  • 区段4:设备(查看特殊文件的帮助)
  • 区段5:文件格式(查看配置文件的帮助)
  • 区段6:游戏(查看游戏的帮助)
  • 区段7:杂项(查看其它杂项的帮助)
  • 区段8:系统指令(查看系统管理员可用命令的帮助)
  • 区段9:内核内部指令(查看和内核相关文件的帮助)

可以查看命令拥有哪个级别的帮助:

man -f 命令    # 等价于whatis [命令]

[username@localhost ~]$ man -f ls
ls (1)               - 列目录内容
ls (1p)              - list directory contents
[username@localhost ~]$ man -f sudo
sudo (8)             - execute a command as another user
[username@localhost ~]$ whatis sudo
sudo (8)             - execute a command as another user
[username@localhost ~]$ man -f passwd
passwd (5)           - (未知的主题)
sslpasswd (1ssl)     - compute password hashes
passwd (1)           - update user's authentication tokens

然后再查看对应级别的帮助:

man -s [级别] 命令

[username@localhost ~]$ man -s 5 passwd

 

4. 选项帮助:help

命令 --help

该命令只会看到与选项相关的帮助。

[username@localhost ~]$ ls --help
用法:ls [选项]... [文件]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all			不隐藏任何以. 开始的项目
  -A, --almost-all		列出除. 及.. 以外的任何项目
      --author			与-l 同时使用时列出每个文件的作者
  -b, --escape			以八进制溢出序列表示不可打印的字符
      --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,
                               '--block-size=M' prints sizes in units of
......

 

3. shell内部命令帮助

help shell内部命令    # 获取shell内部命令的帮助

whereis 命令    # 确定是否为shell内部命令,如果位于可执行目录bin下,则不是shell内部命令

[username@localhost ~]$ whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
[username@localhost ~]$ help cd
cd: cd [-L|[-P [-e]]] [dir]
    Change the shell working directory.
    
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
......
[username@localhost ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[username@localhost ~]$ help ls
bash: help: 没有与 'ls' 匹配的帮助主题。尝试 'help help' 或者 'man -k ls' 或者 'info ls'。

 

4. 详细帮助命令:info

info 命令

查看操作:

  • -回车:进入自帮助页面(带有*号标记)
  • -u:进入上层页面
  • -n:进入下一个帮助小节
  • -p:进入上一个帮助小节
  • -q:退出

 

五、压缩与解压缩命令

1. .zip格式压缩与解压缩

zip 压缩文件名 源文件    # 压缩文件

zip -r 压缩文件名 源目录    # 压缩目录

unzip 压缩文件名    # 无需给出解压后的文件名,也不区分文件和目录

[username@localhost ~]$ ls
google-chrome-package-in-linux  公共  视频  文档  音乐
test                            模板  图片  下载  桌面
[username@localhost ~]$ zip -r test.zip test
	zip warning: name not matched: test/python/a.py
  adding: test/ (stored 0%)
  adding: test/C++/ (stored 0%)
  adding: test/C++/a.out (deflated 68%)
  adding: test/C++/a.cpp (deflated 4%)
  adding: test/C++/.a.cpp.swp (deflated 98%)
  adding: test/python/ (stored 0%)
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.zip  模板  图片  下载  桌面
test                            公共      视频  文档  音乐
[username@localhost ~]$ unzip test.zip
Archive:  test.zip
   creating: test/
   creating: test/C++/
  inflating: test/C++/a.out          
  inflating: test/C++/a.cpp          
  inflating: test/C++/.a.cpp.swp     
   creating: test/python/

 

2. .gz格式压缩与解压缩

gzip 源文件    # 压缩为.gz格式的压缩文件,源文件会消失

gzip -c 源文件 > 压缩文件    # 压缩为.gz格式,源文件保留

gzip -r 目录    # 压缩目录下所有的子文件,但不能压缩目录

gzip -d 压缩文件    # 解压缩.gz格式文件

gunzip 压缩文件    # 解压缩.gz格式文件

gunzip -r 目录    # 解压缩目录中的.gz格式压缩文件

[username@localhost C++]$ ls
a.cpp  a.out
[username@localhost C++]$ gzip a.cpp
[username@localhost C++]$ ls
a.cpp.gz  a.out
[username@localhost C++]$ gzip -d a.cpp.gz
[username@localhost C++]$ ls
a.cpp  a.out
[username@localhost C++]$ gzip -c a.cpp > a.cpp.gz
[username@localhost C++]$ ls
a.cpp  a.cpp.gz  a.out
[username@localhost C++]$ ls
a.cpp
[username@localhost C++]$ cd ..
[username@localhost test]$ gzip -r C++
[username@localhost test]$ ls C++
a.cpp.gz
[username@localhost test]$ gunzip -r C++
[username@localhost test]$ ls C++
a.cpp

 

3. .bz2格式压缩与解压缩

bzip2 源文件    # 压缩为.bz2格式,不保留源文件

bzip2 -k 源文件    # 压缩之后保留源文件

bzip2 -d 压缩文件    # 解压缩,-k保留压缩文件

bunzip2 压缩文件    # 解压缩,-k保留压缩文件

注意:bzip命令不能压缩目录。

 

4. 打包命令:tar

tar -cvf 打包文件名 源文件    # 打包

tar -xcf 打包文件名    # 解打包

选项:

  • -c:打包
  • -x:解打包
  • -v:显示过程
  • -f:指定打包后的文件名
[username@localhost ~]$ tar -cvf test.tar test
test/
test/C++/
test/C++/.a.cpp.swp
test/C++/a.cpp
test/python/
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar  模板  图片  下载  桌面
test                            公共      视频  文档  音乐
[username@localhost ~]$ gzip test.tar
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar.gz  模板  图片  下载  桌面
test                            公共         视频  文档  音乐
[username@localhost ~]$ gunzip test.tar.gz
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar  模板  图片  下载  桌面
test                            公共      视频  文档  音乐
[username@localhost ~]$ bzip2 test.tar
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar.bz2  模板  图片  下载  桌面
test                            公共          视频  文档  音乐 
[username@localhost ~]$ bunzip2 test.tar.bz2
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar  模板  图片  下载  桌面
test                            公共      视频  文档  音乐
[username@localhost ~]$ rm -rf test
[username@localhost ~]$ tar -xvf test.tar
test/
test/C++/
test/C++/.a.cpp.swp
test/C++/a.cpp
test/python/
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar  模板  图片  下载  桌面
test                            公共      视频  文档  音乐

解决了bzip2不能压缩目录的问题,但操作上比较繁琐。

tar -zcvf 压缩包名.tar.gz 源文件

tar -zxvf 压缩包名.tar.gz

tar -jcvf 压缩包名.tar.bz2 源文件

tar -jxvf 压缩包名.tar.bz2

  • -z:.tar.gz格式的压缩与解压缩
[username@localhost ~]$ tar -zcvf test.tar.gz test
test/
test/C++/
test/C++/.a.cpp.swp
test/C++/a.cpp
test/python/
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar.gz  模板  图片  下载  桌面
test                            公共         视频  文档  音乐
[username@localhost ~]$ rm -rf test
[username@localhost ~]$ tar -zxvf test.tar.gz
test/
test/C++/
test/C++/.a.cpp.swp
test/C++/a.cpp
test/python/
[username@localhost ~]$ ls
google-chrome-package-in-linux  test.tar.gz  模板  图片  下载  桌面
test                            公共         视频  文档  音乐

 

六、关机与重启命令

1. shutdown命令

shutdown [选项] 时间

选项:

  • -c:取消前一个关机命令
  • -h:关机
  • -r:重启
[root@localhost ~]# date
2019年 04月 09日 星期二 13:35:37 CST
[root@localhost ~]# shutdown -h 14:00
Shutdown scheduled for 二 2019-04-09 14:00:00 CST, use 'shutdown -c' to cancel.
[root@localhost ~]# shutdown -c

Broadcast message from root@localhost.localdomain (Tue 2019-04-09 13:35:55 CST):

The system shutdown has been cancelled at Tue 2019-04-09 13:36:55 CST!

 

2. 其他关机命令

halt

poweroff

init 0

虽然都可以关机,但相对于shutdown -h而言不够安全,尽量不要使用。

 

3. 其他重启命令

reboot

init 6

reboot相对来说比较安全,可以代替shutdown -r使用,init 6就不太安全,尽量避免使用。

 

4. 系统运行级别(init)

  • 0:关机
  • 1:单用户(类似于Windows的安全模式)
  • 2:不完全多用户,不含NFS服务(字符界面,但不包含NFS)
  • 3:完全多用户(字符界面)
  • 4:未分配
  • 5:图形界面
  • 6:重启

runlevel    # 查询系统运行级别

[root@localhost ~]# runlevel
N 5

当前运行级别为5(图形界面);上一次运行级别为N(空)。

 

5. 退出登录命令

logout

退出服务器应该使用logout,因为登录用户的数目受到限制。

 

七、挂载命令

Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。

1. 查询与自动挂载

mount    # 查询系统中已经挂载的设备

mount -a    # 依据配置文件/etc/fstab的内容,自动挂载

 

2. 挂载命令格式

mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

选项:

  • -t 文件系统:加入文件系统类型来制定挂载的类型,可以是ext3、ext4、iso9660等文件系统。
  • -o 特殊选项:可以指定挂载的额外选项。

e.g.

先使用mount查看有哪些已经挂载的目录:

[root@localhost ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=483940k,nr_inodes=120985,mode=755)
......

然后选择在/dec目录下新建脚本文件hello.sh

[root@localhost var]# vi hello.sh

[root@localhost dev]# chmod 755 hello.sh
[root@localhost dev]# ./hello.sh
bash: ./hello.sh: 权限不够

权限不够是因为挂载的/dec目录的权限是nonexec,可以重新挂载并修改权限为exec。

[root@localhost dev]# mount -o remount,exec /dev
[root@localhost dev]# ./hello.sh
Hello World.

 

3. 挂载与卸载光盘

mkdir /mnt/cdrom/    # 建立挂载点

mount -t iso9660 /dev/cdrom /mnt/cdrom/    # 挂载光盘

umount /mnt/cdrom   # 卸载光盘

 

4. 挂载U盘

fdisk -l    # 查看U盘设备文件名

mount -t vfat /dev/sdb1 /mnt/usb/    # 挂载U盘

 

八、用户登录查看和用户交互命令

1. 查看登录用户信息:w

w 用户名

命令输出:

  • USER:登录的用户名
  • TTY:登录终端
  • FROM:从哪个IP地址登录
  • LOGIN@:登录时间
  • IDLE:用户闲置时间
  • JCPU:指的是和该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
  • PCPU:是指当前进程所占用的时间
  • WHAT:当前正在运行的命令
[root@localhost ~]# w username
 14:45:58 up  1:28,  2 users,  load average: 2.65, 3.06, 2.44
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
username :0       :0               13:20   ?xdm?   1:26m  1.32s /usr/libexec/gn
username pts/0    :0               13:35    6.00s  0.68s 14.07s /usr/libexec/gn

 

2. 查看登录用户信息:who

who 用户名

命令输出:

  • 用户名
  • 登录终端
  • 登录时间(登录来源IP地址)
[root@localhost ~]# who
username :0           2019-04-09 13:20 (:0)
username pts/0        2019-04-09 13:35 (:0)

 

3. 查询当前登录和过去登录的用户信息

last    # 所有登录信息

last命令默认是读取/var/log/wtmp文件数据

命令输出

  • 用户名
  • 登录终端
  • 登录IP
  • 登录时间
  • 退出时间(在线时间)

lastlog    # 最后一次登录信息

[username@localhost ~]$ lastlog
用户名           端口     来自             最后登陆时间
root             pts/0                     一 7月 15 14:08:35 +0800 2019
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
systemd-network                            **从未登录过**
dbus                                       **从未登录过**
polkitd                                    **从未登录过**
abrt                                       **从未登录过**
libstoragemgmt                             **从未登录过**
rpc                                        **从未登录过**
colord                                     **从未登录过**
saslauth                                   **从未登录过**
setroubleshoot                             **从未登录过**
rtkit                                      **从未登录过**
pulse                                      **从未登录过**
qemu                                       **从未登录过**
ntp                                        **从未登录过**
radvd                                      **从未登录过**
chrony                                     **从未登录过**
tss                                        **从未登录过**
usbmuxd                                    **从未登录过**
geoclue                                    **从未登录过**
sssd                                       **从未登录过**
gdm              :0                        一 7月 15 14:06:40 +0800 2019
rpcuser                                    **从未登录过**
nfsnobody                                  **从未登录过**
gnome-initial-setup                        **从未登录过**
avahi                                      **从未登录过**
postfix                                    **从未登录过**
sshd                                       **从未登录过**
tcpdump                                    **从未登录过**
username         :0                        一 7月 15 14:08:10 +0800 2019

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值