Catalog
  1. 1. 基本命令
    1. 1.1. 切换文件夹
    2. 1.2. 显示文件夹信息
    3. 1.3. 复制、删除、重命名文件
    4. 1.4. 查看文件内容
    5. 1.5. 脚本文件的书写、运行
  2. 2. 服务器管理员重要命令
    1. 2.1. 远程重启或者关机
    2. 2.2. 添加或者删除用户
    3. 2.3. 查看服务器的硬盘大小
    4. 2.4. 查看服务器的核心数等
    5. 2.5. 重启服务器网络
    6. 2.6. 给某一用户管理员权限
    7. 2.7. 修改用户的密码
    8. 2.8. 添加到环境变量的方法
      1. 2.8.1. A.用于当前用户:
      2. 2.8.2. B.用于所有用户:
    9. 2.9. 安装多个版本软件
    10. 2.10. 安装或者卸载软件 (ubuntu)
    11. 2.11. 挂载ISO文件到磁盘
    12. 2.12. 查看不同用户执行脚本
    13. 2.13. 等待某一程序运行完毕之后接着运行
    14. 2.14. 更改某文件夹的拥有者
    15. 2.15. 让文件夹只允许自己访问
Linux服务器常见命令

基本命令

首先是一些基本的命令,这些命令是最常用到的。

切换文件夹

1
cd <folder name> # 移动到某一文件夹
2
cd <./folder name> # 移动到当前某一文件夹
3
cd <../folder name> # 移动到上一层目录的某一文件夹

显示文件夹信息

1
ls # 列出当前文件夹下所有文件、文件夹
2
ll # 列出当前文件夹下的文件、文件夹以及权限信息
3
ls -lrth # 按时间顺序列出当前文件夹下的所有文件、文件夹的大小、可执行权限
4
ls <folder name> #列出某一文件夹下的文件信息
5
pwd #显示当前文件夹

复制、删除、重命名文件

