常用命令
系统信息
arch //显示机器的处理器架构 x86_64
uname -m //显示机器的处理器架构 x86_64
date //显示日期
uname -r //显示正在使用的内核版本
cal 2019 //显示2019年日历
系统的关机、重启以及登出
shutdown -h now (10:51) //现在(10:51)关机
shutdown -c //取消定时关机
init 0 //关机
telinit 0 //关机
shutdowm -r now //重启
reboot //重启
logout //注销
文件和目录
1、cd命令
cd /home //进入 '/ home' 目录'
cd .. //返回上一级目录
cd ../.. //返回上两级目录
cd //进入目录
cd ~ // 进入个人的主目录
cd - //返回上次所在的目录
2、pwd命令
pwd // 查看文件路径
3、ls命令
ls //查看目录中的文件
ls -F //查看目录中的文件
ls -l //显示文件和目录的详细资料 结果跟ll一致
ls -a //显示隐藏文件
ls *[0-9]* //显示包含数字的文件名和目录名 不常用
5、mkdir命令
mkdir dir1 //创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 //同时创建两个目录
mkdir -p /tmp/dir1/dir2 //创建一个目录树
6、删除rm命令
rm -r file1 //删除一个叫做 'file1' 的文件'
rmdir dir1 //删除一个叫做 'dir1' 的目录(**注意不是文件夹**)'
rm -rf dir1 //删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 //同时删除两个目录及它们的内容
7、移动mv命令
mv dir1 new_dir //重命名/移动一个目录
8、CP复制命令
cp -r A B //将A拷贝到B目录下 -r代表递归
cp dir/* . 复制一个目录下的所有文件到当前工作目录 (注意这个点一定要有)
cp -a /tmp/dir1 . 复制一个目录到当前工作目录 (注意这个点一定要有)
文件搜索
1、find查找命令
find / -name file1 //从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 //搜索属于用户 'user1' 的文件和目录
find /home/user1 -name \*.bin //在目录 '/home/user1' 中搜索带有'.bin' 结尾的文件
find /usr/bin -type f -atime +100 //搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 //搜索在10天内被创建或者修改过的文件
挂载一个文件系统
mount /dev/hda2 /mnt/hda2 //挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
umount /dev/hda2 //卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 //当设备繁忙时强制卸载
umount -n /mnt/hda2 //运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy //挂载一个软盘
mount /dev/cdrom /mnt/cdrom //挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder //挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder //载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom //挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 //挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk //挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
用户和群组
groupadd group_name //创建一个新用户组
groupdel group_name //删除一个用户组
groupmod -n new_group_name old_group_name //重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 //创建一个属于 "admin" 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组
面试常问命令
ps //查看当前进程
pwd //查看路径
exit //退出终端
clear //清屏
ctrl c //退出当前命令
ctrl z //挂起当前进程 fg 恢复后台
id //查看用户id
touch a.txt //创建文件
mkdir a.txt //创建一个名为a.txt的文件夹
mode : 权限设定字串,格式如下 :
[ugoa…][[±=][rwxX]…][,…]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。u用户 g组 o其它 a 所有用户(默认)
- 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
实例:
$ chmod u+x file 给file的属主增加执行权限
$ chmod 751 file 给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file 上例的另一种形式
$ chmod =r file 为所有用户分配读权限
$ chmod 444 file 同上例
$ chmod a-wx,a+r file 同上例
$ chmod -R u+r directory 递归地给directory目录下所有文件和子目录的属主分配读的权限
$ chmod 4755 设置用ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限。
查看文件内容
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
终端 /dev/tty
黑洞文件 /dev/null
Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
“?”可替代单个字符。
“*”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。
wc -c dyn.txt //t统计字节数
wc -l dyn.txt //统计行数
wc -w dyn.txt //统计字数
Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
**不可中断状态:**进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
**暂停状态/跟踪状态:**向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
**就绪状态:**在 run_queue 队列里的状态
**运行状态:**在 run_queue 队列里的状态
**可中断睡眠状态:**处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
**zombie 状态(僵尸):**父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
退出状态
D 不可中断 Uninterruptible(usually IO)
R 正在运行,或在队列中的进程
S 处于休眠状态
T 停止或被追踪
Z 僵尸进程
W 进入内存交换(从内核 2.6 开始无效)
X 死掉的进程
怎么使一个命令在后台运行?
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
使用什么命令查看网络是否连通?
netstat -pan | grep 33056
lsof -i:3306
使用什么命令查看 ip 地址及接口信息?
ifconfig
查看各类环境变量用什么命令?
查看所有 env
查看某个,如 home: env $HOME
查看端口号