Ubuntu

基本命令

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

切换文件夹

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

显示文件夹信息

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

复制、删除、重命名文件

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

查看文件内容

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

脚本文件的书写、运行

脚本文件一般格式

1
2
3
4
5
#! /bin/bash

<command 1> && # 有两个&代表运行完该命令之后再执行后面的命令
<command 2> & # 一个&代表依次执行,不管命令是否允许完毕
<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
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

root@hwsrv-645334:~# free -g
total used free shared buff/cache available
Mem: 0 0 0 0 0 0
Swap: 0 0 0
root@hwsrv-645334:~# free -m
total used free shared buff/cache available
Mem: 992 46 178 10 767 733
Swap: 0 0 0
root@hwsrv-645334:~# cat /proc/meminfo
MemTotal: 1016012 kB
MemFree: 182528 kB
MemAvailable: 750804 kB
Buffers: 145532 kB
Cached: 471356 kB
SwapCached: 0 kB
Active: 427940 kB
Inactive: 217128 kB
Active(anon): 31112 kB
Inactive(anon): 10340 kB
Active(file): 396828 kB
Inactive(file): 206788 kB
Unevictable: 3660 kB
Mlocked: 3660 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 16 kB
Writeback: 0 kB
AnonPages: 31876 kB
Mapped: 22608 kB
Shmem: 10848 kB
Slab: 169512 kB
SReclaimable: 148692 kB
SUnreclaim: 20820 kB
KernelStack: 1920 kB
PageTables: 2444 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 508004 kB
Committed_AS: 259952 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 4096 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 46960 kB
DirectMap2M: 1001472 kB
DirectMap1G: 0 kB
root@hwsrv-645334:~# df -hl
Filesystem Size Used Avail Use% Mounted on
udev 487M 0 487M 0% /dev
tmpfs 100M 11M 89M 11% /run
/dev/sda1 30G 2.1G 27G 7% /
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification

root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges

%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command

%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#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
2
3
4
# install
sudo dpkg -i <package name>
# uninstall
sudo apt-get purge <package name>

挂载ISO文件到磁盘

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

查看不同用户执行脚本

1
ps -ef|grep bash

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

1
2
3
4
5
6
while ps -p 123455
do
sleep 5m
done

bash comsolscript.sh

更改某文件夹的拥有者

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

让文件夹只允许自己访问

1
chmod 700 <foldername>