Linux 常用命令及常见问题

请注意,本文编写于 1993 天前,最后修改于 19 天前,其中某些信息可能已经过时。

因为我平时接触最多的Linux版本是Centos的,所以本篇主要是Centos7的命令,但大多Linux发行版大差不差,所以其他版本还是可以参考的。

Centos 7 之后使用 nmtui 进行网络设置 (树莓派可以安装centos7的系统,此命令可以用来连接wifi)
uname -a    (Linux查看版本当前操作系统内核信息)
cat /proc/version (Linux查看当前操作系统版本信息)

查看系统

getconf LONG_BIT  查看系统是64位还是32位
uname -a    (Linux查看版本当前操作系统内核信息)
cat /proc/version (Linux查看当前操作系统版本信息)

groups 查看当前登录用户的组内成员
groups gliethttp  查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名

/etc/group    所有的组
/etc/shadow   所有的用户
/etc/passwd   所有的用户

运行程序

后台运行:
1.前加nohup 后加&
nohup java -jar xxxx.jar &
2.ctrl+z 挂起当前任务
使用jobs 查看任务的编号,再使用bg xx 使程序后台运行;使用fg xx 使程序前台运行。

电源命令

关机:
        shutdown -h now :立刻关机
        shutdown -h 10 : 十分钟后关机
重启:
        shutdown -r now/10 : 立刻重启/十分钟后重启
        reboot : 重启

防火墙相关 PS:我按照的Centos7是自带防火墙的,默认也是开启状态,可能有的Linux版本是没有防火墙的。

systemctl start firewalld       # 启动firewall
systemctl enable firewalld      # 开机启动firewall
firewall-cmd --query-port=80/tcp --zone=public              # 查看80端口是否开启
firewall-cmd --zone=public --add-port=80/tcp --permanent        # 开启80端口

端口相关

netstat -ntpl | grep vsftpd       #查看vsftpd所占用的端口
nmap 端口扫描工具
yum install nmap  # 安装
nmap 127.0.0.1    # 查看本机端口
nmap 127.0.0.1 | grep 8080  # 过滤筛选查看

服务相关

重启:
        systemctl restart vsftpd.service        # 重启ftp服务
        service vsftpd restart                    # 重启ftp服务
查看服务状态:
        service vsftpd status

创建软连接

ln -s /home/iFinCar/uploadfile /iFinCar_App/tools/tomcat6_iFinCar/webapps/iFinCar/uploadfile
-s: 软连接

ln -s mydir mylinkdir
mydir:原始地址; mylinkdir: 软连接地址

定时任务

crontab -e         #编辑定时任务
crontab -l         #查看定时任务
在编辑定时任务时,会去设置定时任务多久执行一次,什么时间执行,具体设置语法如下:

基本格式 : (PS:每个*之前是空格)
    *   *   *   *   *   command
    分    时   日    月    周    命令
    第1列表示分钟00~59 每分钟用*或者 */1表示
    第2列表示小时00~23(0表示0点)
    第3列表示日期01~31
    第4列表示月份01~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令

crontab文件的一些例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启apache。
0 */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
# 表示注释

rpm 命令操作

rpm -qa         # 查询系统中已经安装的软件
rpm -q vsftpd        # 查看是否安装某软件

对于未安装的软件的查询
rpm -qpi rpm文件     # 查看一个软件包的用途、版本等信息

软件包的安装、升级、删除
rpm -ivh rpm文件        # 安装
rpm -Uvh rpm文件        # 更新
rpm -e rpm文件            #删除

yum命令操作

yum -y list java*         # 查看yum支持的安装包
yum install -y vsftpd       # 安装应用

文件/目录权限设置命令:chmod

其语法格式为:chmod [who] [opt] [mode] 文件/目录名

其中who表示对象,是以下字母中的一个或组合: 
u:表示文件所有者 
g:表示同组用户 
o:表示其它用户 
a:表示所有用户 

opt则是代表操作,可以为: 
+:添加某个权限 
-:取消某个权限 
=:赋予给定的权限,并取消原有的权限

而mode则代表权限: 
r:可读 
w:可写 
x:可执行 

数字设置
使用数字设定法则更为简单:chmod [mode] 文件名
我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为: 
自己     同组用户     其他用户 
111      101          100 
再将其每三位转换成为一个十进制数,就是754。 

压缩解压缩命令

tar -zcvf 打包后生成的文件名全路径 要打包的目录        # 打包
tar -zxvf 要解压的文件                               # 解包
-z : 使用gzip进行加压解压操作
-c : 压缩
-x : 解压
-v : 显示过程
-f : 指定要处理的文件名。如果需要使用-f参数,需要将f参数放在所有参数最后面,在f之后要立即接文件名,不能有其他参数

-C : 解压后的文件存储目录。
示例: tar -zxvf 要解压的文件 -C 解压路径

-t : 列出tar文件中包含的文件信息
-r : 添加新的文件到tar文件中
还有一个zip格式的解包命令
unzip abc.zip                # 解包命令

mysql相关
mysql 配置文件

  1. 不再使用 default-character-set=utf8 而使用character_set_server=utf8 否则启动mysql服务时会报错
  2. 忽略大小写:lower_case_table_names=1 忽略表名的大小写。linux版的mysql默认是表名大小写敏感,列名大小写不敏感

远程拷贝命令

scp  test2 dafei@127.0.0.1:/data/www/test/          # 只能拷贝文件

scp -r test2 dafei@127.0.0.1:/data/www/test/        # 可拷贝文件夹

ssh远程连接服务器命令
登录

ssh root@IP  # 然后输入密码 

指定端口号登录

ssh -p端口 root@IP # 输入密码

查看linux系统磁盘占用情况

df -hl                 # 查看磁盘剩余空间
df -h                   # 查看每个根路径的分区大小    
fdisk -l               # 查看磁盘信息
lsblk               # 列出块设备信息 (相较于上一个命令,更直观)

Centos7设置时区

列出时区
timedatectl list-timezones
修改时区
timedatectl set-timezone Asia/Shanghai

添加新评论

评论列表