Linux常用命令备忘
持续更新
通过ssh登陆linux服务器
1
2
3$ ssh -y -l username serveraddress
// username为用户名
// serveraddress为服务器地址使用cygwin远程连接linux服务A后,通过A访问远程linux服务器B
1
2
3ssh -y -l username server_A_address // 先登录远程服务器A
ssh -y -l username server_B_address // 再在A上登录远程服务器B使用cygwin连接linux服务器时,让cygwin客户端始终保持连接,本实现参考自命令行终端保持连接
1
2
3
4
5
6
7
8
9
10ls -a // 当前用户主目录下,执行查看,看到隐藏的.ssh文件夹
cd .ssh // 进入.ssh文件夹
vi config // 打开配置文件(若不存在则创建)
// 利用vi编辑器,在配置文件中输入以下配置,其中时间间隔可自行设置
Host *hostname.com
ServerAliveInterval 60
// 保存退出
chmod +x config // 为其增加执行权限,完成设置通过scp跨服务器复制文件
1
2
3
4
5
6
7
8
9scp file1.txt username@serveraddress:/home/username
// file1.txt 为复制源
// username@serveraddress:/home/username为目标路径
scp -r test username@serveraddress:/home/username
// -r表示复制的是文件夹,test为文件夹
scp -r -P 20782 test username@serveraddress:/home/username
// -P 20782 表示端口号,对于有指定端口需求的,需要采用这种方式复制指定目录下的全部文件到另一个目录中
1
2
3
4
5
6
7// 假设复制源目录为dir1,目标目录为dir2,怎样才能将dir1下所有文件复制到dir2下?
// 如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
// 如果dir2目录已存在,则需要使用
cp -r dir1/. dir2
// 如果这时使用cp -r dir1 dir2,则也会将dir1目录复制到dir2中,明显不符合要求。通过pkill终止指定用户的所有进程
1
2pkill -uusername
// -u为指定用户的命令,username为指定的用户运行目录下的可执行程序
1
2./submit.sh test.st
// ./代表当前路径下,submit.sh是输入参数,test.st是可执行程序通过nohup后台运行可执行程序
1
2
3
4nohup ./submit.sh test.st &
// nohup 表示忽略HUP信号,标准输出和标准错误缺省会被重定向到nohup.out文件中
// 在结尾加上 & 来将命令放入后台运行
// 退出终端时,需要使用exit命令退出终端,如果直接关闭终端窗口会将后台运行的程序一同关闭linux 查看隐藏文件
1
2
3
4
5
6
7
8//方法一:显示所有文件(包含隐藏文件)
ls -a
//方法二:只显示隐藏文件
l.
//方法三:同样只显示隐藏文件
ls -d .*通过XTerm打开linux下的图形界面
1
2
3
4
5// 登陆方式
$ ssh username@hostname -Y
// 登陆成功后,直接输入应用程序名称调用该程序
applicationName新建文件
1
2// 可简单利用编辑器vim,如果test.sh存在则打开,不存在则新建
vim test.sh删除文件
1
rm filename
删除文件夹(空与非空)
1
2
3
4
5
6
7
8
9
10
11
12
13
14// 删除空目录
rmdir flodername
// 删除非空目录
// -r 就是向下递归,不管有多少级目录,一并删除
// -f 就是直接强行删除,不作任何提示的意思
rm -rf flodername
// 例如
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件Linux的关机与重启命令
1
2
3
4
5
6
7
8
9
10
11
12
13重启命令:
reboot
shutdown -r now // 立刻重启(root用户使用)
shutdown -r 10 // 过10分钟自动重启(root用户使用)
shutdown -r 20:35 // 在时间为20:35时候重启(root用户使用)
//如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
关机命令:
halt // 立刻关机
poweroff // 立刻关机
shutdown -h now // 立刻关机(root用户使用)
shutdown -h 10 // 10分钟后自动关机
// 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启用户、用户组、权限相关
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// 增加用户组
groupadd groupName
groupdel groupName
// 增加用户
useradd userName
passwd userName
// 将一个用户添加到用户组中,千万不能直接用:
usermod -G groupName userName
// 这样做会使你离开其他用户组,仅仅做为这个用户组groupName的成员。
// 应该用加上-a选项,a代表append,也就是将自己添加到用户组groupName中,而不必离开其他用户组
usermod -a -G groupName userName
//查看当前登录用户所在的组
groups
//查看某个用户hmliao所在组
groups hmliao
//查看有多少用户
cat /etc/passwd //使用此cat命令所打印出来的东西会很乱,可以用下面的命令
cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more
//删除用户
userdel -r username // 为了在删除用户时完全删除家目录,我们可以使用 -r 选项
//普通用户加sudo权限
sudo vim /etc/sudoers
root ALL=(ALL) ALL //在“root ALL=(ALL) ALL”这一行下面,再加入一行
hmliao ALL=(ALL) ALLLinux 用户切换、修改用户名、修改密码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23//普通用户到root
方式一:命令:su 回车,然后输入root密码
此种方式只是切换了root身份,但Shell环境仍是普通用户的Shell,pwd命令一下,目录仍然是普通用户的工作目录。
方式二:命令:su - 回车,然后输入root密码
此种方式,是连用户和Shell环境一起切换成root身份。 工作目录变成root的工作目录,pwd命令一下,即可看到。
只有切换用户,才不会出现PATH环境变量错误
//root到普通用户
命令:su 普通用户名 或 exit
//修改普通用户用户名
usermod -l newUserName oldUserName //这种方法只改了表面,用pwd命令看一下,路径还是之前的用户名
usermod -l newUserName -d /home/newUserName -m oldUserName
//修改密码
1. 修改普通用户密码
命令:sudo passwd userName //如sudo passwd wyc
输入两边新密码
2. 修改 root密码
命令:passwd suName //修改超级用户的密码,如root的密码
输入两遍新密码通过chmod修改文件权限
1
2
3
4
5chmod u+x submit.sh
// u代表user,即所有用户,+x代表增加执行权限,submit.sh为要修改权限的文件
chmod u-x submit.sh
//取消权限通过chown修改 文件/目录 的所有者
1
2chown userName:userName testfile.xx //修改tesfile.xx文件拥有者为userName
chown -R userName:userName testDir //修改testDir目录及其所包含的文件的拥有者为userNameLinux系统查看物理CPU个数、CPU核数及逻辑CPU个数
CPU总核数 = 物理CPU个数 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 每颗物理CPU的核数 * 超线程数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// 查看CPU信息
cat /proc/cpuinfo
// 查看CPU信息(型号)
hmliao@localhost:~> cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
28 Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
// 查看物理CPU个数
hmliao@localhost:~> cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
2
hmliao@localhost:~> grep 'physical id' /proc/cpuinfo | sort -u | wc -l
2
// 查看每个物理CPU中core的个数(即核数)
hmliao@localhost:~> cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 14
hmliao@localhost:~> grep 'core id' /proc/cpuinfo | sort -u | wc -l
14
hmliao@localhost:~> cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 14
// 查看逻辑CPU的个数(查看线程数)
hmliao@localhost:~> cat /proc/cpuinfo| grep "processor"| wc -l
28
hmliao@localhost:~> grep 'processor' /proc/cpuinfo | sort -u | wc -l
28
// 查看CPU型号
sudo dmidecode -s processor-version查看显卡
1
lspci -v -s `lspci | awk '/VGA/{print $1}'`
查看系统版本
1
2
3
4
5
6cat /etc/issue
cat /etc/redhat-release
lsb_release -a
//lsb_release: command not found 解决
//解决方法:yum install redhat-lsb -y查看硬盘序列号
1
smartctl -i /dev/sda
查看硬盘大小
1
df -lh
查看各文件夹大小
1
du -h --max-depth=1
查看当前cpu运行的频率、最大频率、最小频率
1
2
3
4
5cat devices cpu cpufreq/cpuinfo_cur_freq
cat devices cpu cpufreq/cpuinfo_max_freq
cat devices cpu cpufreq/cpuinfo_min_freq