1
rm <file name> #删除某一文件
2
rm -r <foler name> # 删除某一文件夹
3
rm ./* #删除当前文件夹下所有文件
4
rm ./*.sh #删除当前文件夹下以 .sh结尾的所有文件,这是一种模糊匹配的方式,非常高效
5
cp <current file> <destination folder> # 复制文件到目标文件夹,
6
cp -r <current folder> <destination folder> # 同样的,加上-r表示对文件夹的操作
7
mv <file name> <new file name> # 重命名文件

查看文件内容

1
vi <file name> # 用来查看、修改文件内容,当然该命令不是那么容易用,需要了解vi命令
2
nano <file name> #用来查看、修改文件内容,比vi简单
3
gedit <file name>  #用来查看、修改文件内容,需要图形界面

脚本文件的书写、运行

脚本文件一般格式

1
#! /bin/bash
2
3
<command 1> && # 有两个&代表运行完该命令之后再执行后面的命令
4
<command 2> & # 一个&代表依次执行,不管命令是否允许完毕
5
<command 2> &

赋予文件可执行权限

1
chmod +x <file name>

运行脚本文件

1
<file name>

如果想后台运行,可以

1
nohup <file name> &

服务器管理员重要命令

远程重启或者关机

立即远程重启

1
sudo shutdown -r now

立即远程关机

1
sudo shutdown -h now

添加或者删除用户

添加用户

1
sudo adduser <username>

然后按照提示输入密码等信息即可。此种方法创建用户之后,可以在home目录生成一个和用户名同名字的文件夹。

删除用户

1
sudo userdel -r <username>

此种方法删除用户之后,home目录和用户名同名字的文件夹也会删。

查看服务器的硬盘大小

查看运行内存大小, 以Gb为单位

1
free -g

或者是free -m(以m为单位),cat /proc/meminfo(详细信息)

查看磁盘占用情况

1
df -hl

查看当前文件夹的大小

1
du --max-depth=1 -h

查看单个文件夹或目录大小

1
du -sh <folername>

以下是一些运行结果

1
2
root@hwsrv-645334:~# free -g
3
              total        used        free      shared  buff/cache   available
4
Mem:              0           0           0           0           0           0
5
Swap:             0           0           0
6
root@hwsrv-645334:~# free -m
7
              total        used        free      shared  buff/cache   available
8
Mem:            992          46         178          10         767         733
9
Swap:             0           0           0
10
root@hwsrv-645334:~# cat /proc/meminfo
11
MemTotal:        1016012 kB
12
MemFree:          182528 kB
13
MemAvailable:     750804 kB
14
Buffers:          145532 kB
15
Cached:           471356 kB
16
SwapCached:            0 kB
17
Active:           427940 kB
18
Inactive:         217128 kB
19
Active(anon):      31112 kB
20
Inactive(anon):    10340 kB
21
Active(file):     396828 kB
22
Inactive(file):   206788 kB
23
Unevictable:        3660 kB
24
Mlocked:            3660 kB
25
SwapTotal:             0 kB
26
SwapFree:              0 kB
27
Dirty:                16 kB
28
Writeback:             0 kB
29
AnonPages:         31876 kB
30
Mapped:            22608 kB
31
Shmem:             10848 kB
32
Slab:             169512 kB
33
SReclaimable:     148692 kB
34
SUnreclaim:        20820 kB
35
KernelStack:        1920 kB
36
PageTables:         2444 kB
37
NFS_Unstable:          0 kB
38
Bounce:                0 kB
39
WritebackTmp:          0 kB
40
CommitLimit:      508004 kB
41
Committed_AS:     259952 kB
42
VmallocTotal:   34359738367 kB
43
VmallocUsed:           0 kB
44
VmallocChunk:          0 kB
45
HardwareCorrupted:     0 kB
46
AnonHugePages:      4096 kB
47
CmaTotal:              0 kB
48
CmaFree:               0 kB
49
HugePages_Total:       0
50
HugePages_Free:        0
51
HugePages_Rsvd:        0
52
HugePages_Surp:        0
53
Hugepagesize:       2048 kB
54
DirectMap4k:       46960 kB
55
DirectMap2M:     1001472 kB
56
DirectMap1G:           0 kB
57
root@hwsrv-645334:~# df -hl
58
Filesystem      Size  Used Avail Use% Mounted on
59
udev            487M     0  487M   0% /dev
60
tmpfs           100M   11M   89M  11% /run
61
/dev/sda1        30G  2.1G   27G   7% /
62
tmpfs           497M     0  497M   0% /dev/shm
63
tmpfs           5.0M     0  5.0M   0% /run/lock
64
tmpfs           497M     0  497M   0% /sys/fs/cgroup
65
tmpfs           100M     0  100M   0% /run/user/0

查看服务器的核心数等

查看CPU个数

1
cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l

查看每个物理CPU含有的核心个数

1
cat /proc/cpuinfo |grep "cpu cores"|uniq|wc -l

查看每个CPU核心含有的线程数

1
cat /proc/cpuinfo |grep "processor"|wc -l

那么cpu支持的线程数为 cpu数目 每个cpu含有的核心数目 每个核心含有的线程数

重启服务器网络

可以输入

1
/etc/init.d/network restart

或者

1
/etc/init.d/network restart

给某一用户管理员权限

只需要修改/etc/sudousers文件即可,该文件默认是不可编辑的,首先得更改其权限为可写

1
sudo chmod +w /etc/sudoers

读、写、执行权限可以通过$\pm$rwx来控制,其文件内容大致如下

1
#
2
Defaults        env_reset
3
Defaults        mail_badpass
4
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
5
6
# Host alias specification
7
8
# User alias specification
9
10
# Cmnd alias specification
11
12
# User privilege specification
13
14
root    ALL=(ALL:ALL) ALL
15
16
# Members of the admin group may gain root privileges
17
18
%admin ALL=(ALL) ALL
19
20
# Allow members of group sudo to execute any command
21
22
%sudo   ALL=(ALL:ALL) ALL
23
24
# See sudoers(5) for more information on "#include" directives:
25
26
#includedir /etc/sudoers.d

只需要在 root ALL=(ALL:ALL) ALL一行下按照同样的方式输入对应的用户名即可

1
<username> ALL=(ALL:ALL) ALL

保存退出以后,将文件更改问只读

1
sudo chmod -w /etc/sudoers

修改用户的密码

自己修改自己的,输入passwd之后,输入新密码即可。如果时要通过root用户该其他人的密码,则需要

1
sudo passwd <username>

输入root密码之后,即可修改对应用户的密码了。

添加到环境变量的方法

为了可以在命令行使用,还需要将安装的软件执行文件添加到环境变量。给某个用户和给所有用户添加环境变量是不一样的。

A.用于当前用户:

在对应用户主目录下有一个 .bashrc 隐藏文件,可以在此文件中加入 PATH 的设置如下:

1
vi ~/.bashrc

加入:

1
export PATH=/usr/local/MATLAB/R2018a/bin/:$PATH

如果要加入多个路径,只要:

1
export PATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PATH

当中每个路径要以冒号分隔。这样每次登录都会生效,此时还需要注销再登录或者使用

1
source ~/.bashrc

使得更改生效

B.用于所有用户:

如果需要环境变量更改对所有用户有效,那么需要更改“/etc/profile”文件

1
sudo vi /etc/profile

在其中加入:

1
export PATH=<你要加入的路径>:$PATH

终端输入:echo $PATH 可以查看环境变量此时还需要注销再登录或者使用

1
source /etc/profile

使得更改生效。

安装多个版本软件

有时候我们可能需要安装COMSOL或者MATLAB的多个版本,多个版本软件的安装目录默认是不冲突的,如MATLAB在“/usr/local/MATLAB”下会有“R2018a”或者“R2018b”来区分,COMSOL在“/usr/local/”下有“comsol51”和“comsol54”加以区分。当我们将安装路径加入环境变量之后,由于启动的文件名相同,比如都是“comsol”,为了区别出到底是想启动COMSOL的哪个版本。我们可以将文件名做更改,比如将comsol5.4版本的bin目录下的comsol文件改名为comsol54:

1
sudo mv /usr/local/comsol54/multiphysics/bin/comsol /usr/local/comsol54/multiphysics/bin/comsol54

这样我们在命令行输入“comsol54”就可以指定启动COMSOL5.4版本了。其他软件的做法也类似。

安装或者卸载软件 (ubuntu)

1
# install
2
sudo dpkg -i <package name>
3
# uninstall
4
sudo apt-get purge <package name>

挂载ISO文件到磁盘

1
# mount
2
mount -o loop /filename.iso /mnt/tmp
3
# umount
4
umount /mnt/tmp

查看不同用户执行脚本

1
ps -ef|grep bash

等待某一程序运行完毕之后接着运行

1
while ps -p 123455
2
do
3
sleep 5m
4
done
5
6
bash comsolscript.sh

更改某文件夹的拥有者

1
chown -R <username> <groupname> <folder name>

让文件夹只允许自己访问

1
chmod 700 <foldername>
Author: Knifelee
Link: https://knifelees3.github.io/2019/12/16/C_%E6%95%99%E7%A8%8B_Ubuntu_%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AE%A1%E7%90%86%E5%B8%B8%E8%A7%81%E5%91%BD%E4%BB%A4/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
  • 支付寶

Comment