Linux常用命令
1.文件目录cd~ 、cd $HOME: 进入家目录,注意大写。小写 /home 下是各个用户。pwd :显示当前路径。ls : 列出目录内容。-l :按行输出文件。-a:显示当前文件夹下所有文件,包括隐藏文件。-f:不排序,按磁盘存储的顺序列出。mkdir:创建一个目录-m:对新建的文件设置权限。-p:此参数可是实现多级目录的新建。cat:连接显示指定的一个或多个文件的有关信息。-n:显示行数。
1.文件目录
-
cd~ 、cd $HOME: 进入家目录,注意大写。小写 /home 下是各个用户。
-
pwd :显示当前路径。
-
ls : 列出目录内容。
- -l :按行输出文件。
- -a:显示当前文件夹下所有文件,包括隐藏文件。
- -f:不排序,按磁盘存储的顺序列出。
-
mkdir:创建一个目录
-
-m:对新建的文件设置权限。
-
-p:此参数可是实现多级目录的新建。
-
-
cat:连接显示指定的一个或多个文件的有关信息。(只适合较短的文件阅读)
- -n:显示行数。
- -b:类比于-n不显示空白行的行号。
-
cp:复制文件。cp [选项] 源文件目录 目标文件目录。
- -a:保留链接、文件属性、并复制其子目录,等同于dpr的组合。
- -d:复制时保留链接。
- -f:不交互。
- -i:交互。(有用户提醒)
- -p:不仅复制内容还复制修改时间和访问权限。
- -r:复制目录文件。
-
mv:移动文件。mv [选项] 源文件目录 目标文件目录。当两者都为源目录时可实现重命名。
- -i:交互。
- -f:不交互。
-
rm:删除文件。
- -i:交互。
- -f:不交互。
- -r:删除目录文件。
-
chown:修改用户和组别。sudo chown [用户名]:[属组名] 文件名。(不写用户可以只修改属组,不写属组和冒号只修改用户)
-
chgrp:只能修改数组。sudo chgrp 属组名 文件名。
-
chmod: 修改权限。
- 修改方式一:“+”表示增加权限,“-”表示取消权限,“=”表示设置权限。(三种权限rwx:读、写、执行。三种用户ugo:u表示用户权限,g表示属组权限,o表示其他成员的权限,a表示所有成员)
- 修改方式二:以八进制形式 按ugo的顺序以此赋值添加权限。
-
grep:在指定文件搜索特定内容。
- -c:只输出匹配行的计数。
- -n:显示匹配内容的所在行数。
-
alias:命令别名。alias ll=“ls -l” (这里双引号单引号都可以“=”两边不能有空格)该命令将ls -l重命名成了ll。但是该命令只能在当前终端使用,当关闭终端或再开新终端将失效。若想永久使用可将alias ll=“ls -l” 写在家目录下的.bashrc文件中并重启。
-
more:more 文件名。(适合较长内容的文件阅读)// 空格下翻一页,回车下翻一行,q退出
-
less:less 文件名。(加强版的more适合较长内容的文件阅读)// 上下键实现上翻下翻
-
wc:wc 文件名。统计。
- -c :统计有多少个字节。
- -l :统计有多少行。
2.磁盘相关命令(需要管理员权限)
- free:查看当前系统的内存使用情况。
- df:查看文件系统的磁盘空间占用情况。
- du:统计目录(或文件)所占磁盘空间的大小。
- fdisk:查看硬盘的分区情况。fdisk -l。
- mount:磁盘挂载命令。mount [选项][设备文件类型]设备文件名 挂载点目录。
- -a:按照/etc/fstab中的内容装载所有相关的硬盘。
- -l:列出当前已挂载的设备、文件系统名、挂载点。
- -t 类型:将后面的设备以指定类型的文件格式装载到挂载点上。(常见类型有VFAT、ext3、ext2、ISO9660、NFS等)
- -f:模拟挂载,通常用于排除错误。
3.系统管理命令
- 关机:sudo shutdown -h [时间]。(分钟)now为立即执行。
- 重启:sudo reboot。
- ps:显示当前系统中正在运行的进程列表。
- -ef:查看所有进程及其详细信息。
- -aux:除-ef的内容外还可显示CPU及内存占用率、进程状态。
- -w:加宽显示更多信息。
- kill:通常使用kill -9 pid 杀死相应进程。
- -s:根据指定信号发送给进程。
- -p:打印进程号但不发送。
- -l:列出所有可用信号名称。
- top:动态显示系统中运行的程序(一般每隔5S刷新一次)。
- uptime:显示系统已经运行了多长时间。
- clear:快捷键ctrl+L,清屏操作。
- su - 用户名:切换用户。
4.文件类型
- -:表示普通文件。
- d:表示目录文件。
- l:表示链接文件。
- s:表示socket文件。(套接字)
- p:表示管道文件。
- c:表示字符文件。
- b:表示块设备文件。
命令、shell、shell脚本的区别
1.命令:用户向系统内核发出的控制请求。说白了就是一条指令
2.shell:是一个命令行解释器,实现用户与内核之间的交互。也就是指令的解释器
3.shell脚本:多个命令的集合。也就是多个指令实现的一个demo进行封装
特殊字符
-
| :管道,单独使用时无意义。作用是将前一个命令的输出作为后一个命令的输入。
如上所示,在day1目录文件中查找是否有test.c文件,它将ls的结果作为grep的输入 -
- > :输出重定向。若文件不存在则新建,若存在清空并覆盖。(一般用来将错误信息输出到文件中)
-
>>:追加重定向。若文件不存在则新建,若存在则追加到该文件的末尾。
-
<:输入重定向。(不常用)
将test.c作为wc的输入文件,统计test.c的行数,再将结果输出到1.txt中 -
*:匹配任意长度的字符串,*.c表示 所有.c文件。
-
?:匹配单个长度的字符。
-
[…]:[内容]匹配内容中任意一个字符。
-
[ - ]:匹配指定字符范围的单个字符。
-
[^…]:匹配指定外的所有单个字符。(指定内容可以是范围)
ln(创建链接命令)
用于在文件之间建立连接,Linux中有两种链接,硬链接和软连接
硬链接
为每个文件分配物理编号,硬链接不能跨越文件
软连接
利用文件的路径名建立链接(相当于windows下的快捷方式)
共同点
软硬链接的操作都会影响源文件的改变。
区别
1.软链接:会在用户选定的路径下生成一个文件镜像,不占用空间。(使用最广泛)
2.硬链接:会在用户指定的路径下生成一个和源文件大小相同的文件。
3.若删除源文件,软链接失效而硬链接不会失效。
压缩打包命令
压缩工具:bzip2,gzip(只能压缩单个文件,不能压缩目录)
压缩文件:
解压文件
tar(对文件或目录打包解包后缀为.tar)
注意:压缩时用的gzip解压时就用gzip,压缩用bzip2解压也得用bzip2
- -c:打包。
- -x:解包。
- -v:处理过程中输出相关信息。显示过程。
- -f:指定包文件名。(必须放在最后)
- -z:调用gzip压缩打包解压文件。
- -j:调用bzip2压缩打包解压文件。
文件压缩先打包再压缩
文件解压,先解压再拆包
打包压缩一步实现
解压拆包一步实现
常见压缩文件的压缩解压操作
文件比较命令diff
比较不同文件或不同目录下两个相同文件名的文件,并生成补丁文件。
-
-r:对目录进行递归处理。
-
-q:只报告文件是否不同,不输出结果。
-
-c:旧版上下文格式,列出比较的所有文件并标注出不同行。
-
-u:新版上下文格式,相同部分只列出一次,不同部分按区别列出。
进程前后台切换
在前台运行的程序会一直占用终端命令行,例如你在前台解压的时候必须等着,期间干不了别的事(除非另开一个终端)。
但是如果把进程放到后台,可以把终端空出来,你可以执行其它的操作。另一个好处是,放到后台的程序不会被ctrl+C(误触)给终止。
一开始就把进程放到后台运行
直接在命令行末尾加上 &:开始就在后台。
把已经在前台运行进程放到后台
- 先键入Ctrl+z 选项把该进程暂停;
- 键入jobs -l查看进程的工作号(不是进程号PID),比如说工作号是2
- 键入 bg %2 即可把该进程放到后台运行(bg=background)。如果直接键入bg则是把所有进程放到后台。
- 如果又想把后台程序放回前台,键入fg %2即可.(fg=foreground)
- 如果直接想杀掉后台进程,键入kill %2,或kill <PID号>也可
但是,即使把程序放到后台运行,一旦关闭终端,或者远程终端断网,都会直接终止所有进程。
对于一些需要长时间运行的程序,或者网络不稳定的情况下,我们希望在关闭终端下程序也照常运行,此时需要nohup命令:
nohup
该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。关闭终端后,在另一个终端键入jobs已经无法看到后台的程序了,此时利用ps或top可以查看到。
nohup常常配合后台标记 &使用:
- 使用nohup让程序后台不挂断地运行
例如nohup python train.py &
可以让train.py脚本一开始就在后台运行,且不会因为关闭终端而被打断。该进程产生的所有输出都会到当前目录下的一个叫nohup.out的文件中。
环境变量
1.env:查看环境变量。
2.环境变量格式:变量名=内容1:内容2(中间用 :隔开,“=”左右两边不能有空格)
3.export:添加环境变量。
-
临时添加:(只对当前终端有效)
1. 可执行文件的绝对路径,$PATH不能省略,因为PATH之前还有其他环境变量。 -
永久添加:
1. 管理员权限进入/etc/profile。
2. 在最末尾添加export PATH=$PATH:绝对路径。
3. 重启或使用命令source /etc/profile
共享文件夹
VM中的共享文件夹Linux的cd /mnt/hgfs路径下
用户管理命令
相关配置文件
- /etc/passwd :系统能够识别的用户清单。
- /etc/shadow :加密的用户清单。
- /etc/group :组的列表。
- /etc/gshadow :用户组加密清单。
用户和组
- sudo adduser 用户名:创建一个用户。
- sudo deluser --remove-home 用户名:删除用户同时删除改用户的工作目录。
- sudo passwd 用户名:修改密码。
- usermod : 修改用户属性。
- sudo groupadd 组名:新建组。
- sudo groupdel 组名:删除组。
- sudo usermod -g 组名 要修改的用户 :修改用户所属组。
密码管理
用户的密码信息在/etc/shadow文件中,其中信息是由“:”隔开,共有9列每一列表示的信息依次如下:
- 用户名
- 密码:
- “$6$”表示改用户已经被创建了密码并且已经加密显示了,加密算法在/etc/login.defs文件的末尾有体现;
- “!!” 表示改账户已经被锁定,不能登录,可以通过
passwd -l <用户名>
将指定用户锁定,也可以通过passwd -u <用户名>
命令解除锁定; passwd -d <用户名>
命令删除指定用户的密码。passwd <用户名>
给指定用户设置密码,但是这种方式看不到设置的密码,所以也可以用echo "passwd123" | passwd --stdin <用户名>
命令设置密码。
- 上次修改密码的时间:这个时间单位是天,指从1970年1月1日起至今的天数。如果没有修改过密码就是1969年12月31日,可以通过
passwd -S <用户名>
命令查看。可以通过chage -d 0 <用户名>
命令将上次修改密码时间设置为0,下次该用户登录时必须修改密码。也可以passwd -e <用户名>
命令将上次修改密码时间设置为0; - 最短有效期:0表示不设置,这一列的作用是防止频繁修改密码,在设置的时间内不能再次修改密码。
passwd -n <天数> <用户名>
- 最长有效期:默认为99999;密码的真实有效期。
passwd -x <天数> <用户名>
- 密码到期前几天开始提醒:默认为7;
passwd -w <天数> <用户名>
- 密码到期后的宽限天数。
passwd -i <天数> <用户名>
- 账号的失效日志:这一列的优先级别最高,一旦到期当前账号立即不能使用。可以通过
chage -E 2020-10-01 <用户名>
命令设置失效时间。一般不设置 - 保留位
用户管理命令实际干了什么?
- 创建用户:
useradd
命令实际上是执行了以下动作:/home/
下创建家目录(目录名默认是用户名),并将/etc/skel/
目录下的所有文件复制到新创建的家目录;- 在
/var/spool/mail
目录下创建以用户名为文件名的信箱文件; - 在
/etc/passwd
文件中追加一条用户清单信息; - 在
/etc/group
文件中追加一条用户信息; - 在
/etc/shadow
文件中追加一条用户密码信息; - 在
/etc/gshadow
文件中追加一条用户组密码信息;
- 删除用户:
userdel -r <用户名>
实际上删除的是/home/<家目录>
目录和/var/spool/mail/<用户名>
信箱文件。
手动编辑上述配置文件中对应信息也可以实现用户管理的添加、修改和删除。
注意:
- 在etc目录下创建nologin文件会禁止所有普通用户登录;
touch /etc/nologin
软件管理
- dpkg -L :列出安装的软件包清单。
apt
- 测试网络:ping www.baidu.com
- 网络配置
- 软件源配置文件:/etc/apt/sources.list
- 下载软件:sudo apt install 包名。或 sudo apt -get install 包名。
- 更新镜像栈:sudo apt update 包名。或 sudo apt -get update 包名。
- 卸载软件:sudo apt -get remove 包名。
有趣命令
sudo apt -get install XXX(XXX填下列命令即可完成安装)
- oneko:追鼠标的猫。
- xeyes:眼睛。
- sl:火车。
- ……
GDB调试
- 先使用gcc加上参数-g 生成可调试的可执行文件。
- l:输入小写L查看代码。
- b:设置断点。b 行号。
- info b:查看断点情况。
- r:运行代码。
- p:查看变量值。p 变量名。
- watch:查看变量的改变状态。watch 变量名。
- n :单步运行。
- c:继续运行。
- q:退出指令。
更多推荐
所有评论(0)